-
-
Notifications
You must be signed in to change notification settings - Fork 4.7k
Handle relay connect timeout (fixes #8749) #8755
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems like a reasonable workaround - I think in principle suture should get an update for this. I can't see this behaviour ever being desirable, and it's a change to previous versions. Or maybe it even was a blunder on Go's side - seems weird/unexpected that a context specific error is treated as a generic error fulfilled by any amount of other errors.
Yeah... My feeling is that if I have a context |
* main: (69 commits) Handle relay connect timeout (fixes syncthing#8749) (syncthing#8755) gui, man, authors: Update docs, translations, and contributors build: Go 1.19.5 gui, man, authors: Update docs, translations, and contributors script: Add weblatedl.go for downloading updated translations (syncthing#8723) gui: Allow to translate action and type in Recent Changes modal (syncthing#8548) gui, man, authors: Update docs, translations, and contributors gui: Fix undefined lastSeenDays error in disconnected-inactive status check (ref syncthing#8530) (syncthing#8730) gui, man, authors: Update docs, translations, and contributors gui, api: Indicate running under container (syncthing#8728) lib/fs: Use io/fs errors as recommended in std lib (syncthing#8726) build: Handle co-authors (ref syncthing#3744) (syncthing#8708) lib/fs: Watching is unsupported on android/amd64 (fixes syncthing#8709) (syncthing#8710) lib/model: Only log at info level if setting change time fails (syncthing#8725) lib/model: Don't lower rescan interval from default on auto accepted enc folder (fixes syncthing#8572) (syncthing#8573) gui, man, authors: Update docs, translations, and contributors gui: Remove unmaintained language variant nl-BE (syncthing#8722) gui, script: Fix indentation in lang-en.json to match others (syncthing#8721) docker: Ensure entrypoint is executable (syncthing#8719) Go 1.19.4 ...
* main: (48 commits) build: Use Go 1.19.6 for Windows build: Update dependencies gui, man, authors: Update docs, translations, and contributors gui: Remove duplicate Spanish (Spain) translation (fixes syncthing#8781) (syncthing#8782) gui: Add xattr filter editor (fixes syncthing#8660) (syncthing#8734) gui: Switch to Weblate for translations (syncthing#8777) all: Use new Go 1.19 atomic types (syncthing#8772) gui, man, authors: Update docs, translations, and contributors build: Update quic-go and pfilter for Go 1.20 (fixes syncthing#8768) (syncthing#8769) Add forgotten copyright notices cmd, docker: Updates for infrastructure cmd/ursrv: The driver import is important, though cmd/ursrv: Remove old, unused migration code cmd/ursrv: Harmonize timespan of charts cmd/ursrv: Remove broken and unsustainable join/leave chart cmd/ursrv: Fix broken block transfer chart gui, man, authors: Update docs, translations, and contributors gui: Fix broken link to Transifex in lang/README.txt (syncthing#8761) gui, man, authors: Update docs, translations, and contributors Handle relay connect timeout (fixes syncthing#8749) (syncthing#8755) ...
This makes sure the service manager doesn't interpret timeout errors, or any other error, as a signal to stop the service instead of restarting it.
I added it directly to our service utility function, as it may help catch other instances of the same problem... We would typically want timeouts etc to be a retryable error, unless it is the top level context that has timed out and we check for that specifically.