Problem
When you attempt to load the HTTP task on any Lotus® Domino® server partition on Linux®, the following error occurs:
"Error: bindsock' helper application is missing, not executable, not setuid root, or no sticky bit set
HTTP Server: Error - Unable to Bind example.com, port 80, port may be in use
HTTP Server: Shutdown"
You verify that bindsock shows the correct ownership and permissions, as follows:
-r-sr-xr-x 1 root bin 19394 Sep 27 2006 /opt/lotus/notes/latest/linux/bindsock |
Cause
For one known case, the error message is misleading. Bindsock is present and has the proper ownership and permissions. The error occurs because it is unable to bind to the IP address specified.
For this case, the problem occurred after the administrator installed a network appliance. Part of the setup for this appliance changed the DNS to point all affected traffic to the appliance's IP address. Thus, in the DNS, the fully qualified domain name (FQDN) for the Domino server was directed to the appliance's IP address.
In addition, the "Bind to hostname" field in the Server document was set to enabled. Therefore, the HTTP task attempts to resolve the FQDN by using the local host file. In this case, the local host had no entry for the Domino server, so HTTP attempted to resolve the name by using the DNS server. The DNS server was changed by the network appliance so that the Domino server's name resolved to the appliance's IP address. Thus, HTTP failed and could not bind to that IP address.
Diagnosing the problem
To diagnose this problem, check that the machine has only one NIC and one IP Address defined.
Next, confirm that the nsswitch.conf 'host' entry lists files first, as follows:
This list defines that the operating system resolves FQDN by using the local host file first rather than by DNS.
Next check the "Bind to hostname" field in the Server document. If it is enabled, make sure it contains the FQDN value.
Note whether the local host file (/etc/hosts) does or does not have a FQDN and IP address entry for the local server.
Resolving the problem
To resolve the issue, disable the "Bind to hostname" field in the Server document and restart the HTTP task. With "Bind to hostname" disabled, HTTP binds to the first available port 80. In this case there was one NIC and one defined IP address, thus only port 80 for the server to bind to.
Another solution is to add the local host's FQDN and IP address to the host file.