-
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
Some out of order ZIL tx type not getting synced #8769
Labels
Type: Defect
Incorrect behavior (e.g. crash, hang)
Comments
tuxoko
pushed a commit
to tuxoko/zfs
that referenced
this issue
Jul 18, 2019
We should only call zil_remove_async when an object is removed. However, in current implementation, it is called whenever TX_REMOVE is called. In the case of hardlinked file, every unlink will generate TX_REMOVE and causing operations to be dropped even when the object is not removed. We fix this by only calling zil_remove_async when the file is fully unlinked. Closes openzfs#8769 Signed-off-by: Chunwei Chen <david.chen@nutanix.com>
tuxoko
pushed a commit
to tuxoko/zfs
that referenced
this issue
Jul 18, 2019
We should only call zil_remove_async when an object is removed. However, in current implementation, it is called whenever TX_REMOVE is called. In the case of hardlinked file, every unlink will generate TX_REMOVE and causing operations to be dropped even when the object is not removed. We fix this by only calling zil_remove_async when the file is fully unlinked. Closes openzfs#8769 Signed-off-by: Chunwei Chen <david.chen@nutanix.com>
12 tasks
tuxoko
pushed a commit
to tuxoko/zfs
that referenced
this issue
Jul 18, 2019
We should only call zil_remove_async when an object is removed. However, in current implementation, it is called whenever TX_REMOVE is called. In the case of hardlinked file, every unlink will generate TX_REMOVE and causing operations to be dropped even when the object is not removed. We fix this by only calling zil_remove_async when the file is fully unlinked. Closes openzfs#8769 Signed-off-by: Chunwei Chen <david.chen@nutanix.com>
c0d3z3r0
added a commit
to c0d3z3r0/zfs
that referenced
this issue
Jul 26, 2019
…dlink commit 2fb3d38 Author: Chunwei Chen <david.chen@nutanix.com> Date: Thu Jul 18 10:18:20 2019 -0700 Fix out-of-order ZIL txtype lost on hardlinked files We should only call zil_remove_async when an object is removed. However, in current implementation, it is called whenever TX_REMOVE is called. In the case of hardlinked file, every unlink will generate TX_REMOVE and causing operations to be dropped even when the object is not removed. We fix this by only calling zil_remove_async when the file is fully unlinked. Closes openzfs#8769 Signed-off-by: Chunwei Chen <david.chen@nutanix.com>
c0d3z3r0
pushed a commit
to c0d3z3r0/zfs
that referenced
this issue
Jul 26, 2019
We should only call zil_remove_async when an object is removed. However, in current implementation, it is called whenever TX_REMOVE is called. In the case of hardlinked file, every unlink will generate TX_REMOVE and causing operations to be dropped even when the object is not removed. We fix this by only calling zil_remove_async when the file is fully unlinked. Closes openzfs#8769 Signed-off-by: Chunwei Chen <david.chen@nutanix.com>
c0d3z3r0
added a commit
to c0d3z3r0/zfs
that referenced
this issue
Jul 28, 2019
…dlink commit 2fb3d38 Author: Chunwei Chen <david.chen@nutanix.com> Date: Thu Jul 18 10:18:20 2019 -0700 Fix out-of-order ZIL txtype lost on hardlinked files We should only call zil_remove_async when an object is removed. However, in current implementation, it is called whenever TX_REMOVE is called. In the case of hardlinked file, every unlink will generate TX_REMOVE and causing operations to be dropped even when the object is not removed. We fix this by only calling zil_remove_async when the file is fully unlinked. Closes openzfs#8769 Signed-off-by: Chunwei Chen <david.chen@nutanix.com>
tonyhutter
pushed a commit
to tonyhutter/zfs
that referenced
this issue
Aug 21, 2019
We should only call zil_remove_async when an object is removed. However, in current implementation, it is called whenever TX_REMOVE is called. In the case of hardlinked file, every unlink will generate TX_REMOVE and causing operations to be dropped even when the object is not removed. We fix this by only calling zil_remove_async when the file is fully unlinked. Reviewed-by: George Wilson <gwilson@delphix.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Prakash Surya <prakash.surya@delphix.com> Signed-off-by: Chunwei Chen <david.chen@nutanix.com> Closes openzfs#8769 Closes openzfs#9061
tonyhutter
pushed a commit
to tonyhutter/zfs
that referenced
this issue
Aug 22, 2019
We should only call zil_remove_async when an object is removed. However, in current implementation, it is called whenever TX_REMOVE is called. In the case of hardlinked file, every unlink will generate TX_REMOVE and causing operations to be dropped even when the object is not removed. We fix this by only calling zil_remove_async when the file is fully unlinked. Reviewed-by: George Wilson <gwilson@delphix.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Prakash Surya <prakash.surya@delphix.com> Signed-off-by: Chunwei Chen <david.chen@nutanix.com> Closes openzfs#8769 Closes openzfs#9061
tonyhutter
pushed a commit
to tonyhutter/zfs
that referenced
this issue
Aug 23, 2019
We should only call zil_remove_async when an object is removed. However, in current implementation, it is called whenever TX_REMOVE is called. In the case of hardlinked file, every unlink will generate TX_REMOVE and causing operations to be dropped even when the object is not removed. We fix this by only calling zil_remove_async when the file is fully unlinked. Reviewed-by: George Wilson <gwilson@delphix.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Prakash Surya <prakash.surya@delphix.com> Signed-off-by: Chunwei Chen <david.chen@nutanix.com> Closes openzfs#8769 Closes openzfs#9061
tonyhutter
pushed a commit
to tonyhutter/zfs
that referenced
this issue
Sep 17, 2019
We should only call zil_remove_async when an object is removed. However, in current implementation, it is called whenever TX_REMOVE is called. In the case of hardlinked file, every unlink will generate TX_REMOVE and causing operations to be dropped even when the object is not removed. We fix this by only calling zil_remove_async when the file is fully unlinked. Reviewed-by: George Wilson <gwilson@delphix.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Prakash Surya <prakash.surya@delphix.com> Signed-off-by: Chunwei Chen <david.chen@nutanix.com> Closes openzfs#8769 Closes openzfs#9061
tonyhutter
pushed a commit
to tonyhutter/zfs
that referenced
this issue
Sep 18, 2019
We should only call zil_remove_async when an object is removed. However, in current implementation, it is called whenever TX_REMOVE is called. In the case of hardlinked file, every unlink will generate TX_REMOVE and causing operations to be dropped even when the object is not removed. We fix this by only calling zil_remove_async when the file is fully unlinked. Reviewed-by: George Wilson <gwilson@delphix.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Prakash Surya <prakash.surya@delphix.com> Signed-off-by: Chunwei Chen <david.chen@nutanix.com> Closes openzfs#8769 Closes openzfs#9061
tonyhutter
pushed a commit
to tonyhutter/zfs
that referenced
this issue
Sep 23, 2019
We should only call zil_remove_async when an object is removed. However, in current implementation, it is called whenever TX_REMOVE is called. In the case of hardlinked file, every unlink will generate TX_REMOVE and causing operations to be dropped even when the object is not removed. We fix this by only calling zil_remove_async when the file is fully unlinked. Reviewed-by: George Wilson <gwilson@delphix.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Prakash Surya <prakash.surya@delphix.com> Signed-off-by: Chunwei Chen <david.chen@nutanix.com> Closes openzfs#8769 Closes openzfs#9061
tonyhutter
pushed a commit
that referenced
this issue
Sep 26, 2019
We should only call zil_remove_async when an object is removed. However, in current implementation, it is called whenever TX_REMOVE is called. In the case of hardlinked file, every unlink will generate TX_REMOVE and causing operations to be dropped even when the object is not removed. We fix this by only calling zil_remove_async when the file is fully unlinked. Reviewed-by: George Wilson <gwilson@delphix.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Prakash Surya <prakash.surya@delphix.com> Signed-off-by: Chunwei Chen <david.chen@nutanix.com> Closes #8769 Closes #9061
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
System information
Describe the problem you're observing
Out of order tx type like TX_WRITE and TX_SETATTR not always sync properly
Describe how to reproduce the problem
ops2.sh
https://gist.github.com/tuxoko/82b99ef6de0eba240bad7cdedbd5b1bf
This script is a randomly generated script of various operations and sync at the end.
cmp_ops2.sh
https://gist.github.com/tuxoko/df3a1080c9c4cfdb4b3b83139d34ea91
This script compare the contents of two directories.
The compare script shows a lot of difference in file contents and file mode bits.
Note, this can also be tested using zpool freeze.
However, when I tried it on master branch, while it does reproduce the problem, it somehow corrupted the pool in a ways that if you tried it the second time, it will trigger assert on import.
Include any warning/errors/backtraces from the system logs
The text was updated successfully, but these errors were encountered: