[
https://issues.apache.org/jira/browse/ARTEMIS-4973?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Justin Bertram updated ARTEMIS-4973:
------------------------------------
Description:
There is an edge case where adjusting pageSizeBytes can cause "Address is full"
errors, even though the address is not full.
Do we need to enforce that pageSizeBytes <= pageLimitBytes?
Reproducer steps:
Step 1: configure pageSizeBytes == pageLimitBytes == 1mb:
{code}
$ cat my.broker.properties
addressSettings."FOO".pageSizeBytes=1048576
addressSettings."FOO".pageLimitBytes=1048576
addressSettings."FOO".maxSizeBytes=1048576
addressSettings."FOO".pageFullMessagePolicy=FAIL
addressConfigurations."FOO".routingTypes=MULTICAST
addressConfigurations."FOO".queueConfigs."FOO".name=FOO
addressConfigurations."FOO".queueConfigs."FOO".address=FOO
addressConfigurations."FOO".queueConfigs."FOO".routingType=MULTICAST
{code}
Step 2: run broker
{code}
bin/artemis run --properties my.broker.properties
{code}
Step 3: produce 15 messages
{code}
$ bin/artemis producer --user admin --password admin --destination topic://FOO
--message-count 15 --message-size 100000 --protocol amqp
{code}
Step 4: observe paging started on the destination (but the page size is 328kb,
can hold more messages)
{code}
INFO [org.apache.activemq.artemis.core.server] AMQ222038: Starting paging on
address 'FOO'; size=1107003 bytes (11 messages); maxSize=1048576 bytes (-1
messages); globalSize=1107003 bytes (11 messages); globalMaxSize=1073741824
bytes (-1 messages);
{code}
Step 5: stop broker, increase page size
{code}
cat my.broker.properties
addressSettings."FOO".pageSizeBytes=4048576
...
{code}
Step 6: run broker, observe logs show paging warning
{code}
2024-06-25 15:23:47,135 WARN [org.apache.activemq.artemis.core.server]
AMQ224123: Address FOO has more pages than allowed. System currently has 1
pages, while the estimated max number of pages is 0 based on the
page-limit-bytes (1048576) / page-size (4048576)
{code}
Step 7: try to produce a message, address full
{code}
WARN [org.apache.activemq.artemis.protocol.amqp.broker.AMQPSessionCallback]
AMQ229102: Address "FOO" is full.
{code}
was:
There is an edge case where adjusting pageSizeBytes can cause "Address is full"
errors, even though the address is not full.
Do we need to enforce that pageSizeBytes <= pageLimitBytes?
Reproducer steps:
Step 1: configure pageSizeBytes == pageLimitBytes == 1mb:
$ cat my.broker.properties
addressSettings."FOO".pageSizeBytes=1048576
addressSettings."FOO".pageLimitBytes=1048576
addressSettings."FOO".maxSizeBytes=1048576
addressSettings."FOO".pageFullMessagePolicy=FAIL
addressConfigurations."FOO".routingTypes=MULTICAST
addressConfigurations."FOO".queueConfigs."FOO".name=FOO
addressConfigurations."FOO".queueConfigs."FOO".address=FOO
addressConfigurations."FOO".queueConfigs."FOO".routingType=MULTICAST
Step 2: run broker
bin/artemis run --properties my.broker.properties
Step 3: produce 15 messages
$ bin/artemis producer --user admin --password admin --destination topic://FOO
--message-count 15 --message-size 100000 --protocol amqp
Step 4: observe paging started on the destination (but the page size is 328kb,
can hold more messages)
INFO [org.apache.activemq.artemis.core.server] AMQ222038: Starting paging on
address 'FOO'; size=1107003 bytes (11 messages); maxSize=1048576 bytes (-1
messages); globalSize=1107003 bytes (11 messages); globalMaxSize=1073741824
bytes (-1 messages);
Step 5: stop broker, increase page size
cat my.broker.properties
addressSettings."FOO".pageSizeBytes=4048576
...
Step 6: run broker, observe logs show paging warning
2024-06-25 15:23:47,135 WARN [org.apache.activemq.artemis.core.server]
AMQ224123: Address FOO has more pages than allowed. System currently has 1
pages, while the estimated max number of pages is 0 based on the
page-limit-bytes (1048576) / page-size (4048576)
Step 7: try to produce a message, address full
WARN [org.apache.activemq.artemis.protocol.amqp.broker.AMQPSessionCallback]
AMQ229102: Address "FOO" is full.
> pageSizeBytes/pageLimitBytes combination can cause Address full
> ---------------------------------------------------------------
>
> Key: ARTEMIS-4973
> URL: https://issues.apache.org/jira/browse/ARTEMIS-4973
> Project: ActiveMQ Artemis
> Issue Type: Bug
> Components: Broker
> Affects Versions: 2.36.0
> Reporter: Howard Gao
> Assignee: Howard Gao
> Priority: Major
> Fix For: 2.37.0
>
> Time Spent: 7h 50m
> Remaining Estimate: 0h
>
> There is an edge case where adjusting pageSizeBytes can cause "Address is
> full" errors, even though the address is not full.
> Do we need to enforce that pageSizeBytes <= pageLimitBytes?
> Reproducer steps:
> Step 1: configure pageSizeBytes == pageLimitBytes == 1mb:
> {code}
> $ cat my.broker.properties
> addressSettings."FOO".pageSizeBytes=1048576
> addressSettings."FOO".pageLimitBytes=1048576
> addressSettings."FOO".maxSizeBytes=1048576
> addressSettings."FOO".pageFullMessagePolicy=FAIL
> addressConfigurations."FOO".routingTypes=MULTICAST
> addressConfigurations."FOO".queueConfigs."FOO".name=FOO
> addressConfigurations."FOO".queueConfigs."FOO".address=FOO
> addressConfigurations."FOO".queueConfigs."FOO".routingType=MULTICAST
> {code}
> Step 2: run broker
> {code}
> bin/artemis run --properties my.broker.properties
> {code}
> Step 3: produce 15 messages
> {code}
> $ bin/artemis producer --user admin --password admin --destination
> topic://FOO --message-count 15 --message-size 100000 --protocol amqp
> {code}
> Step 4: observe paging started on the destination (but the page size is
> 328kb, can hold more messages)
> {code}
> INFO [org.apache.activemq.artemis.core.server] AMQ222038: Starting paging on
> address 'FOO'; size=1107003 bytes (11 messages); maxSize=1048576 bytes (-1
> messages); globalSize=1107003 bytes (11 messages); globalMaxSize=1073741824
> bytes (-1 messages);
> {code}
> Step 5: stop broker, increase page size
> {code}
> cat my.broker.properties
> addressSettings."FOO".pageSizeBytes=4048576
> ...
> {code}
> Step 6: run broker, observe logs show paging warning
> {code}
> 2024-06-25 15:23:47,135 WARN [org.apache.activemq.artemis.core.server]
> AMQ224123: Address FOO has more pages than allowed. System currently has 1
> pages, while the estimated max number of pages is 0 based on the
> page-limit-bytes (1048576) / page-size (4048576)
> {code}
> Step 7: try to produce a message, address full
> {code}
> WARN [org.apache.activemq.artemis.protocol.amqp.broker.AMQPSessionCallback]
> AMQ229102: Address "FOO" is full.
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact