Re: bash: Fails to upgrade in kFreeBSD jails
Hey
On Fri, Jun 29, 2012 at 3:37 AM, Steven Chamberlain <steven@pyro.eu.org> wrote:
> Hi,
>
> Hmmm, I can't seem to reproduce the problem here, in a kfreebsd-i386
> jail environment on a GNU/kFreeBSD (9.0) host. I had bash 4.2-2 already
> installed though.
I suppose that narrows it down a little. I'm more and more inclined to
blame ZFS.
> If this problem can still be reproduced, a ktrace[1] may be helpful
Here we go:
74149 ktrace RET ktrace 0
74149 ktrace CALL execve(0x7fffffffdd57,0x7fffffffdaf0,0x7fffffffdb00)
74149 ktrace NAMI "./preinst"
74149 ktrace NAMI "/lib/ld-kfreebsd-x86-64.so.1"
74149 preinst RET execve 0
74149 preinst CALL getuid
74149 preinst RET getuid 0
74149 preinst CALL geteuid
74149 preinst RET geteuid 0
74149 preinst CALL getgid
74149 preinst RET getgid 0
74149 preinst CALL getegid
74149 preinst RET getegid 0
74149 preinst CALL break(0x800823000)
74149 preinst RET break -1 errno 12 Cannot allocate memory
74149 preinst CALL
__sysctl(0x7fffffffd8a0,0x2,0x7fffffffd8ac,0x7fffffffd898,0,0)
74149 preinst SCTL "kern.osreldate"
74149 preinst RET __sysctl 0
74149 preinst CALL getuid
74149 preinst RET getuid 0
74149 preinst CALL access(0x80061b58b,0<F_OK>)
74149 preinst NAMI "/etc/ld.so.nohwcap"
74149 preinst RET access -1 errno 2 No such file or directory
74149 preinst CALL
mmap(0,0x2000,0x3<PROT_READ|PROT_WRITE>,0x1002<MAP_ANON|MAP_TYPE|MAP_PRIVATE>,0xffffffff,0)
74149 preinst RET mmap 34366164992/0x800621000
74149 preinst CALL getuid
74149 preinst RET getuid 0
74149 preinst CALL access(0x80061dd00,0x4<R_OK>)
74149 preinst NAMI "/etc/ld.so.preload"
74149 preinst RET access -1 errno 2 No such file or directory
74149 preinst CALL open(0x80061b527,0<><invalid>0,<unused>0)
74149 preinst NAMI "/etc/ld.so.cache"
74149 preinst RET open 3
74149 preinst CALL fstat(0x3,0x7fffffffd0b0)
74149 preinst STRU invalid record
74149 preinst RET fstat 0
74149 preinst CALL mmap(0,0x212b,0x1<PROT_READ>,0x2<MAP_PRIVATE>,0x3,0)
74149 preinst RET mmap 34366173184/0x800623000
74149 preinst CALL close(0x3)
74149 preinst RET close 0
74149 preinst CALL getuid
74149 preinst RET getuid 0
74149 preinst CALL access(0x80061b58b,0<F_OK>)
74149 preinst NAMI "/etc/ld.so.nohwcap"
74149 preinst RET access -1 errno 2 No such file or directory
74149 preinst CALL open(0x7fffffffd0d0,0<><invalid>0,<unused>0)
74149 preinst NAMI "/lib/x86_64-kfreebsd-gnu/tls/x86_64/libc.so.0.1"
74149 preinst RET open -1 errno 2 No such file or directory
74149 preinst CALL stat(0x7fffffffd0d0,0x7fffffffd040)
74149 preinst NAMI "/lib/x86_64-kfreebsd-gnu/tls/x86_64"
74149 preinst RET stat -1 errno 2 No such file or directory
74149 preinst CALL open(0x7fffffffd0d0,0<><invalid>0,<unused>0)
74149 preinst NAMI "/lib/x86_64-kfreebsd-gnu/tls/libc.so.0.1"
74149 preinst RET open -1 errno 2 No such file or directory
74149 preinst CALL stat(0x7fffffffd0d0,0x7fffffffd040)
74149 preinst NAMI "/lib/x86_64-kfreebsd-gnu/tls"
74149 preinst RET stat -1 errno 2 No such file or directory
74149 preinst CALL open(0x7fffffffd0d0,0<><invalid>0,<unused>0)
74149 preinst NAMI "/lib/x86_64-kfreebsd-gnu/x86_64/libc.so.0.1"
74149 preinst RET open -1 errno 2 No such file or directory
74149 preinst CALL stat(0x7fffffffd0d0,0x7fffffffd040)
74149 preinst NAMI "/lib/x86_64-kfreebsd-gnu/x86_64"
74149 preinst RET stat -1 errno 2 No such file or directory
74149 preinst CALL open(0x7fffffffd0d0,0<><invalid>0,<unused>0)
74149 preinst NAMI "/lib/x86_64-kfreebsd-gnu/libc.so.0.1"
74149 preinst RET open 3
74149 preinst CALL read(0x3,0x7fffffffd2f8,0x340)
74149 preinst GIO fd 3 read 832 bytes
0x0000 7f45 4c46 0201 0109 0000 0000 0000 0000 |.ELF............|
0x0010 0300 3e00 0100 0000 40f4 0100 0000 0000 |..>.....@.......|
0x0020 4000 0000 0000 0000 2043 1400 0000 0000 |@....... C......|
0x0030 0000 0000 4000 3800 0a00 4000 2400 2300 |....@.8...@.$.#.|
0x0040 0600 0000 0500 0000 4000 0000 0000 0000 |........@.......|
0x0050 4000 0000 0000 0000 4000 0000 0000 0000 |@.......@.......|
0x0060 3002 0000 0000 0000 3002 0000 0000 0000 |0.......0.......|
0x0070 0800 0000 0000 0000 0300 0000 0400 0000 |................|
0x0080 a016 1200 0000 0000 a016 1200 0000 0000 |................|
0x0090 a016 1200 0000 0000 1d00 0000 0000 0000 |................|
0x00a0 1d00 0000 0000 0000 1000 0000 0000 0000 |................|
0x00b0 0100 0000 0500 0000 0000 0000 0000 0000 |................|
0x00c0 0000 0000 0000 0000 0000 0000 0000 0000 |................|
0x00d0 48f3 1300 0000 0000 48f3 1300 0000 0000 |H.......H.......|
0x00e0 0000 2000 0000 0000 0100 0000 0600 0000 |.. .............|
0x00f0 38f4 1300 0000 0000 38f4 3300 0000 0000 |8.......8.3.....|
0x0100 38f4 3300 0000 0000 404d 0000 0000 0000 |8.3.....@M......|
0x0110 5099 0000 0000 0000 0000 2000 0000 0000 |P......... .....|
0x0120 0200 0000 0600 0000 002b 1400 0000 0000 |.........+......|
0x0130 002b 3400 0000 0000 002b 3400 0000 0000 |.+4......+4.....|
0x0140 e001 0000 0000 0000 e001 0000 0000 0000 |................|
0x0150 0800 0000 0000 0000 0400 0000 0400 0000 |................|
0x0160 7002 0000 0000 0000 7002 0000 0000 0000 |p.......p.......|
0x0170 7002 0000 0000 0000 4400 0000 0000 0000 |p.......D.......|
0x0180 4400 0000 0000 0000 0400 0000 0000 0000 |D...............|
0x0190 0700 0000 0400 0000 38f4 1300 0000 0000 |........8.......|
0x01a0 38f4 3300 0000 0000 38f4 3300 0000 0000 |8.3.....8.3.....|
0x01b0 1000 0000 0000 0000 6800 0000 0000 0000 |........h.......|
0x01c0 0800 0000 0000 0000 50e5 7464 0400 0000 |........P.td....|
0x01d0 c016 1200 0000 0000 c016 1200 0000 0000 |................|
0x01e0 c016 1200 0000 0000 3457 0000 0000 0000 |........4W......|
0x01f0 3457 0000 0000 0000 0400 0000 0000 0000 |4W..............|
0x0200 51e5 7464 0600 0000 0000 0000 0000 0000 |Q.td............|
0x0210 0000 0000 0000 0000 0000 0000 0000 0000 |................|
0x0220 0000 0000 0000 0000 0000 0000 0000 0000 |................|
0x0230 0800 0000 0000 0000 52e5 7464 0400 0000 |........R.td....|
0x0240 38f4 1300 0000 0000 38f4 3300 0000 0000 |8.......8.3.....|
0x0250 38f4 3300 0000 0000 c83b 0000 0000 0000 |8.3......;......|
0x0260 c83b 0000 0000 0000 0100 0000 0000 0000 |.;..............|
0x0270 0400 0000 1400 0000 0300 0000 474e 5500 |............GNU.|
0x0280 de8b c1f3 7beb ac75 7d7f 2633 9cff 4dd3 |....{..u}.&3..M.|
0x0290 4ca1 c980 0400 0000 1000 0000 0100 0000 |L...............|
0x02a0 474e 5500 0300 0000 0800 0000 0100 0000 |GNU.............|
0x02b0 0000 0000 0000 0000 f303 0000 1500 0000 |................|
0x02c0 0001 0000 0e00 0000 0030 1044 a000 0201 |.........0.D....|
0x02d0 8803 e690 c545 8c00 c000 0800 0580 0060 |.....E.........`|
0x02e0 c080 000d 8e0c 0014 3400 8844 3208 2e40 |........4..D2..@|
0x02f0 8a50 342c 200e 2248 2684 c08c 0408 0002 |.P4, ."H&.......|
0x0300 020e a1ac 1a04 66c0 00c0 3200 c000 5001 |......f...2...P.|
0x0310 0081 089c 0a28 2028 2400 0420 5000 1058 |.....( ($.. P..X|
0x0320 80ca 4442 2800 0680 1018 4200 2040 8000 |..DB(.....B. @..|
0x0330 09d0 0851 8a40 1500 0000 0008 0000 1110 |...Q.@..........|
74149 preinst RET read 832/0x340
74149 preinst CALL fstat(0x3,0x7fffffffd040)
74149 preinst STRU invalid record
74149 preinst RET fstat 0
74149 preinst CALL
mmap(0,0x348d88,0x5<PROT_READ|PROT_EXEC>,0x2<MAP_PRIVATE>,0x3,0)
74149 preinst RET mmap 34368270336/0x800823000
74149 preinst CALL mprotect(0x800963000,0x1ff000,0<PROT_NONE>)
74149 preinst RET mprotect 0
74149 preinst CALL
__sysctl(0x7fffffffce50,0x2,0x8008220e8,0x7fffffffce48,0,0)
74149 preinst SCTL "hw.pagesize"
74149 preinst RET __sysctl 0
74149 preinst CALL
mmap(0x800b62000,0x6000,0x3<PROT_READ|PROT_WRITE>,0x12<MAP_PRIVATE|MAP_FIXED>,0x3,0x13f000)
74149 preinst RET mmap 34371674112/0x800b62000
74149 preinst CALL
mmap(0x800b68000,0x3d88,0x3<PROT_READ|PROT_WRITE>,0x1012<MAP_ANON|MAP_TYPE|MAP_PRIVATE|MAP_FIXED>,0xffffffff,0)
74149 preinst RET mmap 34371698688/0x800b68000
74149 preinst CALL close(0x3)
74149 preinst RET close 0
74149 preinst CALL
mmap(0,0x1000,0x3<PROT_READ|PROT_WRITE>,0x1002<MAP_ANON|MAP_TYPE|MAP_PRIVATE>,0xffffffff,0)
74149 preinst RET mmap 34366185472/0x800626000
74149 preinst CALL
mmap(0,0x1000,0x3<PROT_READ|PROT_WRITE>,0x1002<MAP_ANON|MAP_TYPE|MAP_PRIVATE>,0xffffffff,0)
74149 preinst RET mmap 34366189568/0x800627000
74149 preinst CALL sysarch(0x81,0x7fffffffd8a8)
74149 preinst RET sysarch 0
74149 preinst CALL open(0x80061b0b0,0<><invalid>0,<unused>0)
74149 preinst NAMI "/dev/urandom"
74149 preinst RET open 3
74149 preinst CALL read(0x3,0x7fffffffd898,0x8)
74149 preinst GIO fd 3 read 8 bytes
0x0000 f799 7052 87d2 fd5a |..pR...Z|
74149 preinst RET read 8
74149 preinst CALL close(0x3)
74149 preinst RET close 0
74149 preinst CALL mprotect(0x800b62000,0x4000,0x1<PROT_READ>)
74149 preinst RET mprotect 0
74149 preinst CALL mprotect(0x602000,0x1000,0x1<PROT_READ>)
74149 preinst RET mprotect 0
74149 preinst CALL mprotect(0x800820000,0x1000,0x1<PROT_READ>)
74149 preinst RET mprotect 0
74149 preinst CALL sigaction(SIGSYS,0x7fffffffda10,0)
74149 preinst RET sigaction 0
74149 preinst CALL getuid
74149 preinst RET getuid 0
74149 preinst CALL access(0x401a8e,0x1<X_OK>)
74149 preinst NAMI "/bin/sh"
74149 preinst RET access 0
74149 preinst CALL stat(0x401a8e,0x7fffffffd8c0)
74149 preinst NAMI "/bin/sh"
74149 preinst STRU invalid record
74149 preinst RET stat 0
74149 preinst CALL open(0x401ae4,0x1<><invalid>1,<unused>0)
74149 preinst NAMI "/dev/null"
74149 preinst RET open 3
74149 preinst CALL fcntl(0x3,<invalid=3>,0)
74149 preinst RET fcntl 1
74149 preinst CALL fcntl(0x3,<invalid=4>,0x1<><invalid>1)
74149 preinst RET fcntl -1 errno 25 Inappropriate ioctl for device
74149 preinst CALL write(0x2,0x401b81,0xe)
74149 preinst GIO fd 2 wrote 14 bytes
"bash.preinst: "
74149 preinst RET write 14/0xe
74149 preinst CALL write(0x2,0x7fffffffb0b0,0x1d)
74149 preinst GIO fd 2 wrote 29 bytes
"cannot set close-on-exec flag"
74149 preinst RET write 29/0x1d
74149 preinst CALL write(0x2,0x7fffffffaff0,0x20)
74149 preinst GIO fd 2 wrote 32 bytes
": Inappropriate ioctl for device"
74149 preinst RET write 32/0x20
74149 preinst CALL write(0x2,0x800b66c43,0x1)
74149 preinst GIO fd 2 wrote 1 byte
"
"
74149 preinst RET write 1
74149 preinst CALL exit(0x1)
> and maybe the output from /proc/mounts
/dev/mirror/gm0s1a / ufs rw 0 0
devfs /dev devfs rw 0 0
/dev/mirror/gm0s1e /tmp ufs rw 0 0
/dev/mirror/gm0s1f /usr ufs rw 0 0
/dev/mirror/gm0s1d /var ufs rw 0 0
tank /tank zfs rw 0 0
tank/db-mysql /tank/db-mysql zfs rw 0 0
tank/db-postgres /tank/db-postgres zfs rw 0 0
tank/dns /tank/dns zfs rw 0 0
tank/ldap /tank/ldap zfs rw 0 0
tank/mail /tank/mail zfs rw 0 0
tank/mumble /tank/mumble zfs rw 0 0
tank/obj /tank/obj zfs rw 0 0
tank/skel /tank/skel zfs rw 0 0
tank/src /tank/src zfs rw 0 0
tank/syslog /tank/syslog zfs rw 0 0
tank/www-dispatch /tank/www-dispatch zfs rw 0 0
tank/www-php-misc /tank/www-php-misc zfs rw 0 0
tank/www-static /tank/www-static zfs rw 0 0
devfs /tank/dns/dev devfs rw 0 0
devfs /tank/ldap/dev devfs rw 0 0
devfs /tank/syslog/dev devfs rw 0 0
devfs /tank/mail/dev devfs rw 0 0
devfs /tank/db-mysql/dev devfs rw 0 0
devfs /tank/mumble/dev devfs rw 0 0
devfs /tank/www-dispatch/dev devfs rw 0 0
devfs /tank/www-static/dev devfs rw 0 0
devfs /tank/www-php-misc/dev devfs rw 0 0
proc /tank/mumble/proc proc rw 0 0
/sys /tank/mumble/sys sysfs rw 0 0
tmpfs /tank/mumble/lib/init/rw tmpfs rw 0 0
proc /tank/dns/proc proc rw 0 0
/sys /tank/dns/sys sysfs rw 0 0
tmpfs /tank/dns/lib/init/rw tmpfs rw 0 0
proc /tank/mail/proc proc rw 0 0
/sys /tank/mail/sys sysfs rw 0 0
tmpfs /tank/mail/lib/init/rw tmpfs rw 0 0
proc /tank/db-mysql/proc proc rw 0 0
/sys /tank/db-mysql/sys sysfs rw 0 0
tmpfs /tank/db-mysql/lib/init/rw tmpfs rw 0 0
proc /tank/db-postgres/proc proc rw 0 0
/sys /tank/db-postgres/sys sysfs rw 0 0
tmpfs /tank/db-postgres/lib/init/rw tmpfs rw 0 0
proc /tank/www-dispatch/proc proc rw 0 0
/sys /tank/www-dispatch/sys sysfs rw 0 0
tmpfs /tank/www-dispatch/lib/init/rw tmpfs rw 0 0
proc /tank/www-static/proc proc rw 0 0
/sys /tank/www-static/sys sysfs rw 0 0
tmpfs /tank/www-static/lib/init/rw tmpfs rw 0 0
proc /tank/www-php-misc/proc proc rw 0 0
/sys /tank/www-php-misc/sys sysfs rw 0 0
tmpfs /tank/www-php-misc/lib/init/rw tmpfs rw 0 0
devfs /tank/db-postgres/dev devfs rw 0 0
This is somewhat strange, I didn't expect my jail to see ALL the mounts.
> and of course "ls -al /dev/null"
crw-rw-rw- 1 root root 0, 19 Jun 29 04:11 /dev/null
> I don't have my jail in ZFS, but I guess devfs should be mounted at
> /path/to/jail/dev anyway, or else /dev/null could be missing, and get
> created as a regular file (which I also tried, and still couldn't
> reproduce this failure).
Yup, that's mounted.
cheers
--
Stefan Ott
http://www.ott.net/
"You are not Grey Squirrel?"
Reply to: