-
Notifications
You must be signed in to change notification settings - Fork 20
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
fdatasync not working as expected on fscq? #14
Comments
This is within the FSCQ fdatasync specification as described in the OSDI 2018 paper. There are (at least) two trees in the tree sequence: one where the file exists and has length 0, and one where the 4000 bytes have been written. The fdatasync ensures that if the system crashes to the second tree, the data will match buf rather than be zeroes (of course in this situation those are the same since buf is all zeros). However, without an fsync the system simply crashes to the old tree. This doesn't match one reading of the |
Thank you @tchajed for the quick answer. A follow-up question: since |
You'll need an |
Closing. This isn't a bug in FSCQ, just a difference between our specification and what other filesystems do. |
Hi, our team at SSLab, Georgia Tech is testing the crash safety property of fscq and we found that
fdatasync
is not working as expected maybe? Following is the test case:Output of the test case should be:
Based on the return code of fsync, write, and fdatasync, file
foo
should be there with 4000a
in its content.foo
is empty[System Setup]
I am seeing this issue on the
master
branch of the repo although I see this issue in thesosp17
branch as well. I am using Ubuntu 16.04 with 4.4.0 kernel and compiled fscq withcoqc 8.8.1
andghc 8.0.1
.Let me know if you need further information. Thank you!
The text was updated successfully, but these errors were encountered: