Hello, since a couple of days I am experiencing a problem when I am restarting prosody: prosody basically stops working, because it cannot open the ports it needs.
>From the log: Feb 19 10:09:59 example.com:http warn Not listening on any ports, 'altconnect' will be unreachable Feb 19 10:09:59 example.com:http warn Not listening on any ports, 'websocket' will be unreachable Feb 19 10:09:59 example.com:http warn Not listening on any ports, 'bosh' will be unreachable Netstat says that a bash script is listening on the 5222 port O_o netstat -avpntu | grep 5222 tcp 0 0 0.0.0.0:5222 0.0.0.0:* LISTEN 17137/bash tcp 161 0 127.0.0.1:5222 127.0.0.1:38753 CLOSE_WAIT - tcp 161 0 127.0.0.1:5222 127.0.0.1:38765 CLOSE_WAIT - tcp 161 0 127.0.0.1:5222 127.0.0.1:38785 CLOSE_WAIT - tcp 161 0 127.0.0.1:5222 127.0.0.1:38782 CLOSE_WAIT - Querying ps gives me this: prosody 17137 0.0 0.0 12428 1448 pts/7 Ss+ Feb18 0:00 /bin/bash /opt/prosody_auth_provider.sh prosody 17139 0.0 0.0 12428 1448 pts/8 Ss+ Feb18 0:00 /bin/bash /opt/prosody_auth_provider.sh prosody 17141 0.0 0.0 12428 1448 pts/9 Ss+ Feb18 0:00 /bin/bash /opt/prosody_auth_provider.sh prosody 17143 0.0 0.0 12428 1448 pts/10 Ss+ Feb18 0:00 /bin/bash /opt/prosody_auth_provider.sh prosody 17151 0.0 0.0 12428 1448 pts/11 Ss+ Feb18 0:00 /bin/bash /opt/prosody_auth_provider.sh prosody 17154 0.0 0.0 12428 1444 pts/12 Ss+ Feb18 0:00 /bin/bash /opt/prosody_auth_provider.sh prosody 17157 0.0 0.0 12428 1448 pts/13 Ss+ Feb18 0:00 /bin/bash /opt/prosody_auth_provider.sh prosody 17159 0.0 0.0 12428 1444 pts/14 Ss+ Feb18 0:00 /bin/bash /opt/prosody_auth_provider.sh prosody 17164 0.0 0.0 12428 1448 pts/15 Ss+ Feb18 0:00 /bin/bash /opt/prosody_auth_provider.sh prosody 17168 0.0 0.0 12428 1448 pts/16 Ss+ Feb18 0:00 /bin/bash /opt/prosody_auth_provider.sh Apparently after restarting the prosody daemon, the lua process is killed, but the external authentication scripts remain alive, thus blocking the ports used by prosody before being stopped. I am using mod_auth_external.html (https://modules.prosody.im/mod_auth_external.html) for a virtual host. I am also using libevent. VirtualHost "example.com" authentication = "external" external_auth_command ="/opt/prosody_auth_provider.sh" external_auth_protocol = "generic" external_auth_processes = 10 The prosody_auth_provider.sh script is basically the same example file for the module: https://hg.prosody.im/prosody-modules/file/50c188cf0ae3/mod_auth_external/examples/bash/prosody-auth-example.sh So when prosody starts the first time it spawns 10 external auth processes. But prosody or the operating system does not kill this child processes before stopping prosody. Thus when the prosody process is killed (SIGTERM) the ports are inherited to the external auth scripts (O_o ?), meaning that when a new prosody process starts it cannot bind to the ports anymore. Killing the external auth processes and restarting prosody does solve the problem. Any ideas? Kind regards Rainer Schuth -- You received this message because you are subscribed to the Google Groups "prosody-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/prosody-dev. For more options, visit https://groups.google.com/d/optout.
