Bug 401091

Summary: Handle journal full condition in broker
Product: Red Hat Enterprise MRG Reporter: Kim van der Riet <kim.vdriet>
Component: qpid-cppAssignee: Kim van der Riet <kim.vdriet>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: urgent Docs Contact:
Priority: urgent    
Version: beta   
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-12-07 17:43:15 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:

Description Kim van der Riet 2007-11-27 15:39:30 UTC
Description of problem:
If the journal files should fill (ie the ability to overwrite a file is blocked
by a message that has not been dequeued), then a fatal journal condition exists.
This is because dequeues (which could potentially free up the journal file
space) can no longer be written either, and the full condition will persist
indefinitely.

Plans exist to extend the journal file count under such conditions or when the
management module detects a near-full condition, but will not be implememnted
for this release.

One possible course of action is to deny the ability to enqueue records when the
file being written is within one file of the last enqueued record which will
block. This should allow dequeues to contune for one file, but does not
guarantee that when the last file is full, the blocking enqueued record will be
dequeued.

Comment 1 Kim van der Riet 2007-12-13 13:50:56 UTC
Added a journal fullness check that is performed for each enqueue. When the
journal reaches 80% full or the point where only 1 file is free (whichever is
greater) as a result of the operation, an exception is thrown which results in
the closing of the producer connection. Consumers may continue to dequeue,
however. At present, these limits are hard-coded.

RHM svn r.1474
cc 64-bit: 347
cc 32-bit: 58