Branch: refs/heads/stable
  Home:   https://github.com/mailru/tarantool
  Commit: 729927d2231dc325a0a823b8184721427bd9812f
      
https://github.com/mailru/tarantool/commit/729927d2231dc325a0a823b8184721427bd9812f
  Author: Konstantin Osipov <[email protected]>
  Date:   2013-03-27 (Wed, 27 Mar 2013)

  Changed paths:
    M src/iproto.m

  Log Message:
  -----------
  Fix a bug with session id in on_disconnect() trigger.

https://bugs.launchpad.net/tarantool/+bug/1160789

When multiple sessions get disconnected at the same
time, the same fiber is running all disconnect triggers.
This fiber's sid was  not changed between trigger invocations,
and on_disconnect() triggrer of the next disconnected
session would see not its own session id in box.session.id(),
but the previous session's session id.

The fix is to correctly set box.session.id() before handling
any iproto request.
In on_connect() request, sid is 0, but soon it is
reset in session_create().

No test case since the bug requires that there is a full
libev queue, so that multiple on_disconnect() triggers
fire in the same loop.



_______________________________________________
Mailing list: https://launchpad.net/~tarantool-developers
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~tarantool-developers
More help   : https://help.launchpad.net/ListHelp

Reply via email to