-
Notifications
You must be signed in to change notification settings - Fork 22
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
loop shutdown should not call CancelRequest for inflight requests because it causes a race with the code that's executing those requests, we should simply wait until those requests complete by themselves #1193
loop shutdown should not call CancelRequest for inflight requests because it causes a race with the code that's executing those requests, we should simply wait until those requests complete by themselves #1193
Conversation
d3384ce
to
642be6e
Compare
Note This is an automated comment that will be appended during run. 🔴 linux-x86_64-release-tsan: some tests FAILED for commit 642be6e.
🔴 linux-x86_64-relwithdebinfo: some tests FAILED for commit 642be6e.
|
…ause it causes a race with the code that's executing those requests, we should simply wait until those requests complete by themselves
…ug in TBootstrap in fs_ut.cpp (Apply on a callback which returns TFuture<void> discards the future returned by the callback!)
519a647
to
e3d4cd0
Compare
Note This is an automated comment that will be appended during run. 🔴 linux-x86_64-relwithdebinfo: some tests FAILED for commit e3d4cd0.
🔴 linux-x86_64-release-tsan: some tests FAILED for commit e3d4cd0.
|
Note This is an automated comment that will be appended during run. 🟢 linux-x86_64-relwithdebinfo: all tests PASSED for commit 98c1958.
🔴 linux-x86_64-release-tsan: some tests FAILED for commit 98c1958.
|
…f only when ShouldStop flag is set
Note This is an automated comment that will be appended during run. 🔴 linux-x86_64-relwithdebinfo: some tests FAILED for commit e074cae.
🔴 linux-x86_64-release-tsan: some tests FAILED for commit e074cae.
|
Note This is an automated comment that will be appended during run. 🟢 linux-x86_64-relwithdebinfo: all tests PASSED for commit e074cae.
🟢 linux-x86_64-release-tsan: all tests PASSED for commit e074cae.
|
…together atomically
Note This is an automated comment that will be appended during run. 🟢 linux-x86_64-relwithdebinfo: all tests PASSED for commit 0ad0e2c.
🟢 linux-x86_64-release-tsan: all tests PASSED for commit 0ad0e2c.
|
…ause it causes a race with the code that's executing those requests, we should simply wait until those requests complete by themselves (#1193) * loop shutdown should not call CancelRequest for inflight requests because it causes a race with the code that's executing those requests, we should simply wait until those requests complete by themselves * CompletionQueue shutdown should actually be async + fixed StopAsync bug in TBootstrap in fs_ut.cpp (Apply on a callback which returns TFuture<void> discards the future returned by the callback!) * loop shutdown: SuspendAsync ut + some tmp dbg output * loop shutdown: more tmp dbg output * loop shutdown: more tmp dbg output * loop shutdown: outputting dbg stuff under a lock, outputting dbg stuff only when ShouldStop flag is set * loop shutdown: fixed CompletingCount vs Requests.empty() checks race * loop shutdown: inflight count and completing count should be checked together atomically
…, filestore CompactionMap empty entry cleanup (#1266) * loop shutdown should not call CancelRequest for inflight requests because it causes a race with the code that's executing those requests, we should simply wait until those requests complete by themselves (#1193) * loop shutdown should not call CancelRequest for inflight requests because it causes a race with the code that's executing those requests, we should simply wait until those requests complete by themselves * CompletionQueue shutdown should actually be async + fixed StopAsync bug in TBootstrap in fs_ut.cpp (Apply on a callback which returns TFuture<void> discards the future returned by the callback!) * loop shutdown: SuspendAsync ut + some tmp dbg output * loop shutdown: more tmp dbg output * loop shutdown: more tmp dbg output * loop shutdown: outputting dbg stuff under a lock, outputting dbg stuff only when ShouldStop flag is set * loop shutdown: fixed CompletingCount vs Requests.empty() checks race * loop shutdown: inflight count and completing count should be checked together atomically * issue-1128: entries in the CompactionMap table should be deleted instead of updating of both BlobCount and DeletionCount are 0 (#1260) * filestore-vhost loop shutdown logging (#1265) * filestore-vhost loop shutdown logging * filestore-vhost loop shutdown logging - fix
Data race example:
Current code calls CancelRequest for each inflight request upon loop shutdown/suspend. But inflight requests are flying all over the system and are being accessed by other threads. We have to wait till those requests complete, we can't cancel them with our current code architecture.
#1307