Bug 495655 - cluster does not free up sessions on failover
cluster does not free up sessions on failover
Status: CLOSED UPSTREAM
Product: Red Hat Enterprise MRG
Classification: Red Hat
Component: qpid-cpp (Show other bugs)
Development
All Linux
urgent Severity urgent
: 1.1.1
: ---
Assigned To: messaging-bugs
MRG Quality Engineering
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2009-04-14 05:31 EDT by Gordon Sim
Modified: 2011-06-29 10:16 EDT (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2011-06-29 10:16:27 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
test case (1.51 KB, text/x-c++src)
2009-04-14 05:31 EDT, Gordon Sim
no flags Details

  None (edit)
Description Gordon Sim 2009-04-14 05:31:03 EDT
Created attachment 339448 [details]
test case

Description of problem:

If you use a session with an application specified name, then on failover to another cluster node try to open a new session with the same name, you get a SessionBusyException. 

Even retrying after a short wait seems not to avoid this.

How reproducible:

100%

Steps to Reproduce:
1. start cluster with more than one node
2. have client that creates a session with a given name (and 0 timeout, which is default) and e.g. waits for a message 
3. kill the node the client is connected to
4. have client failover to other node and create a new session with the same name as that used previously (which should have been destroyed)

The attached case provides such a client. You should be able to run that against  a cluster (with a queue called test-queue created), then kill the node connected to.
  
Actual results:

Get a SessionBusyException as often as you try.

Expected results:

New session created with same name as that used previously, which should now have been destroyed.

Additional info:

If the session declares an exclusive (but not auto-deleted) queue, then it appears that lock on that queue is released as would be expected. However the name of the session is still marked as busy.
Comment 1 Alan Conway 2009-04-14 10:20:25 EDT
This was a regression. Fixed in r764783
Comment 2 Justin Ross 2011-06-28 15:30:38 EDT
Does this have test coverage?
Comment 3 Alan Conway 2011-06-29 09:27:25 EDT
No automated tests were added by r764783. I'll add one now.
Comment 4 Alan Conway 2011-06-29 10:11:22 EDT
Comment 3 is incorrect, there IS an automated regression test added by r764783:
 qpid/cpp/src/tests/ClusterFailover.cpp
Comment 5 Justin Ross 2011-06-29 10:16:27 EDT
Excellent, thanks!  Closing.

Note You need to log in before you can comment on or make changes to this bug.