[backport 0.14] client: Fix AsNeededBacklog hang with old cores #599
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.
In short
Only fetch when needed
hang with pre-0.13 coresDetails
For whatever reason, if the client doesn't call
updateProgress(...);
after initial backlog request, it hangs.To fix this,
AsNeededBacklogRequester
has been changed to setbuffering
/isBuffering()
totrue
on initialization, which causes the client to callupdateProgress()
.Why does the disabled
GlobalUnreadBacklogRequester
need to setbuffering
tofalse
initially? Why does this cause the client to hang? Shouldbuffering
always be initialized totrue
..?This should be investigated further in the future.
Testing
Steps
sudo apt install quassel-core
Fetch only when needed
backlog fetching modeTest case
0.12.4
core (Ubuntu 18.04)0.14-git
client (Kubuntu 20.04)Before
After