-
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
zfs recv occasionally hangs instead of running on recent git #13232
Comments
Well, I just reproduced this on zfs-2.0.0-rc1-217-gfd654e412, so much for this being new. I guess I just don't run recvs on really slow setups enough to notice...maybe? |
...you know, I wasn't really expecting this to be the function to blame, but it appears that we get stuck in:
so I guess pipe_read's behavior isn't what we think it should be? |
zrepl/zrepl#424 seems extremely relevant. |
This issue has been automatically marked as "stale" because it has not had any activity for a while. It will be closed in 90 days if no further activity occurs. Thank you for your contributions. |
System information
Describe the problem you're observing
(I've seen it happen much more rarely on my faster systems, but it seems to occur more frequently on my Pi 4)
(I'll run this down, but figured I'd open an issue while I was doing so...)
When trying to benchmark a PR recently that didn't touch the send/recv code, I observed that sometimes, "zfs recv" just hung indefinitely without ever starting to consume much from stdin. Of course, gdb/strace/etc just makes zfs recv crash, so that's not easily investigable...
So I tested it, and found that it sometimes happened with stock git, too. The recv command wasn't even interesting, either -
zfs recv -o compression={off,lz4} some/pool/path
.Describe how to reproduce the problem
zfs recv
a number of times, preferably on a slow systemInclude any warning/errors/backtraces from the system logs
None, really.
When I turned on all the zfs_flags knobs, I got back a couple of:
1647571080 dsl_dir.c:1330:dsl_dir_tempreserve_impl(): error 28
but it's not clear to me how interesting that is.
e: If I go kick it into core dumping while "stuck", this is the backtrace of the only thread:
The text was updated successfully, but these errors were encountered: