Bug 1040526

Summary: qpid.sequence_counter argument set to 0 after restart
Product: Red Hat Enterprise MRG Reporter: Zdenek Kraus <zkraus>
Component: qpid-cppAssignee: messaging-bugs <messaging-bugs>
Status: NEW --- QA Contact: Messaging QE <messaging-qe-bugs>
Severity: low Docs Contact:
Priority: low    
Version: 3.0CC: jross
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Zdenek Kraus 2013-12-11 15:08:46 UTC
Description of problem:
an exchange argument 'qpid.sequence_counter' is set to '0' after broker restart.

//Documentation CITE:
qpid.msg_sequence (bool)
If set to “true”, the exchange inserts a sequence number named “qpid.msg_sequence” into the message headers of each message. The type of this sequence number is int64. The sequence number for the first message routed from the exchange is 1, it is incremented sequentially for each subsequent message. The sequence number is reset to 1 when the qpid broker is restarted.
qpid.sequence_counter (int64)
Start qpid.msg_sequence counting at the given number.
// END CITE

It could be implemented correctly since 
  "The sequence number is reset to 1 when the qpid broker is restarted."
but then Documentation has to note this beahviour also to latter argument.

or it's a implementation bug, and argument should stay as previously declared. IMO the arguments should stay as defined

Version-Release number of selected component (if applicable):
qpid-cpp-*-0.22-29 (legacystore, linearstore)
qpid-cpp-*-0.18-18

How reproducible:
100%

Steps to Reproduce:
1. create exchange with 'qpid.msg_sequence:True' & 'qpid.sequence_counter:10
./qc2_drain "xx;{create:always, node:{type:topic, x-declare:{arguments:{'qpid.msg_sequence':True, 'qpid.sequence_counter':10}}, durable:true}}"

2. check the QMF
./qmf2_list_objects --query-data exchange/xx | ipython
  ## see additional info for results
3. restart broker
4. check the QMF
./qmf2_list_objects --query-data exchange/xx | ipython
  ## see additional info for results

Actual results:
[2]
{'_create_ts': 1386773891936297051,
 '_delete_ts': 0,
 '_object_id': {'_object_name': 'org.apache.qpid.broker:exchange:xx'},
 '_schema_id': {'_class_name': 'exchange',
                '_hash': 'c9bb43df-44ac-63d5-cc1c-6a032025c97d',
                '_package_name': 'org.apache.qpid.broker',
                '_type': '_data'},
 '_update_ts': 1386773894113967633,
 'arguments': {'qpid.msg_sequence': True, 'qpid.sequence_counter': 10},
 'autoDelete': False,
 'bindingCount': 1,
 'bindingCountHigh': 1,
 'bindingCountLow': 1,
 'byteDrops': 0,
 'byteReceives': 0,
 'byteRoutes': 0,
 'durable': True,
 'msgDrops': 0,
 'msgReceives': 0,
 'msgRoutes': 0,
 'name': 'xx',
 'producerCount': 0,
 'producerCountHigh': 0,
 'producerCountLow': 0,
 'type': 'topic',
 'vhostRef': {'_object_name': 'org.apache.qpid.broker:vhost:org.apache.qpid.broker:broker:amqp-broker,/'}}

[4]

{'_create_ts': 1386774436610614121,
 '_delete_ts': 0,
 '_object_id': {'_object_name': 'org.apache.qpid.broker:exchange:xx'},
 '_schema_id': {'_class_name': 'exchange',
                '_hash': 'c9bb43df-44ac-63d5-cc1c-6a032025c97d',
                '_package_name': 'org.apache.qpid.broker',
                '_type': '_data'},
 '_update_ts': 1386774438300840582,
 'arguments': {'qpid.msg_sequence': True, 'qpid.sequence_counter': 0},
 'autoDelete': False,
 'bindingCount': 0,
 'bindingCountHigh': 0,
 'bindingCountLow': 0,
 'byteDrops': 0,
 'byteReceives': 0,
 'byteRoutes': 0,
 'durable': True,
 'msgDrops': 0,
 'msgReceives': 0,
 'msgRoutes': 0,
 'name': 'xx',
 'producerCount': 0,
 'producerCountHigh': 0,
 'producerCountLow': 0,
 'type': 'topic',
 'vhostRef': {'_object_name': 'org.apache.qpid.broker:vhost:org.apache.qpid.broker:broker:amqp-broker,/'}}

Expected results:
'qpid.sequence_counter' stays as defined.

Additional info: