Uploaded image for project: 'ActiveMQ Artemis'
  1. ActiveMQ Artemis
  2. ARTEMIS-4973

pageSizeBytes/pageLimitBytes combination can cause Address full

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.36.0
    • 2.37.0
    • Broker
    • None

    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:

      $ 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.

      Attachments

        Issue Links

          Activity

            People

              gaohoward Howard Gao
              gaohoward Howard Gao
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 7h 50m
                  7h 50m