[Bug 974584] Re: Semaphores cannot be created in lxc container
Serge Hallyn
974584 at bugs.launchpad.net
Wed May 30 14:50:32 UTC 2012
>From the debian bug, here is my new suggestion for a replacement for the
ischroot case in initscripts.postinst:
=============================
if ischroot; then
# Symlink /var/run from /run
# Note var/run is relative
if compat_link /var/run /run; then
# Symlink /var/lock from /run/lock
# Note that it's really /var/run/lock
compat_link /var/lock /run/lock
# Symlink /dev/shm from /run/shm
# Note that it's really /var/run/shm
[ ! -d /run/shm ] && mkdir /run/shm
if [ ! mountpoint -q /dev ]; then
[ ! -d /dev/shm ] && compat_link /run/shm /dev/shm
else
compat_link /dev/shm /run/shm
fi
fi
# Host system, not a chroot.
else
=============================
So if the chroot has /dev/ bind-mounted from the host, assume they
always will, and will want /run/shm as a symlink to /dev/shm.
Otherwise if /dev/shm exists, leave it alone, because we're definately
not in debootstrap.
Otherwise, assume /dev and /run won't get cleaned up at 'shutdown'
(chroot exit) so set up *exactly* what we want to see as the end
result: /dev/shm as a symbolic link to /run/shm.
--
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