-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
Upstream: zil_commit_waiter() can stall forever #10445
Conversation
On macOS clock_t is unsigned, so when cv_timedwait_hires() returns -1 we loop forever. The conditional was tweaked to ignore signedness. Signed-off-by: Jorgen Lundman <[email protected]>
Codecov Report
@@ Coverage Diff @@
## master #10445 +/- ##
==========================================
- Coverage 79.58% 79.39% -0.19%
==========================================
Files 391 391
Lines 123872 123872
==========================================
- Hits 98586 98354 -232
- Misses 25286 25518 +232
Continue to review full report at Codecov.
|
We don't return -1 we return the delta, so this doesn't work for FreeBSD. That would be why stable/12 failed miserably. Looks like we have a few other mistakes to fix in our condvars too, so thanks :) |
@freqlabs thanks for commenting. After talking with @mattmacy the plan is to get the FreeBSD condvars aligned with the other implementations as quickly as possible. |
On macOS clock_t is unsigned, so when cv_timedwait_hires() returns -1 we loop forever. The conditional was tweaked to ignore signedness. Reviewed-by: Matthew Ahrens <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Jorgen Lundman <[email protected]> Closes #10445
On macOS clock_t is unsigned, so when cv_timedwait_hires() returns -1 we loop forever. The conditional was tweaked to ignore signedness. Reviewed-by: Matthew Ahrens <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Jorgen Lundman <[email protected]> Closes openzfs#10445
On macOS clock_t is unsigned, so when cv_timedwait_hires() returns -1 we loop forever. The conditional was tweaked to ignore signedness. Reviewed-by: Matthew Ahrens <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Jorgen Lundman <[email protected]> Closes openzfs#10445
On macOS clock_t is unsigned, so when cv_timedwait_hires() returns -1
we loop forever. The conditional was tweaked to ignore signedness.
Motivation and Context
Stall forever from fsync.
Description
By testing directly against -1, it does not matter if it is interpreted as signed or unsigned. Ie, no greater-than usage. Unfortunately
clock_t
is defined by OS.How Has This Been Tested?
Types of changes
Checklist:
Signed-off-by
.