mirror of
https://github.com/zulip/zulip.git
synced 2025-11-22 07:21:23 +00:00
socket: Add some server-side logging for bug catching
(imported from commit 8579d8bbb414b063ae9cf36993975adaa86cb132)
This commit is contained in:
@@ -21,6 +21,8 @@ from zerver.lib.event_queue import get_client_descriptor
|
|||||||
from zerver.middleware import record_request_start_data, record_request_stop_data, \
|
from zerver.middleware import record_request_start_data, record_request_stop_data, \
|
||||||
record_request_restart_data, write_log_line, format_timedelta
|
record_request_restart_data, write_log_line, format_timedelta
|
||||||
|
|
||||||
|
logger = logging.getLogger('zulip.socket')
|
||||||
|
|
||||||
djsession_engine = import_module(settings.SESSION_ENGINE)
|
djsession_engine = import_module(settings.SESSION_ENGINE)
|
||||||
def get_user_profile(session_id):
|
def get_user_profile(session_id):
|
||||||
if session_id is None:
|
if session_id is None:
|
||||||
@@ -75,6 +77,8 @@ class SocketConnection(sockjs.tornado.SockJSConnection):
|
|||||||
self.authenticated = False
|
self.authenticated = False
|
||||||
self.session.user_profile = None
|
self.session.user_profile = None
|
||||||
self.close_info = None
|
self.close_info = None
|
||||||
|
self.did_close = False
|
||||||
|
|
||||||
try:
|
try:
|
||||||
self.browser_session_id = info.get_cookie(settings.SESSION_COOKIE_NAME).value
|
self.browser_session_id = info.get_cookie(settings.SESSION_COOKIE_NAME).value
|
||||||
self.csrf_token = info.get_cookie(settings.CSRF_COOKIE_NAME).value
|
self.csrf_token = info.get_cookie(settings.CSRF_COOKIE_NAME).value
|
||||||
@@ -146,6 +150,12 @@ class SocketConnection(sockjs.tornado.SockJSConnection):
|
|||||||
record_request_start_data(log_data)
|
record_request_start_data(log_data)
|
||||||
msg = ujson.loads(msg)
|
msg = ujson.loads(msg)
|
||||||
|
|
||||||
|
if self.did_close:
|
||||||
|
logger.info("Received message on already closed socket! transport=%s user=%s client_id=%s"
|
||||||
|
% (self.session.transport_name,
|
||||||
|
self.session.user_profile.email if self.session.user_profile is not None else 'unknown',
|
||||||
|
self.client_id))
|
||||||
|
|
||||||
self.session.send_message({'req_id': msg['req_id'], 'type': 'ack'})
|
self.session.send_message({'req_id': msg['req_id'], 'type': 'ack'})
|
||||||
|
|
||||||
if msg['type'] == 'auth':
|
if msg['type'] == 'auth':
|
||||||
@@ -210,6 +220,8 @@ class SocketConnection(sockjs.tornado.SockJSConnection):
|
|||||||
remote_ip=self.session.conn_info.ip, email=email,
|
remote_ip=self.session.conn_info.ip, email=email,
|
||||||
client_name='?')
|
client_name='?')
|
||||||
|
|
||||||
|
self.did_close = True
|
||||||
|
|
||||||
def fake_message_sender(event):
|
def fake_message_sender(event):
|
||||||
log_data = dict()
|
log_data = dict()
|
||||||
record_request_start_data(log_data)
|
record_request_start_data(log_data)
|
||||||
@@ -245,8 +257,11 @@ def respond_send_message(data):
|
|||||||
format_timedelta(forward_queue_delay), format_timedelta(return_queue_delay),
|
format_timedelta(forward_queue_delay), format_timedelta(return_queue_delay),
|
||||||
format_timedelta(service_time))
|
format_timedelta(service_time))
|
||||||
|
|
||||||
connection = get_connection(data['server_meta']['client_id'])
|
client_id = data['server_meta']['client_id']
|
||||||
if connection is not None:
|
connection = get_connection(client_id)
|
||||||
|
if connection is None:
|
||||||
|
logger.info("Could not find connection to send response to! client_id=%s" % (client_id,))
|
||||||
|
else:
|
||||||
connection.session.send_message({'req_id': data['req_id'], 'type': 'response',
|
connection.session.send_message({'req_id': data['req_id'], 'type': 'response',
|
||||||
'response': data['response']})
|
'response': data['response']})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user