-
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
Infinite hang with ZVOL #54
Comments
According to the attached stack traces the system locked up because a few unrelated threads started a synchronous memory reclaim. The reclaim triggered a flush of pages dirty data pages to disk to free up memory. Unfortunately, they could not be synced to disk because they couldn't open the txg group. This may be because the currently committing transaction was blocked on something, or just very very slow, but it's impossible to tell from the logs. We'll just need to watch for something like this to happen again and get more debugging. |
A deadlock exactly like this was recently mostly addressed in the SPL. That's likely what happened here, I'm closing the bug as fixed. |
# This is the 1st commit message: Merge branch 'master' of https://github.com/zfsonlinux/zfs * 'master' of https://github.com/zfsonlinux/zfs: Enable QAT support in zfs-dkms RPM # This is the commit message openzfs#2: Import 0.6.5.7-0ubuntu3 # This is the commit message openzfs#3: gbp changes # This is the commit message openzfs#4: Bump ver # This is the commit message openzfs#5: -j9 baby # This is the commit message openzfs#6: Up # This is the commit message openzfs#7: Yup # This is the commit message openzfs#8: Add new module # This is the commit message openzfs#9: Up # This is the commit message openzfs#10: Up # This is the commit message openzfs#11: Bump # This is the commit message openzfs#12: Grr # This is the commit message openzfs#13: Yay # This is the commit message openzfs#14: Yay # This is the commit message openzfs#15: Yay # This is the commit message openzfs#16: Yay # This is the commit message openzfs#17: Yay # This is the commit message openzfs#18: Yay # This is the commit message openzfs#19: yay # This is the commit message openzfs#20: yay # This is the commit message openzfs#21: yay # This is the commit message openzfs#22: Update ppa script # This is the commit message openzfs#23: Update gbp conf with br changes # This is the commit message openzfs#24: Update gbp conf with br changes # This is the commit message openzfs#25: Bump # This is the commit message openzfs#26: No pristine # This is the commit message openzfs#27: Bump # This is the commit message openzfs#28: Lol whoops # This is the commit message openzfs#29: Fix name # This is the commit message openzfs#30: Fix name # This is the commit message openzfs#31: rebase # This is the commit message openzfs#32: Bump # This is the commit message openzfs#33: Bump # This is the commit message openzfs#34: Bump # This is the commit message openzfs#35: Bump # This is the commit message openzfs#36: ntrim # This is the commit message openzfs#37: Bump # This is the commit message openzfs#38: 9 # This is the commit message openzfs#39: Bump # This is the commit message openzfs#40: Bump # This is the commit message openzfs#41: Bump # This is the commit message openzfs#42: Revert "9" This reverts commit de488f1. # This is the commit message openzfs#43: Bump # This is the commit message openzfs#44: Account for zconfig.sh being removed # This is the commit message openzfs#45: Bump # This is the commit message openzfs#46: Add artful # This is the commit message openzfs#47: Add in zed.d and zpool.d scripts # This is the commit message openzfs#48: Bump # This is the commit message openzfs#49: Bump # This is the commit message openzfs#50: Bump # This is the commit message openzfs#51: Bump # This is the commit message openzfs#52: ugh # This is the commit message openzfs#53: fix zed upgrade # This is the commit message openzfs#54: Bump # This is the commit message openzfs#55: conf file zed.d # This is the commit message #56: Bump
Signed-off-by: Jan Kryl <[email protected]>
Redacted send/receive allows users to send subsets of their data to a target system. One possible use case for this feature is to not transmit sensitive information to a data warehousing, test/dev, or analytics environment. Another is to save space by not replicating unimportant data within a given dataset, for example in backup tools like zrepl. Redacted send/receive is a three-stage process. First, a clone (or clones) is made of the snapshot to be sent to the target. In this clone (or clones), all unnecessary or unwanted data is removed or modified. This clone is then snapshotted to create the "redaction snapshot" (or snapshots). Second, the new zfs redact command is used to create a redaction bookmark. The redaction bookmark stores the list of blocks in a snapshot that were modified by the redaction snapshot(s). Finally, the redaction bookmark is passed as a parameter to zfs send. When sending to the snapshot that was redacted, the redaction bookmark is used to filter out blocks that contain sensitive or unwanted information, and those blocks are not included in the send stream. When sending from the redaction bookmark, the blocks it contains are considered as candidate blocks in addition to those blocks in the destination snapshot that were modified since the creation_txg of the redaction bookmark. This step is necessary to allow the target to rehydrate data in the case where some blocks are accidentally or unnecessarily modified in the redaction snapshot. The changes to bookmarks to enable fast space estimation involve adding deadlists to bookmarks. There is also logic to manage the life cycles of these deadlists. The new size estimation process operates in cases where previously an accurate estimate could not be provided. In those cases, a send is performed where no data blocks are read, reducing the runtime significantly and providing a byte-accurate size estimate. Reviewed-by: Dan Kimmel <[email protected]> Reviewed-by: Matt Ahrens <[email protected]> Reviewed-by: Prashanth Sreenivasa <[email protected]> Reviewed-by: John Kennedy <[email protected]> Reviewed-by: George Wilson <[email protected]> Reviewed-by: Chris Williamson <[email protected]> Reviewed-by: Pavel Zhakarov <[email protected]> Reviewed-by: Sebastien Roy <[email protected]> Reviewed-by: Prakash Surya <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Paul Dagnelie <[email protected]> Closes openzfs#7958
* macOS: Move INO map macros The INO mapping macros need to also be accessable from userland. * Upstream: zdb needs to map inodes on macOS
* macOS: Move INO map macros The INO mapping macros need to also be accessable from userland. * Upstream: zdb needs to map inodes on macOS
* macOS: Move INO map macros The INO mapping macros need to also be accessable from userland. * Upstream: zdb needs to map inodes on macOS
* macOS: Move INO map macros The INO mapping macros need to also be accessable from userland. * Upstream: zdb needs to map inodes on macOS
* macOS: Move INO map macros The INO mapping macros need to also be accessable from userland. * Upstream: zdb needs to map inodes on macOS
* macOS: Move INO map macros The INO mapping macros need to also be accessable from userland. * Upstream: zdb needs to map inodes on macOS
* macOS: Move INO map macros The INO mapping macros need to also be accessable from userland. * Upstream: zdb needs to map inodes on macOS
* macOS: Move INO map macros The INO mapping macros need to also be accessable from userland. * Upstream: zdb needs to map inodes on macOS
* macOS: Move INO map macros The INO mapping macros need to also be accessable from userland. * Upstream: zdb needs to map inodes on macOS
* macOS: Move INO map macros The INO mapping macros need to also be accessable from userland. * Upstream: zdb needs to map inodes on macOS
* macOS: Move INO map macros The INO mapping macros need to also be accessable from userland. * Upstream: zdb needs to map inodes on macOS Signed-off-by: Jorgen Lundman <[email protected]>
* macOS: Move INO map macros The INO mapping macros need to also be accessable from userland. * Upstream: zdb needs to map inodes on macOS Signed-off-by: Jorgen Lundman <[email protected]>
* macOS: Move INO map macros The INO mapping macros need to also be accessable from userland. * Upstream: zdb needs to map inodes on macOS Signed-off-by: Jorgen Lundman <[email protected]>
* macOS: Move INO map macros The INO mapping macros need to also be accessable from userland. * Upstream: zdb needs to map inodes on macOS Signed-off-by: Jorgen Lundman <[email protected]>
* macOS: Move INO map macros The INO mapping macros need to also be accessable from userland. * Upstream: zdb needs to map inodes on macOS Signed-off-by: Jorgen Lundman <[email protected]>
* macOS: Move INO map macros The INO mapping macros need to also be accessable from userland. * Upstream: zdb needs to map inodes on macOS Signed-off-by: Jorgen Lundman <[email protected]>
* macOS: Move INO map macros The INO mapping macros need to also be accessable from userland. * Upstream: zdb needs to map inodes on macOS Signed-off-by: Jorgen Lundman <[email protected]>
* macOS: Move INO map macros The INO mapping macros need to also be accessable from userland. * Upstream: zdb needs to map inodes on macOS Signed-off-by: Jorgen Lundman <[email protected]>
* macOS: Move INO map macros The INO mapping macros need to also be accessable from userland. * Upstream: zdb needs to map inodes on macOS Signed-off-by: Jorgen Lundman <[email protected]>
* macOS: Move INO map macros The INO mapping macros need to also be accessable from userland. * Upstream: zdb needs to map inodes on macOS Signed-off-by: Jorgen Lundman <[email protected]>
* macOS: Move INO map macros The INO mapping macros need to also be accessable from userland. * Upstream: zdb needs to map inodes on macOS Signed-off-by: Jorgen Lundman <[email protected]>
* macOS: Move INO map macros The INO mapping macros need to also be accessable from userland. * Upstream: zdb needs to map inodes on macOS Signed-off-by: Jorgen Lundman <[email protected]>
* macOS: Move INO map macros The INO mapping macros need to also be accessable from userland. * Upstream: zdb needs to map inodes on macOS Signed-off-by: Jorgen Lundman <[email protected]>
* macOS: Move INO map macros The INO mapping macros need to also be accessable from userland. * Upstream: zdb needs to map inodes on macOS Signed-off-by: Jorgen Lundman <[email protected]>
The memory footprint of the ObjectBlockMap can be cut in half by treating the ObjectId as the minimum BlockId that it could contain. Now the ObjectBlockMap only needs to be a sorted list of ObjectId's, rather than (ObjectId, BlockId) tuples. In other words, rather than having the ObjectId's be 0, 1, 2, 3, ... they are 0, (first BlockId in the second object), (first blockId in the third object), etc. Since we already treat ObjectId's as potentially non-sequential (due to object consolidation), the implications on the rest of the code are minimal. Rather than rotating to a new ReclaimLog every 1000 ObjectId's, we now rotate every 1,000,000 ObjectId's (i.e. every 1,000,000 BlockId's). side cleanup: ObjectDeletePhys -> ObjectDeleterPhys
On Linux POSIX ACLs can be removed via rmxattr() for the relevant system xattrs. On FreeBSD a non-trivial ACL can be converted to one that is described by the mode with no loss of info via combination of acl_get_file(), acl_strip_np(), and acl_set_file(). Since there's no libc equivalent of these ops in Linux for NFSv4 ACLs, this commit makes this less error prone by handling entirely in ZFS. When user performs rmxattr() vfs_setxattr() is called with value of NULL and length of 0. Add special handling for this situation in the xattr handler for the NFSv4 ACL so that we generate a new ACL and zfs_acl_chmod() with the existing mode of file, then set the ACL. Signed-off-by: Andrew Walker <[email protected]>
On Linux POSIX ACLs can be removed via rmxattr() for the relevant system xattrs. On FreeBSD a non-trivial ACL can be converted to one that is described by the mode with no loss of info via combination of acl_get_file(), acl_strip_np(), and acl_set_file(). Since there's no libc equivalent of these ops in Linux for NFSv4 ACLs, this commit makes this less error prone by handling entirely in ZFS. When user performs rmxattr() vfs_setxattr() is called with value of NULL and length of 0. Add special handling for this situation in the xattr handler for the NFSv4 ACL so that we generate a new ACL and zfs_acl_chmod() with the existing mode of file, then set the ACL. Signed-off-by: Andrew Walker <[email protected]>
On Linux POSIX ACLs can be removed via rmxattr() for the relevant system xattrs. On FreeBSD a non-trivial ACL can be converted to one that is described by the mode with no loss of info via combination of acl_get_file(), acl_strip_np(), and acl_set_file(). Since there's no libc equivalent of these ops in Linux for NFSv4 ACLs, this commit makes this less error prone by handling entirely in ZFS. When user performs rmxattr() vfs_setxattr() is called with value of NULL and length of 0. Add special handling for this situation in the xattr handler for the NFSv4 ACL so that we generate a new ACL and zfs_acl_chmod() with the existing mode of file, then set the ACL. Signed-off-by: Andrew Walker <[email protected]>
On Linux POSIX ACLs can be removed via rmxattr() for the relevant system xattrs. On FreeBSD a non-trivial ACL can be converted to one that is described by the mode with no loss of info via combination of acl_get_file(), acl_strip_np(), and acl_set_file(). Since there's no libc equivalent of these ops in Linux for NFSv4 ACLs, this commit makes this less error prone by handling entirely in ZFS. When user performs rmxattr() vfs_setxattr() is called with value of NULL and length of 0. Add special handling for this situation in the xattr handler for the NFSv4 ACL so that we generate a new ACL and zfs_acl_chmod() with the existing mode of file, then set the ACL. Signed-off-by: Andrew Walker <[email protected]>
Not entirely clear to me what happened - I made two ZVOLs, concatenated them into a RAID-0 using Linux MD, made an ext4 filesystem on it, mounted it, and started rsyncing data.
...then the rsync hung, then the machine became unresponsive to anything short of sysrq.
Log available at http://gist.github.com/544526
Git commit 18568e1
The text was updated successfully, but these errors were encountered: