[devel] [python] sem_open in multiprocessing.queues.Queue
Vitaly Kuznetsov
vitty на altlinux.ru
Чт Апр 19 13:24:14 MSK 2012
On Thu, 19 Apr 2012 15:04:57 +0600, Ildar Mulyukov wrote:
> On 19.04.2012 15:01:32, Vitaly Kuznetsov wrote:
>> On Thu, 19 Apr 2012 12:32:05 +0600, Ildar Mulyukov wrote:
>>> Оба наших питона выдают следующее:
>>> $ python3 -c 'from multiprocessing.queues import Queue;'
>>> Traceback (most recent call last):
>>> File "/usr/lib64/python3.2/multiprocessing/synchronize.py", line
>>> 54,
>>> in <module>
>>> from _multiprocessing import SemLock
>>> ImportError: cannot import name SemLock
>>>
>>> During handling of the above exception, another exception occurred:
>>>
>>> Traceback (most recent call last):
>>> File "<string>", line 1, in <module>
>>> File "/usr/lib64/python3.2/multiprocessing/queues.py", line 48,
>>> in
>>> <module>
>>> from multiprocessing.synchronize import Lock,
>>> BoundedSemaphore,
>>> Semaphore, Condition
>>> File "/usr/lib64/python3.2/multiprocessing/synchronize.py", line
>>> 59,
>>> in <module>
>>> " function, see issue 3770.")
>>> ImportError: This platform lacks a functioning sem_open
>>> implementation,
>>> therefore, the required synchronization primitives needed will not
>>> function, see issue 3770.
>>
>> Это баг, при сборке в нашей сборочнице не проходит тест sem_open:
>>
>> к примеру,
>>
>> http://git.altlinux.org/tasks/archive/done/_67/69340/build/100/x86_64/log:
>> checking whether POSIX semaphores are enabled... no
>> checking for broken sem_getvalue... yes
>>
>> сейчас попробую посмотреть как объехать.
>
> Этот баг воспроизводится на полноценной машине. Даже в сборочницу не
> надо залезать.
При сборке питон проверяет, работает ли sem_open. В хешере sem_open()
обламывается (ему нужен /dev/shm) и поэтому в собранном питоне отключена
соответствующая поддержка. Я сейчас уберу соответствующие проверки и
соберу рабочие питоны в Сизиф.
Подробная информация о списке рассылки Devel