It looks like the LD_PRELOAD story that lead me here (TR02W11273) has taken a turn for the worse, at least on my machine anyway. PulseAudio fails to start on my machine because it is looking for symbols that are missing from the shared object pointed to by the LD_PRELOAD environment variable. I’ve seen how this environment variable can be used for overriding certain system libraries, which can be neat and useful, but I’m really starting to think this is an anti-pattern that needs to go the way of the Dodo.
journalctl --user -u pulseaudio
...
Nov 13 13:18:06 RedactedPuterName systemd[5575]: Starting Sound Service...
Nov 13 13:18:06 Obsidian pulseaudio[2580407]: /usr/bin/pulseaudio: symbol lookup error: /usr/NX/lib/libnxegl.so: undefined symbol: gbm_bo_get_handle
Nov 13 13:18:06 RedactedPuterName systemd[5575]: pulseaudio.service: Main process exited, code=exited, status=127/n/a
Nov 13 13:18:06 RedactedPuterName systemd[5575]: pulseaudio.service: Failed with result 'exit-code'.
Nov 13 13:18:06 RedactedPuterName systemd[5575]: Failed to start Sound Service.
I believe this problem began after I recently updated NoMachine, which according to the /usr/NX/var/log/nxserver.log was November 5th. And I also see from the logs you’re using Redis under the hood? that’s an interesting architectural decision for a single node deployment, I digress.
Since I don’t want to logout or reboot, an immediate work-around is to just delete or rename /usr/NX/lib/libnxegl.so to something else. Then I get the following, which is bearable for the time being:
ERROR: ld.so: object '/usr/NX/lib/libnxegl.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
I’ve also disabled EGL capture as the knowledge base article suggests (sudo /usr/NX/bin/nxserver --eglcapture no), but that requires rebooting or logging out to test.