Skip to content
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

File transfer hangs upon "Skip all" on I/O errors #4631

Open
mc-butler opened this issue Jan 12, 2025 · 1 comment
Open

File transfer hangs upon "Skip all" on I/O errors #4631

mc-butler opened this issue Jan 12, 2025 · 1 comment
Labels
area: core Issues not related to a specific subsystem prio: medium Has the potential to affect progress
Milestone

Comments

@mc-butler
Copy link

Important

This issue was migrated from Trac:

Origin https://midnight-commander.org/ticket/4631
Reporter zaytsev (@zyv)
Mentions kilobyte@….pl (@kilobyte)

Forwarded from https://bugs-devel.debian.org/cgi-bin/bugreport.cgi?bug=844331:

When a "Copy" or "Move" operation hits an io error, it offers to "Skip" the
current file, "Skip all", "Retry", "Abort". If you select "Skip all", it
will ask you once whether to delete the incomplete file, then hang. The UI
is still responsive, showing an ever-increasing ETA, yet no progress is
being done.

On the other hand, mere "Skip" does work -- it asks two questions per file
(Skip then delete incomplete), which is greatly tedious but allows progress.


As I can't quite mail you a physical bad disk, I've crafted a small image
that you can loop-mount. It's formatted with btrfs (for data checksums) and
has all of the three files scribbled over so the checksums don't match.

While in the root of this filesystem, with the cursor over the only
directory, please press F5 or F6. Select a destination, then "Skip all".

By the way, an unrelated bug: F3 over one of these files, it'll happily
claim the files are empty instead of reporting the error. "cat", "tar" or
anything will report it correctly.


Note that the image I've attached to the previous mail uses btrfs, but the
problem is in no way btrfs-specific. It's the only mainline filesystem[1]
that has data checksums, making it trivial to simulate an I/O error without
physically damaging a disk or using a block device simulator.

To use the image:

sudo mount -o loop -t btrfs img /mnt/somehwere

Obviously, a bad sector can hit a directory rather than a plain file, which
results in a different kind of "fun", but this reproducer does the far
more likely case of bad files.

Note

Original attachments:

@mc-butler
Copy link
Author

Changed by zaytsev (@zyv) on Jan 12, 2025 at 11:25 UTC

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: core Issues not related to a specific subsystem prio: medium Has the potential to affect progress
Development

No branches or pull requests

1 participant