You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by Kenneth Giusti <kg...@apache.org> on 2012/03/02 03:14:07 UTC

Review Request: Lock the message headers to prevent changes during encode.

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

Review request for qpid, Gordon Sim and Kim van der Riet.


Summary
-------

While running the broker with an async store, it is possible to crash the broker using perftest.  This is due to a race condition where the broker is updating the message's headers (ttl) while the store is encoding the same.

To reproduce:

1) run broker with async store:  
qpidd --load-module /home/kgiusti/store/cpp/lib/.libs/msgstore.so  --auth no --port 8888 --num-jfile 16 --jfile-size-pgs 128 --data-dir /tmp/tmp.364FDjf0YW

2) run qpid-perftest in a loop against the broker:
    while true; do qpid-perftest --port 8888 --mode fanout --count 25000 --size 256 --durable yes --nsubs 4 ; done


This addresses bug qpid-3877.
    https://issues.apache.org/jira/browse/qpid-3877


Diffs
-----

  /trunk/qpid/cpp/src/qpid/broker/Message.cpp 1295759 

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


Testing
-------

Ran the above tests without crash.
+make check.


Thanks,

Kenneth


Re: Review Request: Lock the message headers to prevent changes during encode.

Posted by Gordon Sim <gs...@redhat.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/4150/#review5550
-----------------------------------------------------------

Ship it!


- Gordon


On 2012-03-02 02:14:07, Kenneth Giusti wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/4150/
> -----------------------------------------------------------
> 
> (Updated 2012-03-02 02:14:07)
> 
> 
> Review request for qpid, Gordon Sim and Kim van der Riet.
> 
> 
> Summary
> -------
> 
> While running the broker with an async store, it is possible to crash the broker using perftest.  This is due to a race condition where the broker is updating the message's headers (ttl) while the store is encoding the same.
> 
> To reproduce:
> 
> 1) run broker with async store:  
> qpidd --load-module /home/kgiusti/store/cpp/lib/.libs/msgstore.so  --auth no --port 8888 --num-jfile 16 --jfile-size-pgs 128 --data-dir /tmp/tmp.364FDjf0YW
> 
> 2) run qpid-perftest in a loop against the broker:
>     while true; do qpid-perftest --port 8888 --mode fanout --count 25000 --size 256 --durable yes --nsubs 4 ; done
> 
> 
> This addresses bug qpid-3877.
>     https://issues.apache.org/jira/browse/qpid-3877
> 
> 
> Diffs
> -----
> 
>   /trunk/qpid/cpp/src/qpid/broker/Message.cpp 1295759 
> 
> Diff: https://reviews.apache.org/r/4150/diff
> 
> 
> Testing
> -------
> 
> Ran the above tests without crash.
> +make check.
> 
> 
> Thanks,
> 
> Kenneth
> 
>


Re: Review Request: Lock the message headers to prevent changes during encode.

Posted by Gordon Sim <gs...@redhat.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/4150/#review6120
-----------------------------------------------------------

Ship it!


- Gordon


On 2012-03-20 15:23:56, Kenneth Giusti wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/4150/
> -----------------------------------------------------------
> 
> (Updated 2012-03-20 15:23:56)
> 
> 
> Review request for qpid, Andrew Stitcher, Gordon Sim, and Kim van der Riet.
> 
> 
> Summary
> -------
> 
> While running the broker with an async store, it is possible to crash the broker using perftest.  This is due to a race condition where the broker is updating the message's headers (ttl) while the store is encoding the same.
> 
> To reproduce:
> 
> 1) run broker with async store:  
> qpidd --load-module /home/kgiusti/store/cpp/lib/.libs/msgstore.so  --auth no --port 8888 --num-jfile 16 --jfile-size-pgs 128 --data-dir /tmp/tmp.364FDjf0YW
> 
> 2) run qpid-perftest in a loop against the broker:
>     while true; do qpid-perftest --port 8888 --mode fanout --count 25000 --size 256 --durable yes --nsubs 4 ; done
> 
> 
> This addresses bug qpid-3877.
>     https://issues.apache.org/jira/browse/qpid-3877
> 
> 
> Diffs
> -----
> 
>   /trunk/qpid/cpp/src/qpid/broker/Message.cpp 1302629 
> 
> Diff: https://reviews.apache.org/r/4150/diff
> 
> 
> Testing
> -------
> 
> Ran the above tests without crash.
> +make check.
> 
> 
> Thanks,
> 
> Kenneth
> 
>


Re: Review Request: Lock the message headers to prevent changes during encode.

Posted by Kenneth Giusti <kg...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/4150/
-----------------------------------------------------------

(Updated 2012-03-20 15:23:56.599695)


Review request for qpid, Andrew Stitcher, Gordon Sim, and Kim van der Riet.


Changes
-------

Added Andrew.


Summary
-------

While running the broker with an async store, it is possible to crash the broker using perftest.  This is due to a race condition where the broker is updating the message's headers (ttl) while the store is encoding the same.

To reproduce:

1) run broker with async store:  
qpidd --load-module /home/kgiusti/store/cpp/lib/.libs/msgstore.so  --auth no --port 8888 --num-jfile 16 --jfile-size-pgs 128 --data-dir /tmp/tmp.364FDjf0YW

2) run qpid-perftest in a loop against the broker:
    while true; do qpid-perftest --port 8888 --mode fanout --count 25000 --size 256 --durable yes --nsubs 4 ; done


This addresses bug qpid-3877.
    https://issues.apache.org/jira/browse/qpid-3877


Diffs
-----

  /trunk/qpid/cpp/src/qpid/broker/Message.cpp 1302629 

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


Testing
-------

Ran the above tests without crash.
+make check.


Thanks,

Kenneth


Re: Review Request: Lock the message headers to prevent changes during encode.

Posted by Kenneth Giusti <kg...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/4150/
-----------------------------------------------------------

(Updated 2012-03-20 13:23:19.671544)


Review request for qpid, Gordon Sim and Kim van der Riet.


Changes
-------

Crash also occurs during message body encode.  Proposed fix simply moves scope of lock to include the message body.


Summary
-------

While running the broker with an async store, it is possible to crash the broker using perftest.  This is due to a race condition where the broker is updating the message's headers (ttl) while the store is encoding the same.

To reproduce:

1) run broker with async store:  
qpidd --load-module /home/kgiusti/store/cpp/lib/.libs/msgstore.so  --auth no --port 8888 --num-jfile 16 --jfile-size-pgs 128 --data-dir /tmp/tmp.364FDjf0YW

2) run qpid-perftest in a loop against the broker:
    while true; do qpid-perftest --port 8888 --mode fanout --count 25000 --size 256 --durable yes --nsubs 4 ; done


This addresses bug qpid-3877.
    https://issues.apache.org/jira/browse/qpid-3877


Diffs (updated)
-----

  /trunk/qpid/cpp/src/qpid/broker/Message.cpp 1302629 

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


Testing
-------

Ran the above tests without crash.
+make check.


Thanks,

Kenneth