Cause: The journal-flush-timeout config option parsing was incorrectly changed so that the input value was assumed to be milliseconds.
Consequence:
This caused existing config files to not work the same way they did previously.
Fix:
The parsing was restored to its previous functionality, so that the setting is interpreted as seconds unless it has a suffix of "ns" (signifying nanoseconds) or "ms" (signifying milliseconds).
Result:
Now the journal-flush-timeout setting is interpreted the way it was prior to MRG 3.2.5.
Description of problem:
A recent checkin for QPID-7666 (and released in MRG 3.2.5) changed the way the journal-flush-timeout parameter for the linearstore is handled. This change caused the value to be an integer millisecond value with a minimum of 1. This means:
A relatively arbitrary lower limit has been suddenly applied;
Existing configuration files may no longer be valid and could either cause the broker to stop with an error or could in some cases continue running with a different interpretation of the number (if the original timeout value were an integer > 1, previously interpreted as seconds).
The original interpretation was in seconds, with suffixes ms and ns allowed to denote milliseconds or nanoseconds.
This fix needs to be rolled back and the original handling of the parameter needs to be restored. (Already done upstream in QPID-7877.)
Version-Release number of selected component (if applicable):
qpid-cpp-1.36.0-6
How reproducible:
Always
Steps to Reproduce:
1. In qpidd.conf, set journal-flush-timeout=100ns
2. or, set journal-flush-timeout=10
Actual results:
1. broker stops with a config error
2. broker interprets as 10ms, when it should be 10 sec
Expected results:
1. broker accepts 100ns, and uses 100 nanoseconds as the interval
2. broker interprets values in seconds, unless ms or ns suffix is used
Additional info:
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.
https://access.redhat.com/errata/RHBA-2017:2892
Description of problem: A recent checkin for QPID-7666 (and released in MRG 3.2.5) changed the way the journal-flush-timeout parameter for the linearstore is handled. This change caused the value to be an integer millisecond value with a minimum of 1. This means: A relatively arbitrary lower limit has been suddenly applied; Existing configuration files may no longer be valid and could either cause the broker to stop with an error or could in some cases continue running with a different interpretation of the number (if the original timeout value were an integer > 1, previously interpreted as seconds). The original interpretation was in seconds, with suffixes ms and ns allowed to denote milliseconds or nanoseconds. This fix needs to be rolled back and the original handling of the parameter needs to be restored. (Already done upstream in QPID-7877.) Version-Release number of selected component (if applicable): qpid-cpp-1.36.0-6 How reproducible: Always Steps to Reproduce: 1. In qpidd.conf, set journal-flush-timeout=100ns 2. or, set journal-flush-timeout=10 Actual results: 1. broker stops with a config error 2. broker interprets as 10ms, when it should be 10 sec Expected results: 1. broker accepts 100ns, and uses 100 nanoseconds as the interval 2. broker interprets values in seconds, unless ms or ns suffix is used Additional info: