Hi Julio,
Thank you for your cooperation and providing logs about your setup. Our engineering team has been analyzing your logs, and we found that the log line from a Syncthing instance managed by Okteto related to a relay connection was produced due to specific circumstances.
In the file you uploaded, which corresponds to the logs for the Syncthing instance living in the remote pod, we found a trace where it can be observed that Syncthing was deleting its own configuration.
level=info msg="[ATOPH] 2024/05/15 16:46:30 VERBOSE: Finished syncing \"okteto-1\" / \"syncthing/config.xml.v32\" (delete file): Success" process=syncthing
This could be caused by a change in the Okteto manifest dev.sync
section, where folders are specified to be synced bi-directionally between local and the pod.
sync:
- ./example:/var # /var refers to the remote pod filesystem
Around this log, there was significant sync activity, including many delete operations, likely related to a VSCode server instance running inside the remote pod. Running VSCode inside a dev pod is compatible, but having its installation paths synced can cause unpredictable behavior due to the high number of files (e.g., node_modules).
After that activity, we spotted log lines pointing to both a remote Syncthing process crash and a local client disconnection.
time="2024-05-15T16:46:35Z" level=error msg="process exited with error status -1" error="signal: broken pipe" process=syncthing
time="2024-05-15T16:46:35Z" level=info msg="[ATOPH] 2024/05/15 16:46:35 INFO: \"1\" (okteto-1): Failed to sync 229 items" process=syncthing
The Okteto CLI ensures Syncthing is reconciled with the correct configuration. If the instance is not healthy, it will be restored to a correct configuration, but only if the CLI is connected or starting a new session. Without the CLI connected, the software inside the pod is limited to restarting the process if it fails.
time="2024-05-15T16:46:36Z" level=info msg="killing process syncthing" process=syncthing
time="2024-05-15T16:46:36Z" level=info msg="process syncthing killed" process=syncthing
This happening along with the configuration being deleted caused the logs we found:
time="2024-05-15T16:46:36Z" level=info msg="[start] 2024/05/15 16:46:36 INFO: Default folder created and/or linked to new config" process=syncthing
time="2024-05-15T16:46:36Z" level=info msg="[start] 2024/05/15 16:46:36 INFO: Default config saved. Edit /var/syncthing/config.xml to taste (with Syncthing stopped) or use the GUI" process=syncthing
We found that Syncthing started with the basic default configuration, which has relays enabled but is incompatible with your local setup. This means Okteto will attempt a reconciliation as soon as a new session is started. No synced data will flow in or out of the pod until the new dynamic ID is exchanged with another Syncthing peer and vice versa.
Given this analysis, our engineering team won’t take any inmediate action, considering that the dev pod configuration was corrupted due to incompatible settings used in the Okteto manifest. This corruption would be reverted as soon as a new dev session is spun up.
The product team will evaluate adding guards to the Okteto manifest parser to warn users of incompatible paths being used in the dev.sync section.
Thank you again for reporting this concern to Okteto.
Best regards,
-Javier.