qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pavel Moravec (JIRA)" <j...@apache.org>
Subject [jira] [Closed] (QPID-5121) Store module does not raise exception when attempting to enqueue a message bigger than the journal size
Date Sun, 02 Feb 2014 14:06:10 GMT

     [ https://issues.apache.org/jira/browse/QPID-5121?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Pavel Moravec closed QPID-5121.
-------------------------------


> Store module does not raise exception when attempting to enqueue a message bigger than
the journal size
> -------------------------------------------------------------------------------------------------------
>
>                 Key: QPID-5121
>                 URL: https://issues.apache.org/jira/browse/QPID-5121
>             Project: Qpid
>          Issue Type: Bug
>          Components: C++ Broker
>    Affects Versions: 0.22
>            Reporter: Pavel Moravec
>            Assignee: Pavel Moravec
>             Fix For: Future
>
>         Attachments: QPID-5121.patch
>
>
> Description of problem:
> Whenever store module tries to write to a journal a message bigger than the journal capacity
is, it a) does not store the message (so far so good), but b) it does _not_ raise an error
(!!!). So the broker thinks the message was enqueued.
> That is a big gotcha, as the durable message is kept in memory only.
> Version-Release number of selected component (if applicable):
> 0.22
> How reproducible:
> 100%
> Steps to Reproduce:
> rm -rf /var/lib/qpidd/* /var/lib/qpidd/.* 2> /dev/null
> service qpidd restart
> # create a durable queue with tiny journal and send there one huge message
> qpid-send -a "DurableQueue4; {create:always, node:{durable:true, x-declare:{ arguments:{'qpid.flow_stop_count':0,
'qpid.max_count':0, 'qpid.file_count':4, 'qpid.file_size':8, 'qpid.flow_resume_count':0, 'qpid.flow_stop_size':0,
'qpid.flow_resume_size':0, 'qpid.max_size':0 }}}}" -m 1 --content-size=100000000 --durable=yes
> # check in stats the queue has the message enqueued
> qpid-stat -q 
> Queues
>   queue                                     dur  autoDel  excl  msg   msgIn  msgOut 
bytes  bytesIn  bytesOut  cons  bind
>   =========================================================================================================================
>   7e553cc6-89d4-46b2-93fd-5ad7cf1f72a9:0.0       Y        Y        0     0      0   
   0      0        0         1     2
>   DurableQueue4                             Y                      1     1      0   
 100m   100m       0         0     1
> # restart the broker and check queue stats
> service qpidd restart
> qpid-stat -q 
> Queues
>   queue                                     dur  autoDel  excl  msg   msgIn  msgOut 
bytes  bytesIn  bytesOut  cons  bind
>   =========================================================================================================================
>   DurableQueue4                             Y                      0     0      0   
   0      0        0         0     1
>   cddddd53-5b98-4101-ad35-de71e038cd61:0.0       Y        Y        0     0      0   
   0      0        0         1     2
> # ouch, where the _durable_ message went to???
> Actual results:
> 1) generic reproducer for regular durable queue:
> - qpid-send/broker/store has not returned an error (THIS is the wrong)
> - after the broker restart, the queue has no message (this should be ok but not after
no error raised)
> Expected results:
> qpid-send should fail due to "Enqueue capacity threshold" error (and no message should
be kept in the broker later on).
> Additional info:
> - Optional/variant scenarios: send first some tiny message to the journal and then the
huge one.
> - Trivial patch to be added



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org


Mime
View raw message