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

Bug#816742: libc6: sem_post/sem_wait not working for 32bit to 64bit inter-process communication



Package: libc6
Version: 2.21
Severity: critical
Justification: breaks unrelated software

Inter-process communication between a 64bit and a 32bit process is not working. At least pthread named semaphores are not working.
A sem_wait is not awaken if a corresponding sem_post is done on the other side, which generated a dead lock.

This problem only exists if a 64bit process communicates with a 32bit process but not for 32bit to 32bit communication or 64bit to 64bit communication.
Moreover Debian 8.3 and all other tested distributions have no problem with 64bit to 32bit inter-process communication using pthread named semaphores.

The problem seems to be related to the (new) FUTEX_PRIVATE_FLAG flag of futex. The sem_post command (for a named semaphore) seems to make a futex system call using the FUTEX_PRIVATE_FLAG which seems to be wrong.

-- System Information:
Debian Release: stretch/sid
  APT prefers testing
  APT policy: (900, 'testing'), (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.3.0-1-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Init: systemd (via /run/systemd/system)


Reply to: