Re: unprecise report: lockups when using loopback

Dick Streefland (dicks@tasking.nl)
Thu, 20 Jun 1996 16:34:25 -0700


dicks@tasking.nl (Dick Streefland) writes:
> I also encountered some strange problems with the loop device. I played
> with an encrypted loopback mount, but on several occasions I got a
> corrupted file system, eventually leading to a system crash. For
> instance, I got pieces of C source code in an object file and files with
> invalid modes. It has nothing to do with the encryption, because it also
> occurs with a plain loopback mount. I tried very hard to get a
> reproducible scenario showing the problem, but failed until now.
> Therefor, I thing there is some race condition in the kernel concerning
> the loopback device. I will continue to investigate the problem, but if
> anyone has suggestions, please come forward.

I'm following up on my own posting because I now have a script to
reproduce the problem. It sets up a loopback mount and extracts a large
..tar.gz archive there. The archive has to be large for the errors to
show up. I'm using a file of 1Mb which expands to about 4Mb. As you can
see in the log file, the filesystem gets totally corrupted.

-- 
Dick Streefland              ////         Tasking Software BV
dicks@tasking.nl            (@ @)             The Netherlands
------------------------oOO--(_)--OOo------------------------
::::::::::::::
loopbug
::::::::::::::
#!/bin/sh

dev=/dev/loop0 img=/tmp/image mnt=/mnt taz=/usr/local/sources/nvi.ALPHA.1.66.tar.gz # 1027870 bytes

dd bs=1k count=8192 if=/dev/zero of=$img losetup $dev $img mke2fs -m0 -q $dev mount $dev $mnt cd $mnt tar xfz $taz cd / umount $mnt fsck -f -y $dev losetup -d $dev rm -f $img :::::::::::::: loopbug.log :::::::::::::: 8192+0 records in 8192+0 records out mke2fs 0.5b, 11-Mar-95 for EXT2 FS 0.5b, 95/08/09 tar: Could not create file nvi.1.66/docs/ev: No such file or directory tar: Could not create file nvi.1.66/docs/features: No such file or directory tar: Could not create directory nvi.1.66/docs/interp: No such file or directory tar: Could not create file nvi.1.66/docs/interp/interp: No such file or directory tar: Could not create file nvi.1.66/docs/interp/spell.ok: No such file or directory tar: Could not create file nvi.1.66/docs/spell.ok: No such file or directory tar: Could not create file nvi.1.66/docs/TODO: No such file or directory tar: Could not create directory nvi.1.66/docs/internals: No such file or directory tar: Could not create file nvi.1.66/docs/internals/gdb.script: No such file or directory tar: Could not create file nvi.1.66/docs/internals/structures: No such file or directory tar: Could not create file nvi.1.66/docs/internals/autowrite: No such file or directory tar: Could not create file nvi.1.66/docs/internals/quoting: No such file or directory tar: Could not create file nvi.1.66/docs/internals/input: No such file or directory tar: Could not create file nvi.1.66/docs/internals/context: No such file or directory tar: Could not create file nvi.1.66/docs/internals/openmode: No such file or directory tar: Could not create file nvi.1.66/docs/internals/cscope.NOTES: No such file or directory tar: Could not create file nvi.1.66/docs/changelog: No such file or directory tar: Could not create directory nvi.1.66/docs/tutorial: No such file or directory tar: Could not create file nvi.1.66/docs/tutorial/vi.advanced: No such file or directory tar: Could not create file nvi.1.66/docs/tutorial/vi.beginner: No such file or directory tar: Could not create file nvi.1.66/docs/tutorial/vi.tut.csh: No such file or directory tar: Could not change access and modification times of nvi.1.66/docs/USD.doc/exref: No such file or directory tar: Cannot chown file nvi.1.66/docs/USD.doc/exref to uid 3 gid 9: No such file or directory tar: Cannot change mode of file nvi.1.66/docs/USD.doc/exref to 755: No such file or directory tar: Could not change access and modification times of nvi.1.66/docs/USD.doc/vitut: No such file or directory tar: Cannot chown file nvi.1.66/docs/USD.doc/vitut to uid 3 gid 9: No such file or directory tar: Cannot change mode of file nvi.1.66/docs/USD.doc/vitut to 755: No such file or directory tar: Could not change access and modification times of nvi.1.66/docs/USD.doc/vi.man: No such file or directory tar: Cannot chown file nvi.1.66/docs/USD.doc/vi.man to uid 3 gid 9: No such file or directory tar: Cannot change mode of file nvi.1.66/docs/USD.doc/vi.man to 755: No such file or directory tar: Could not change access and modification times of nvi.1.66/docs/USD.doc/vi.ref: No such file or directory tar: Cannot chown file nvi.1.66/docs/USD.doc/vi.ref to uid 3 gid 9: No such file or directory tar: Cannot change mode of file nvi.1.66/docs/USD.doc/vi.ref to 755: No such file or directory tar: Could not change access and modification times of nvi.1.66/docs/USD.doc/edit: No such file or directory tar: Cannot chown file nvi.1.66/docs/USD.doc/edit to uid 3 gid 9: No such file or directory tar: Cannot change mode of file nvi.1.66/docs/USD.doc/edit to 755: No such file or directory tar: Could not change access and modification times of nvi.1.66/docs/USD.doc: No such file or directory tar: Cannot chown file nvi.1.66/docs/USD.doc to uid 3 gid 9: No such file or directory tar: Cannot change mode of file nvi.1.66/docs/USD.doc to 755: No such file or directory Parallelizing fsck version 0.5b (11-Mar-95) e2fsck 0.5b, 11-Mar-95 for EXT2 FS 0.5b, 95/08/09 Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Directory inode 200, block 0, offset 0: directory corrupted Salvage? yes

Missing '.' in directory inode 200. Fix? yes

Missing '..' in directory inode 200. Fix? yes

Pass 3: Checking directory connectivity '..' in /nvi.1.66/docs (200) is . (0), should be /nvi.1.66 (12). Fix? yes

Unconnected directory inode 201 (/nvi.1.66/docs/???) Connect to /lost+found? yes

Pass 4: Checking reference counts Inode 2 has ref count 3, expecting 4. Set i_nlinks to count? yes

Inode 12 has ref count 21, expecting 20. Set i_nlinks to count? yes

Inode 201 has ref count 8, expecting 7. Set i_nlinks to count? yes

Pass 5: Checking group summary information

/dev/loop0: ***** FILE SYSTEM WAS MODIFIED ***** /dev/loop0: 389/2048 files, 4057/8192 blocks