[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: bash: Fails to upgrade in kFreeBSD jails


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'm trying "apt-get --reinstall install bash" or directly running

Here's a system call trace:

 72202 bash.preinst CALL  open(0x8049678,0x1<><invalid>1,<unused>0)
 72202 bash.preinst NAMI  "/dev/null"
 72202 bash.preinst RET   open 3
 72202 bash.preinst CALL  fcntl(0x3,<invalid=3>,0x8149)
 72202 bash.preinst RET   fcntl 1
 72202 bash.preinst CALL  fcntl(0x3,<invalid=4>,0x1<><invalid>1)
 72202 bash.preinst RET   fcntl 0

Successfully opened /dev/null as fd 0x3.  I assume that is fcntl()
F_GETFL returning flags = 0x1 (which actually means FD_CLOEXEC was
already set), then F_SETFL returning 0 = success.

 72202 bash.preinst CALL  pipe
 72202 bash.preinst RET   pipe 4
 72202 bash.preinst CALL  fcntl(0x4,<invalid=3>,0x1)
 72202 bash.preinst RET   fcntl 2
 72202 bash.preinst CALL  fcntl(0x4,<invalid=4>,0x3<><invalid>3)
 72202 bash.preinst RET   fcntl 0
 72202 bash.preinst CALL  fcntl(0x5,<invalid=3>,0x28066d20)
 72202 bash.preinst RET   fcntl 2
 72202 bash.preinst CALL  fcntl(0x5,<invalid=4>,0x3<><invalid>3)
 72202 bash.preinst RET   fcntl 0

And successful in setting FD_CLOEXEC there on the pipe descriptors 0x4
and 0x5.

If this problem can still be reproduced, a ktrace[1] may be helpful, and
maybe the output from /proc/mounts and of course "ls -al /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).


Steven Chamberlain

Reply to: