-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/15094/
-----------------------------------------------------------

(Updated Nov. 1, 2013, 1:31 p.m.)


Review request for qpid, Gordon Sim and Ted Ross.


Changes
-------

Updated patch reflecting Gordon's comment (option 2 chosen) and Ken's idea from 
pseudo-code.

The patch changes behaviour in two cases:
$ qpid-config add queue MyQueue15 --durable --max-queue-count=100  
--flow-resume-count=200
Failed: Exception: Exception from Agent: {u'error_code': 7, u'error_text': 
'invalid-argument: Queue "MyQueue15": qpid.flow_resume_count=200 must be less 
or equal to qpid.flow_stop_count=80 
(/data_xfs/qpid-trunk/qpid/cpp/src/qpid/broker/QueueFlowLimit.cpp:52)'}
$

This in my opinion makes sense to prohibit (while unpatched broker allows such 
queue, silently ignoring user's flow-resume-count).

$ qpid-config add queue MyQueue27 --durable     --flow-stop-size=90
Failed: Exception: Exception from Agent: {u'error_code': 7, u'error_text': 
'invalid-argument: Queue "MyQueue27": qpid.flow_resume_size=73400320 must be 
less or equal to qpid.flow_stop_size=90 
(/data_xfs/qpid-trunk/qpid/cpp/src/qpid/broker/QueueFlowLimit.cpp:52)'}
$

Similar example where the patched broker follows flow setup rules just more 
strictly (note: 73400320 is (default) 70% of (default) 104857600 that is 
default-queue-limit).


BUT: with this patch, unit tests timeout without any obvious reason. Debugging 
it gives no clue to me:

ctest --force-new-ctest-process -vv --debug -R unit_test
..
/builddir/build/BUILD/cmake-2.6.4/Source/cmCTest.cxx:1185 
0%   10   20   30   40   50   60   70   80   90   100%
|----|----|----|----|----|----|----|----|----|----|

(and now nothing).

Any idea what could be wrong? (I had to change 
cpp/src/tests/QueueFlowLimitTest.cpp to reflect QueueFlowLimit class API 
changes, cant be relevant?)


Bugs: https://issues.apache.org/jira/browse/QPID-5278
    
https://issues.apache.org/jira/browse/https://issues.apache.org/jira/browse/QPID-5278


Repository: qpid


Description
-------

Trivial copy&paste bug fixed. Anyway I am not sure what the proper broker 
behaviour in one of tested use cases:

qpid-config add queue WrongQueue5 --max-queue-count=100 --flow-resume-count=50 
--durable

should be. Currently, the flow-resume-count parameter is ignored as broker logs:

[Broker] info Queue "WrongQueue6": Flow limit created: flowStopCount=80, 
flowResumeCount=70, flowStopSize=83886080, flowResumeSize=73400320

>From the source code, I have a feeling this is intentional - flow control 
>defaults are overwritten only if flow-stop-[count|size] parameter is used. Am 
>I right? If so, then:
1) there should be a warning - like the one in patch.
2) queue settings (as provided in "qpid-config queues" output) should be 
modified accordingly - currently it copy&paste the user settings that is then 
ignored. That means, "qpid-config queues" provides wrong information. (this is 
not covered by the patch)

Any thoughts?


Diffs (updated)
-----

  /trunk/qpid/cpp/src/qpid/broker/QueueFactory.cpp 1537924 
  /trunk/qpid/cpp/src/qpid/broker/QueueFlowLimit.h 1537924 
  /trunk/qpid/cpp/src/qpid/broker/QueueFlowLimit.cpp 1537924 
  /trunk/qpid/cpp/src/tests/QueueFlowLimitTest.cpp 1537924 

Diff: https://reviews.apache.org/r/15094/diff/


Testing
-------


Thanks,

Pavel Moravec

Reply via email to