hi,
I'm playing since 2 days to startup right a clean zimbra installation. It is working with emails, but zmconfigd is not working, it fails to start up and try to start in a minute loop.
this is the log:
(version: Release 7.1.1_GA_3196.UBUNTU10_64 UBUNTU10_64 FOSS edition.)
=========================
zmconfigd WARNING [28235-rewrites] Rewrote: /opt/zimbra/conf/salocal.cf with mode 440 (0.03 sec)
zmconfigd WARNING [28235-MainThread] All rewrite threads completed in 2.70 sec
zmconfigd WARNING [28235-MainThread] All restarts completed in 0.00 sec
zmconfigd CRITICAL [28235-MainThread] Error creating listener socket on port 7171: (98, 'Address already in use')
zmconfigd ERROR [28235-MainThread] Service unavailable ((111, 'Connection refused'))
zmconfigd CRITICAL [28235-MainThread] Can't create listener socket: (98, 'Address already in use')
zmconfigd CRITICAL [28235-MainThread] zmconfigd: shutting down
Failed to start
=========================
Normally the error "Address already in use" comes because the port is locked for a short time, i tried different ports and checked double with netstats -anp , but the port should have been free, i didn't find it open. allow_reuse_address should also be some kind of workaround for this.
on /opt/zimbra/libexec/zmconfigd:104 zimbra want to build the server with the socket:
=========================
def requestListener():
listener_params = ("localhost",int(state.State.mState.localconfig["zmmtaconfig_listen_port"]))
try:
server = listener.ThreadedStreamServer(listener_params, listener.ThreadedRequestHandler)
except socket.error, e:
Log.logMsg (1, "Error creating listener socket on port %s: %s" % (state.State.mState.localconfig["zmmtaconfig_listen_port"],str(e)))
if contactService("STATUS"):
Log.logMsg (0, "Can't create listener socket: %s" % str(e))
else:
Log.logMsg (0, "zmconfigd service already running, exiting")
=========================
The Server itself is contained in:
on /opt/zimbra/zimbramon/pylibs/listener.py
=========================
class ThreadedStreamServer(SocketServer.ThreadingMixIn, SocketServer.TCPServer):
allow_reuse_address = True
def shutdown(self):
Log.logMsg(5, "Removing socket %s" % self.server_address)
=========================
I tried to run the build a testing file to test listener.py, and there it didn't made the error ( I run it under the user zimbra):
test.py
=========================
import socket
import SocketServer
class ThreadedRequestHandler(SocketServer.BaseRequestHan dler):
def handle(self):
pass
class ThreadedStreamServer(SocketServer.ThreadingMixIn, SocketServer.TCPServer):
allow_reuse_address = True
if __name__ == "__main__":
# Port 0 means to select an arbitrary unused port
try:
listener_params = ("localhost",7171)
server = ThreadedStreamServer(listener_params, ThreadedRequestHandler)
except socket.error, e:
print "Error creating listener socket on port 7171: %s" % str(e)
if contactService("STATUS"):
print "Can't create listener socket: %s" % str(e)
else:
print "zmconfigd service already running, exiting"
#HOST, PORT = "localhost", 0
#server = ThreadedTCPServer((HOST, PORT), ThreadedTCPRequestHandler)
ip, port = server.server_address
server.shutdown()
=========================
Has someone an idea where I stuck? How to debug it?
I'm grateful for any help!
thank you,
gunther
(the issues was discussed here:
zmconfigd stopped - how to proceed?
, with a backup it started to work again)