[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[coreutils] Re: Bug#598438: coreutils: new du corrupted filesystem warni
From: |
Jim Meyering |
Subject: |
[coreutils] Re: Bug#598438: coreutils: new du corrupted filesystem warning breaks scripts |
Date: |
Thu, 30 Sep 2010 14:40:09 +0200 |
Graham Cobb wrote:
> Package: coreutils
> Version: 8.5-1
> Severity: important
>
> Like many systems, my filesystem contains loops due to bind mounts (in my case
> it is for scratchbox, the reporter of bug 563254 has a different reason, I
> have had other reasons in the past as well).
>
> I use a backup script called dt-s3-backup.sh, which has been working for some
> time but has suddenly broken due to the change in du's handling of filesystem
> loops.
>
> Although I exclude the looped files from my backup, the script uses a du
> command which crosses the filesystem loop. Previously, du silently ignored the
> files below the loop -- the script depends on this behaviour and breaks
> completely now that du returns an error.
>
> I know about the filesystem loop. It in no way represents any filesystem
> corruption and the change in behaviour should not have been made without some
> way to disable it. I do not object to the new behaviour being the default but
> there needs to be an option to disable the error and silently ignore the
> loop.
>
> A simple test case to reproduce this problem:
>
> mkdir -p /tmp/du-test/loop
> echo hello >/tmp/du-test/a
> mount -o bind /tmp /tmp/du-test/loop
> du -s /tmp
> umount /tmp/du-test/loop
>
> Note: there is no way to avoid this problem using the --exclude option as
> excluding the directory does not stop du reporting the error. This can be
> seen
> by replacing the du command above with:
>
> du --exclude /tmp/du-test/loop -s /tmp
>
> It is possible to use "--exclude=/tmp/du-test" but that excludes too much --
> the du command needs to count files such as /tmp/du-test/a.
Thank you for the report and reproducer.
That is a bug in how du's --exclude works in coreutils-8.1 through 8.5.
It was fixed for the next release via this change by Paul Eggert:
du: tune, and fix some -L bugs with dangling or cyclic symlinks
http://git.savannah.gnu.org/cgit/coreutils.git/commit/?id=77428214f13e1
However, this particular fix was not noted in NEWS,
so I'm adding an entry for it:
>From 65b50c6cdd4a140a2974907423a1df1692b6d3ae Mon Sep 17 00:00:00 2001
From: Jim Meyering <address@hidden>
Date: Thu, 30 Sep 2010 14:24:42 +0200
Subject: [PATCH] maint: mention the du-exclude--vs--cycle-dir fix
* NEWS (Bug fixes): Mention the du-exclude--vs--cycle-dir fix.
Reported by Graham Cobb in http://bugs.debian.org/598438,
that bug was fixed by the 2010-07-24 commit, 77428214f,
"du: tune, and fix some -L bugs with dangling or cyclic symlinks"
---
NEWS | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/NEWS b/NEWS
index 898ee09..11a8b74 100644
--- a/NEWS
+++ b/NEWS
@@ -11,6 +11,10 @@ GNU coreutils NEWS -*-
outline -*-
du -H and -L now consistently count pointed-to files instead of
symbolic links, and correctly diagnose dangling symlinks.
+ du --ignore=D now ignores directory D even when that directory is
+ found to be part of a directory cycle. Before, du would issue a
+ "NOTIFY YOUR SYSTEM MANAGER" diagnostic and fail.
+
tac would perform a double-free when given an input line longer than 16KiB.
[bug introduced in coreutils-8.3]
--
1.7.3.293.gca9a76
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [coreutils] Re: Bug#598438: coreutils: new du corrupted filesystem warning breaks scripts,
Jim Meyering <=