[Virtual-pkg-base-maintainers] Bug#604013: base: "ls -al" on armel inside loopback mounted ISO image failes with -1 ENOMEM

Robert Heinzmann bugs at elconas.de
Fri Nov 19 11:12:01 UTC 2010


Package: base
Severity: normal

** Please type your report below this line ***

I'm running Debian on Seagate Dockstar (Kirkwood platform). When I mount a ISO image via loopback (mount -o loop myfile.iso /mnt) a ls inside this mounted tree (ls -al /mnt/) failes with "Cannot allocate memory". 

This is a test on the Kirkwood machine: 

----
root at dockstar:/srv/tftp# md5sum systemrescuecd-x86-1.6.2.iso
b7662eb44b530d62c487dd367f2036ed  systemrescuecd-x86-1.6.2.iso
root at dockstar:/srv/tftp# uname -a
Linux dockstar.lab.elconas.de 2.6.32-5-kirkwood #1 Sat Sep 18 15:20:08 UTC 2010 armv5tel GNU/Linux

root at dockstar:/srv/tftp# mount -o loop systemrescuecd-x86-1.6.2.iso sysrescuecd
root at dockstar:/srv/tftp# ls -al sysrescuecd
ls: cannot access sysrescuecd/bootdisk: Cannot allocate memory
ls: cannot access sysrescuecd/bootprog: Cannot allocate memory
ls: cannot access sysrescuecd/isolinux: Cannot allocate memory
ls: cannot access sysrescuecd/ntpasswd: Cannot allocate memory
ls: cannot access sysrescuecd/sysrcd.dat: Cannot allocate memory
ls: cannot access sysrescuecd/sysrcd.md5: Cannot allocate memory
ls: cannot access sysrescuecd/usb_inst: Cannot allocate memory
ls: cannot access sysrescuecd/usb_inst.sh: Cannot allocate memory
ls: cannot access sysrescuecd/usbstick.htm: Cannot allocate memory
ls: cannot access sysrescuecd/version: Cannot allocate memory
total 6
dr-xr-xr-x  1 root root    2048 Oct 11 20:09 .
drwxr-xr-x 22 tftp nogroup 4096 Nov 19 11:38 ..
??????????  ? ?    ?          ?            ? bootdisk
??????????  ? ?    ?          ?            ? bootprog
??????????  ? ?    ?          ?            ? isolinux
??????????  ? ?    ?          ?            ? ntpasswd
??????????  ? ?    ?          ?            ? sysrcd.dat
??????????  ? ?    ?          ?            ? sysrcd.md5
??????????  ? ?    ?          ?            ? usb_inst
??????????  ? ?    ?          ?            ? usb_inst.sh
??????????  ? ?    ?          ?            ? usbstick.htm
??????????  ? ?    ?          ?            ? version

dmesg ...
[49412.581257] ISO 9660 Extensions: Microsoft Joliet Level 3
[49412.581340] ISOFS: changing to secondary root

root at dockstar:/srv/tftp# ldd /bin/ls
        libselinux.so.1 => /lib/libselinux.so.1 (0x40005000)
        librt.so.1 => /lib/librt.so.1 (0x40026000)
        libacl.so.1 => /lib/libacl.so.1 (0x40036000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x40044000)
        libc.so.6 => /lib/libc.so.6 (0x40058000)
        libdl.so.2 => /lib/libdl.so.2 (0x40188000)
        /lib/ld-linux.so.3 (0x2a000000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x40193000)
        libattr.so.1 => /lib/libattr.so.1 (0x401b3000)

root at dockstar:/srv/tftp# file /bin/ls
/bin/ls: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped

root at dockstar:/srv/tftp# strace ls -al sysrescuecd/ntpasswd
.....
open("/proc/filesystems", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4001e000
read(3, "nodev\tsysfs\nnodev\trootfs\nnodev\tb"..., 1024) = 286
read(3, "", 1024)                       = 0
close(3)                                = 0
munmap(0x4001e000, 4096)                = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, TIOCGWINSZ, {ws_row=57, ws_col=190, ws_xpixel=0, ws_ypixel=0}) = 0
lstat64("sysrescuecd/ntpasswd", 0x280b0) = -1 ENOMEM (Cannot allocate memory)
write(2, "ls: ", 4ls: )                     = 4
write(2, "cannot access sysrescuecd/ntpass"..., 34cannot access sysrescuecd/ntpasswd) = 34
write(2, ": Cannot allocate memory", 24: Cannot allocate memory) = 24
write(2, "\n", 1
)                       = 1
close(1)                                = 0
close(2)                                = 0
exit_group(2)                           = ?
-----

When I do the same thing on normal x86_64 everything is ok: 

----

debian:/# md5sum systemrescuecd-x86-1.6.2.iso
b7662eb44b530d62c487dd367f2036ed  systemrescuecd-x86-1.6.2.iso
debian:/# uname -a
Linux debian 2.6.32-5-amd64 #1 SMP Fri Sep 17 21:50:19 UTC 2010 x86_64 GNU/Linux

debian:/# mount -o loop /systemrescuecd-x86-1.6.2.iso /mnt/test/
debian:/# ls -al /mnt/test
insgesamt 227894
dr-xr-xr-x 1 root root      2048 11. Okt 20:09 .
drwxr-xr-x 9 root root      4096 11. Nov 12:26 ..
dr-xr-xr-x 1 root root      2048 11. Jun 21:15 bootdisk
dr-xr-xr-x 1 root root      2048 26. Mai 09:07 bootprog
dr-xr-xr-x 1 root root      2048 11. Okt 20:10 isolinux
dr-xr-xr-x 1 root root      2048  2. Mär 2010  ntpasswd
-r-xr-xr-x 1 root root 233328640 11. Okt 20:09 sysrcd.dat
-r-xr-xr-x 1 root root        45 11. Okt 20:09 sysrcd.md5
dr-xr-xr-x 1 root root      2048 28. Jun 21:35 usb_inst
-r-xr-xr-x 1 root root     15672 25. Sep 23:20 usb_inst.sh
-r-xr-xr-x 1 root root       877 25. Sep 23:20 usbstick.htm
-r-xr-xr-x 1 root root         6 11. Okt 20:09 version

dmsg ...
[239067.031523] ISO 9660 Extensions: Microsoft Joliet Level 3
[239067.031570] ISOFS: changing to secondary root

----
As you can see from md5sum, the file content is the same. I suspect a problem in loop or VFS ? 

Regards, 
Robert 


-- System Information:
Debian Release: squeeze/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: armel (armv5tel)

Kernel: Linux 2.6.32-5-kirkwood
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/dash





More information about the Virtual-pkg-base-maintainers mailing list