I have compiled PA 9.0 from sources on ubuntu 16.04. I use only required dependencies. asyncmsgq.c: Assertion 'a->asyncq = pa_asyncq_new(size)' failed at pulsecore/asyncmsgq.c:66, function pa_asyncmsgq_new(). Aborting. I use it as a regular user with the following config: #!/usr/bin/pulseaudio -nF .fail load-module module-native-protocol-unix auth-group=app auth-cookie-enabled=false srbchannel=true ### Automatically move streams to the default sink if the sink they are ### connected to dies, similar for sources load-module module-rescue-streams ### Make sure we always have a sink around, even if it is a null sink. load-module module-always-sink sink_name=null ### Honour intended role device property load-module module-intended-roles ### Make some devices default set-default-sink null set-default-source null.monitor I spawn it using systemd: [Unit] Description=App PulseAudio [Service] User=app Group=app WorkingDirectory=/home/app ExecStart=/opt/myapp-1.0/bin/pulseaudio --high-priority=1 --realtime=1 --disallow-exit=1 --exit-idle-time=-1 --log-target=syslog --no-cpu-limit -F /etc/pulse/app.pa -n Environment="LD_LIBRARY_PATH=/opt/myapp-1.0/lib" OOMScoreAdjust=-100 KillMode=process Restart=always RestartSec=5s TimeoutSec=30s LimitMEMLOCK=134217728 LimitNICE=31 LimitRTPRIO=-99 LimitNOFILE=64000 LimitNPROC=64000 LimitCPU=infinity IOSchedulingClass=realtime IOSchedulingPriority=1 [Install] WantedBy=multi-user.target Alias=myapp-pulseaudio.service It happens quite frequently, every a few minutes. There are loads of free memory and other resources on the server.
PA 8.0 does the same.
I have found out that once this happens, the code flow is the following: * pa_asyncmsgq_new calls * pa_asyncq_new here it fails on !(l->write_fdsem = pa_fdsem_new()) * pa_fdsem_new here it fails on pa_pipe_cloexec(f->fds) < 0 * pa_pipe_cloexec HAVE_PIPE2 is set if ((r = pipe2(pipefd, O_CLOEXEC)) >= 0) { pa_log("(r = pipe2(pipefd, O_CLOEXEC)) >= 0"); goto finish; } has to return < 0 because it does not jump into finish but then if (errno != EINVAL && errno != ENOSYS) matches, so it returns r, which is < 0.
Created attachment 124795 [details] [review] Log error if we hit file desciptors limit
It seems that I just hit FD limit, but well, message is less than explanatory now, so I added some logging.
Crasher, marking as a 10.0 blocker.
Thanks for the logging patch. I applied it now. I'll try to come up with a fix for the crash.
Here's a patch that will hopefully fix the crash: https://patchwork.freedesktop.org/patch/110227/
I committed the patch now.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.