Project

General

Profile

Actions

Bug #47697

closed

mon: set session_timeout when adding to session_map

Added by Ilya Dryomov over 3 years ago. Updated over 3 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
Correctness/Safety
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
nautilus,octopus
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Component(RADOS):
Monitor
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

With msgr2, the session is added in Monitor::ms_handle_accept() which is queued by ProtocolV2 at the end of handling CLIENT_IDENT frame, before responding with SERVER_IDENT frame. session_timeout is 0 and gets set only in Monitor::ms_dispatch(), so if the session trimming code in Monitor::tick() gets to the session before the peer receives our SERVER_IDENT, handles it, sends the first message and we receive it, the session is wrongly closed.

This doesn't happen with msgr1, because there the session is added in Monitor::ms_dispatch(), upon receive of the first message (MSG_AUTH).


Related issues 2 (0 open2 closed)

Copied to RADOS - Backport #47747: octopus: mon: set session_timeout when adding to session_mapResolvedWei-Chung ChengActions
Copied to RADOS - Backport #47748: nautilus: mon: set session_timeout when adding to session_mapResolvedWei-Chung ChengActions
Actions

Also available in: Atom PDF