What to do when NoMachine services are terminated with signal 13 SIGPIPE on Debian or Ubuntu OS
In some cases NoMachine services (nxd and others) are terminated with signal 13 SIGPIPE as soon as nxserver launches them.
This happens on Ubuntu and Debian and in general on all Debian-based systems and may be a symptom of a problem affecting libnss-ldap, a library used for LDAP authentication.
Our developers have already sent a bug report to Debian and Ubuntu in the hope that changes will be included in their upstream:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=748341 (fixed by libnss-ldap 264-2.2ubuntu4.14.04.2)
https://bugs.launchpad.net/ubuntu/+source/libnss-ldap/+bug/1397250
A technical description of the problem
If a process calls fork() and SIGPIPE was blocked, the atfork() handler in the child process failed to catch the SIGPIPE during the call to do_close_no_unbind(). So that, the SIGPIPE will be eventually delivered when the child unblocks signals (and usually this makes child process die).
Possible solutions
Only for Ubuntu 14.04:
Upgrade libnss-ldap to version 264-2.2ubuntu4.14.04.2.
For other systems:
As a workaround, if LDAP authentication is not needed, removing LDAP entries from /etc/nsswitch.conf will makes the NoMachine services to start properly.
In alternative, it is possible to modify the source code of libnss-ldap library by applying the fix provided in the bug tracking reports above and rebuild the library on the system.
