The reason for the too-many-open-files appears to be that
sockets are leaked when client connections fail due to SSL
errors.
The particular SSL error in my case seemed to be due to the
server certificate having expired. Barrier seems to automagically
create SSL certs that are valid for one year.
I have been starting the Barrier server from my .config/openbox/autostart :
barriers -c /home/phil/.synergy.conf --enable-crypto
It appears that that doesn't do anything about expired SSL
certs. On the other hand, if I start the barrier GUI:
$ barrier --no-tray
then something does seem to create a certificate - at least,
it did when I removed the expired cert; I'm not sure if it
actually checks the expiry date. (Looking at the source the
only attempt to generate certs is in the GUI code, but I'm
not sure if that is run on expiry or only if no cert exists.)
In summary there are three issues here:
1. Misleading error reporting on server when too-many-open-files
prevents the SSL certificate file from being read.
2. Server socket leak when SSL error (certificate expired?) causes
client connection to fail.
3. Server SSL certificate expiry does not seem to be handled when
barriers is invoked directly, rather than the barrier GUI; it does
not attempt to generate new certificates, nor does it report any
useful error about expired certs to syslog when client connections
fail. (Nor do clients when they receive expired certs.)
Thanks, Phil.