#2 mount - Segmentation fault

open
nobody
None
5
2007-03-09
2007-03-09
No

Hi

I'm the maintainer of http://www.redwall-firewall.com. I'm currently
trying to get aufs working as an alternative to unionfs which im
currently using for the /var filesystem as well as for the /etc (this
way i can "detect" changed files.. and save them on a floppy for
instance) filesystem.

Currently i'm stuck with the following Problem:

--> The System is up and running with aufs mounted to /etc (and /var)
--> This Problem ONLY occurs if i'm working on the aufs /etc mountpoint
--> there is a tmpfs mounted to /CHANGES
--> /CHANGES, /etc and /var are writeable... everything else is RO
--> Kernel is 2.6.18
--> mount: mount-2.12r
--> aufs Version: CVS checkout & updates from yesterday (08. March 07)

I performed these steps to reproduce the segfault:

# unionctl /etc --list
/CHANGES/etc (rw-)
/REDWALL/union_branches/etc (r--)

# mount | grep "/etc"
aufs on /etc type aufs
(rw,xino=/CHANGES/etc/.aufs.xino,br:/CHANGES/etc=rw:/REDWALL/union_branches/etc=ro)

# cat /proc/mounts | grep "/etc"
aufs /etc aufs
rw,xino=/CHANGES/etc/.aufs.xino,br:/CHANGES/etc=rw:/REDWALL/union_branches/etc=ro
0 0

# mkdir /CHANGES/tmp/tempetc

# mount -o
remount,prepend:/CHANGES/tmp/tempetc=rw,xino=/CHANGES/tmp/tempetc/.aufs.xino
/etc

# unionctl /etc --list
/CHANGES/tmp/tempetc (rw-)
/CHANGES/etc (rw-)
/REDWALL/union_branches/etc (r--)

# mount | grep "/etc"
aufs on /etc type aufs
(rw,xino=/CHANGES/tmp/tempetc/.aufs.xino,br:/CHANGES/tmp/tempetc=rw:/CHANGES/etc=rw:/REDWALL/union_branches/etc=ro)

# cat /proc/mounts | grep "/etc"
aufs /etc aufs
rw,xino=/CHANGES/tmp/tempetc/.aufs.xino,br:/CHANGES/tmp/tempetc=rw:/CHANGES/etc=rw:/REDWALL/union_branches/etc=ro
0 0

# cat /CHANGES/tmp/tempetc/mtab | grep "/etc"
aufs /etc aufs
rw,xino=/CHANGES/tmp/tempetc/.aufs.xino,br:/CHANGES/tmp/tempetc=rw:/CHANGES/etc=rw:/REDWALL/union_branches/etc=ro
0 0

# mount -o remount,mod:/CHANGES/etc=ro,del:/CHANGES/etc /etc ; echo $?
0

--> As you can see... this command returned no error

# unionctl /etc --list
/CHANGES/tmp/tempetc (rw-)
/REDWALL/union_branches/etc (r--)

--> This Looks fine as well.... BUT:

# mount
Segmentation fault

--> At this time... as soon as i issue the mount command i get an OPS
(attached to the end of the mail)

# cat /etc/mtab | grep "/etc"
aufs /etc aufs
rw,xino=/CHANGES/tmp/tempetc/.aufs.xino,br:/CHANGES/tmp/tempetc=rw:/REDWALL/union_branches/etc=ro
0 0

# cat /proc/mounts | grep "/etc"
aufs /etc aufs
rw,xino=/CHANGES/tmp/tempetc/.aufs.xino,br:/CHANGES/tmp/tempetc=rw:/REDWALL/union_branches/etc=ro
0 0

# dmesg
------------[ cut here ]------------
Kernel BUG at [verbose debug info unavailable]
invalid opcode: 0000 [#1]
SMP
Modules linked in: ipt_ULOG iptable_filter ip_tables x_tables rtc
usbcore shpchp pci_hotplug i2c_piix4 i2c_core mptspi mptscsih mptbase
pcnet32 aufs
CPU: 0
EIP: 0060:[<cb03afa1>] Not tainted VLI
EFLAGS: 00010246 (2.6.18.3-rw #1)
EIP is at aufs_permission+0x8e/0x21e [aufs]
eax: 00000000 ebx: c93a299c ecx: c93a299c edx: 00000000
esi: c93a299c edi: 00000000 ebp: 00000000 esp: c4fc9e18
ds: 007b es: 007b ss: 0068
Process mount (pid: 11653, ti=c4fc8000 task=c8d44030 task.ti=c4fc8000)
Stack: ca1e5a00 00000000 00000000 ca2d6dc0 c342a894 ca2d6cc0 00000000
00000000
c64ac90c 00000101 00000001 00000000 c3b06ef0 c5719b7c 00001000
b7fbe17c
c3875000 00000000 c3875000 c9a5f840 c864b580 00000001 00000000
c8eaf3c0
Call Trace:
[<c0161795>] permission+0x9b/0xd4
[<c01617e1>] vfs_permission+0x13/0x17
[<c01632f9>] may_open+0x53/0x1ab
[<c01636c5>] open_namei+0x274/0x5e1
[<c013ded7>] filemap_nopage+0x189/0x301
[<c0155898>] do_filp_open+0x29/0x3f
[<c0155b1c>] do_sys_open+0x3b/0xaf
[<c0155ba3>] sys_open+0x13/0x17
[<c010278d>] sysenter_past_esp+0x56/0x79
Code: ff 74 24 74 e8 8c 31 00 00 89 c7 5b 85 c0 74 1b 8b 4c 24 74 0f b7
50 28 0f b7 41 28 81 e2 00 f0 00 00 25 00 f0 00 00 39 c2 74 02 <0f> 0b
c7 44 24 0c 00 00 00 00 ff 74 24 74 e8 14 30 00 00 0f be
EIP: [<cb03afa1>] aufs_permission+0x8e/0x21e [aufs] SS:ESP 0068:c4fc9e18

Any help on how to fix this.... or maybe it did something wrong... is
very much appreciated!.... Please let me know... if you need any further
information (sorry... i don't have strace available at this system)

Cheers

Marcel

Discussion


Log in to post a comment.