Open mheppner opened 7 years ago
Found the problem. In Alpine, semaphores don't get prefixed with sem.
, so the path is being overwritten in the constructor when it creates the shared memory. Maybe this is a difference between musl and glibc?
Can something maybe be added to further distinguish the two? Even though it's redundant on glibc-based Linux version, maybe just append '-semaphore' to the end of the path?
Shared memory stuff is so underspecified I'm sure it's just a difference. Fix shouldn't be too hard, but it might have to wait a bit until I get to rewriting the channel layers to be async.
Using Alpine Linux 3.6, semaphores don't seem to be getting created in
/dev/shm
:Using the same versions listed below on Debian Jessie, the semaphores and shared memory appear in
/dev/shm
:I'm not sure if it's related to the missing semaphore, but the generated value ends up being
None
. In Debian, I can at least see the value as{}
.Once daphne or a second worker are started, then the value can't be unpickled and results in the stack trace below.
On Alpine:
On Debian:
Both:
From Alpine: