From 76a903119cba99f296860ac6da0a1ca174a40a70 Mon Sep 17 00:00:00 2001 From: Griatch Date: Tue, 13 Sep 2016 23:10:51 +0200 Subject: [PATCH] Clean up log file output and fix some bugs. Swallows spammy and useless AMP connection errors. --- evennia/commands/default/system.py | 2 +- evennia/server/amp.py | 14 +++++++++++++- evennia/server/portal/portalsessionhandler.py | 2 +- evennia/server/sessionhandler.py | 4 ++-- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/evennia/commands/default/system.py b/evennia/commands/default/system.py index e3c248be93..594c615f5a 100644 --- a/evennia/commands/default/system.py +++ b/evennia/commands/default/system.py @@ -118,8 +118,8 @@ class CmdShutdown(COMMAND_DEFAULT_CLASS): announcement += "%s\n" % self.args logger.log_info('Server shutdown by %s.' % self.caller.name) SESSIONS.announce_all(announcement) - SESSIONS.portal_shutdown() SESSIONS.server.shutdown(mode='shutdown') + SESSIONS.portal_shutdown() class CmdPy(COMMAND_DEFAULT_CLASS): diff --git a/evennia/server/amp.py b/evennia/server/amp.py index a6d45e26af..3159b7e871 100644 --- a/evennia/server/amp.py +++ b/evennia/server/amp.py @@ -188,7 +188,6 @@ class AmpClientFactory(protocol.ReconnectingClientFactory): reason (str): Eventual text describing why connection failed. """ - print ("portal retrying connection"), self.maxDelay if hasattr(self, "server_restart_mode"): self.maxDelay = 2 else: @@ -372,6 +371,19 @@ class AMPProtocol(amp.AMP): if hasattr(self.factory, "server_restart_mode"): del self.factory.server_restart_mode + def connectionLost(self, reason): + """ + We swallow connection errors here. The reason is that during a + normal reload/shutdown there will almost always be cases where + either the portal or server shuts down before a message has + returned its (empty) return, triggering a connectionLost error + that is irrelevant. If a true connection error happens, the + portal will continuously try to reconnect, showing the problem + that way. + """ + pass + + # Error handling def errback(self, e, info): diff --git a/evennia/server/portal/portalsessionhandler.py b/evennia/server/portal/portalsessionhandler.py index bdd353d8a8..c987f45d07 100644 --- a/evennia/server/portal/portalsessionhandler.py +++ b/evennia/server/portal/portalsessionhandler.py @@ -188,7 +188,7 @@ class PortalSessionHandler(SessionHandler): # sessions while we are looping over them. sessionhandler._disconnect_all = True for session in sessionhandler.values(): - session.disconnect(session) + session.disconnect() del sessionhandler._disconnect_all # inform Server; wait until finished sending before we continue diff --git a/evennia/server/sessionhandler.py b/evennia/server/sessionhandler.py index 0f17b6d359..0e76aa3213 100644 --- a/evennia/server/sessionhandler.py +++ b/evennia/server/sessionhandler.py @@ -657,8 +657,8 @@ class ServerSessionHandler(SessionHandler): message (str): Message to send. """ - for sess in self.values(): - self.data_out(sess, text=message) + for session in self.values(): + self.data_out(session, text=message) def data_out(self, session, **kwargs): """