Fixed server getting stuck on deleted files #2738
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #2679
The cause of this bug is absolutely stupid. The issue is that passing an exception as the second positional argument to
logger.debug/info/warn/error
will cause the messages to be formatted with it. Sanic essentially doesmessage.format(args)
behind the scenes, so the intended usage islogger.error("My name is %s!", name)
. (We never use this because f-strings exist.) The problem is that formatting will fail if any positional argument goes unused. (Yes, it's great API design when something as important as logging can trivially fail...) For whatever reason, if you fail to format 3 times, the thread you log in will get stuck and never respond to anything again.The fix for now is to fix the formatting by not using it. The long term fix is to switch to a competent logger.
Btw, I also check for other instances of positional arguments being used: there were none.