[Bug 974584] Re: Semaphores cannot be created in lxc container
Steve Langasek
steve.langasek at canonical.com
Tue Jun 26 20:08:13 UTC 2012
I think there are the following possible valid end states that we want
to get to at the end of the postinst:
- we're not in a chroot. /dev/shm is bind mounted to /run/shm, with the reboot script handling the fix-up to make /dev/shm a symlink to /run/shm before next boot.
- we're in a chroot and /dev is not bind mounted. sysvshm should be mounted *somewhere* within the chroot, but we don't know where this will be done and we're not going to do it ourselves. So dictate that this should be /run/shm, and make /dev/shm a symlink there.
- we're in a chroot and /dev is bind mounted, and /dev/shm is a symlink to /run/shm (because the parent environment is also a recent Debian/Ubuntu release). Make the /run/shm directory.
- we're in a chroot, /dev is bind mounted, and /dev/shm is also bind mounted. This is not a good situation to be in, because it means that the future correctness of the chroot is dependent on the setup remaining the same on the host system - which it won't if the host system is an older Debian/Ubuntu release that is later upgraded. But we do the best we can for now, and make /run/shm a symlink to /dev/shm.
- we're in a chroot, /dev/ is bind mounted, and /dev/shm is a non-bind-mounted directory. We can't fix this, so we should just create the /run/shm directory and leave /dev/shm alone.
Does that make sense?
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to sysvinit in Ubuntu.
https://bugs.launchpad.net/bugs/974584
Title:
Semaphores cannot be created in lxc container
Status in Launchpad itself:
Invalid
Status in “lxc” package in Ubuntu:
Fix Released
Status in “sysvinit” package in Ubuntu:
Triaged
Status in “lxc” source package in Precise:
Fix Released
Status in “sysvinit” source package in Precise:
Triaged
Status in “lxc” source package in Quantal:
Fix Released
Status in “sysvinit” source package in Quantal:
Triaged
Status in “sysvinit” package in Debian:
New
Bug description:
>>> from multiprocessing import synchronize
>>> synchronize.Lock()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.6/multiprocessing/synchronize.py", line 117, in __init__
SemLock.__init__(self, SEMAPHORE, 1, 1)
File "/usr/lib/python2.6/multiprocessing/synchronize.py", line 49, in __init__
sl = self._semlock = _multiprocessing.SemLock(kind, value, maxvalue)
OSError: [Errno 38] Function not implemented
Thanks to hallyn, there's a workaround and a fix: adding this line to the container's fstab will fix the problem:
none dev/shm tmpfs defaults 0 0
He is updating the ubuntu template with this change.
Original bug report description was Launchpad related (celery tests
fail on parallel testing instances)
To manage notifications about this bug go to:
https://bugs.launchpad.net/launchpad/+bug/974584/+subscriptions
More information about the foundations-bugs
mailing list