Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 514563

Summary: "Unexpected command continuation frame" error on replication link
Product: Red Hat Enterprise MRG Reporter: Gordon Sim <gsim>
Component: qpid-cppAssignee: Carl Trieloff <cctrieloff>
Status: CLOSED ERRATA QA Contact: Jiri Kolar <jkolar>
Severity: medium Docs Contact:
Priority: urgent    
Version: 1.1.2CC: fhirtz, freznice, iboverma, jkolar, lbrindle, mcressma, tao
Target Milestone: 1.2   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Messaging bug fix C: Some recovered flow-to-disk messages on replicated queues could cause an invalid frame sequence to be sent over the bridge that is transferring replication events. C: "Unexpected command continuation frame" error on replication link F: The frame sequencing order was corrected R: link conveys replication events as normal and the state of the queue on the backup matches that of the source Some recovered flow-to-disk messages on replicated queues could cause an invalid frame sequence to be sent over the bridge that is transferring replication events. This caused an "Unexpected command continuation frame" error on the replication link. The frame sequencing order was corrected and the link now conveys replication events as normal.
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-12-03 09:16:55 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 527551    

Description Gordon Sim 2009-07-29 16:39:19 UTC
Description of problem:

Recovered, flow to disk messages on replicated queues with zero max-size cause an invalid frame sequence to be sent over the bridge that is transfering replication events.

Version-Release number of selected component (if applicable):

qpidd-0.5.752581-26.el5
rhm-0.5.3206-9.el5

How reproducible:

100%

Steps to Reproduce:
1. start broker enabled as replication source with a zero default queue size
   
    e.g. /usr/sbin/qpidd  --auth no --create-replication-queue --replication-queue  replication --default-queue-limit 0

2. create a durable queue on this broker with a non-zero count limit and flow-to-disk as the limit policy

    e.g. qpid-config add queue test-queue --durable --max-queue-count 5 --generate-queue-events 2
    
3. send more durable messages to that queue than the configured count limit

    e.g. for i in `seq 1 10`; do echo msg$i; done | sender --send-eos 1 --durable true

4. restart the source broker (using same options as specified in 1.)

5. start a backup broker (e.g. I started on same box with port 5673)

6. create a queue of the same name on the backup broker

    e.g. qpid-config -a localhost:5673 add queue test-queue

7. create a replication exchange on the backup broker

    e.g. qpid-config -a localhost:5673 add exchange replication replication

8. bridge between the replication queue on source and the replication exchange on backup

    e.g. qpid-route queue add localhost:5673 localhost:5672 replication replication
  
Actual results:

Source broker reports:

2009-jul-29 12:34:18 error Connection 127.0.0.1:47496 closed by error: Unexpected command continuation frame. (qpid/SessionState.cpp:75)(501)
2009-jul-29 12:34:22 error Channel exception: session-busy: Session already attached: guest (qpid/broker/SessionManager.cpp:55)
2009-jul-29 12:34:22 error Channel exception: not-attached: Channel 1 is not attached (qpid/amqp_0_10/SessionHandler.cpp:40)


Expected results:

No errors, link conveys replication events as normal and the state of the queue on the backup matches that of the source (albeit with a short lag).

Additional info:

Comment 1 Carl Trieloff 2009-09-23 20:35:44 UTC
fixed 817742..

needs backport

Comment 2 Carl Trieloff 2009-09-23 20:38:08 UTC
fixed svn 818244 and requires 817742

Comment 4 Jiri Kolar 2009-10-26 17:41:16 UTC
The issue has been fixed in -30, but in described reproducer you have to add  following to get this work on -30 and newer:

 "--async-queue-events false" for every broker command
 "--limit-policy flow-to-disk" for every queue adding

validated on RHEL 5.4 / 4.8 i386 / x86_64 on
packages:

[root@mrg-qe-02 bz505274]# rpm -qa | egrep '(qpid|rhm)' | sort

python-qpid-0.5.760500-6.el4
qpidc-0.5.752581-30.el4
qpidc-debuginfo-0.5.752581-28.el4
qpidc-devel-0.5.752581-30.el4
qpidc-ssl-0.5.752581-30.el4
qpidd-0.5.752581-30.el4
qpidd-acl-0.5.752581-30.el4
qpidd-devel-0.5.752581-30.el4
qpid-dotnet-0.4.738274-2.el4
qpidd-ssl-0.5.752581-30.el4
qpidd-xml-0.5.752581-30.el4
qpid-java-client-0.5.751061-9.el4
qpid-java-common-0.5.751061-9.el4
rhm-0.5.3206-17.el4
rhm-docs-0.5.756148-1.el4
rh-tests-distribution-MRG-Messaging-qpid_common-1.5-15


-> VERIFIED

Comment 5 Irina Boverman 2009-10-28 17:35:51 UTC
Release note added. If any revisions are required, please set the 
"requires_release_notes" flag to "?" and edit the "Release Notes" field accordingly.
All revisions will be proofread by the Engineering Content Services team.

New Contents:
Corrected an invalid frame sequence when sending recovered, flow to disk messages on replicated queues with zero max-size, over the replicating
bridge (514563)

Comment 6 Lana Brindley 2009-11-20 02:11:32 UTC
Release note updated. If any revisions are required, please set the 
"requires_release_notes"  flag to "?" and edit the "Release Notes" field accordingly.
All revisions will be proofread by the Engineering Content Services team.

Diffed Contents:
@@ -1,2 +1,8 @@
-Corrected an invalid frame sequence when sending recovered, flow to disk messages on replicated queues with zero max-size, over the replicating
+Messaging bug fix
-bridge (514563)+
+C: Some recovered flow-to-disk messages on replicated queues could cause an invalid frame sequence to be sent over the bridge that is transferring replication events.
+C: "Unexpected command continuation frame" error on replication link
+F: 
+R: link conveys replication events as normal and the state of the queue on the backup matches that of the source
+
+MORE INFORMATION REQUIRED FOR RELNOTE

Comment 7 Lana Brindley 2009-11-20 02:24:30 UTC
Release note updated. If any revisions are required, please set the 
"requires_release_notes"  flag to "?" and edit the "Release Notes" field accordingly.
All revisions will be proofread by the Engineering Content Services team.

Diffed Contents:
@@ -2,7 +2,8 @@
 
 C: Some recovered flow-to-disk messages on replicated queues could cause an invalid frame sequence to be sent over the bridge that is transferring replication events.
 C: "Unexpected command continuation frame" error on replication link
-F: 
+F: The frame sequencing order was corrected
 R: link conveys replication events as normal and the state of the queue on the backup matches that of the source
 
-MORE INFORMATION REQUIRED FOR RELNOTE+
+Some recovered flow-to-disk messages on replicated queues could cause an invalid frame sequence to be sent over the bridge that is transferring replication events. This caused an "Unexpected command continuation frame" error on the replication link. The frame sequencing order was corrected and the link now conveys replication events as normal.

Comment 9 errata-xmlrpc 2009-12-03 09:16:55 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHEA-2009-1633.html