Jiri Danek created ARTEMIS-1317:
-----------------------------------
Summary: Messages that expire on OpenWire client are lost (never
make it to ExpiryQueue, if one is configured)
Key: ARTEMIS-1317
URL: https://issues.apache.org/jira/browse/ARTEMIS-1317
Project: ActiveMQ Artemis
Issue Type: Bug
Components: Broker, OpenWire
Affects Versions: 2.2.0, 2.3.0
Reporter: Jiri Danek
Priority: Critical
The scenario is tested by an openwire test from activemq5, which is currently
failing.
{noformat}
Running org.apache.activemq.JmsSendReceiveWithMessageExpirationTest
xxxxxcreating conn:
tcp://localhost:61616?invmBrokerId=localhost&broker.persistent=false
2017-08-01 08:40:22,905 [main ] - INFO TcpTransportFactory
- deciding whether starting an internal broker: null flag: false
2017-08-01 08:40:22,905 [main ] - INFO TcpTransportFactory
- starting internal broker: tcp://localhost:61616
2017-08-01 08:40:22,905 [main ] - INFO ArtemisBrokerHelper
- ---starting broker, service is there? null
2017-08-01 08:40:22,905 [main ] - INFO BrokerService
- Apache ActiveMQ Artemis Wrapper 5.14.0 (localhost, Artemis Broker) is
starting
acceptor =>: TransportConfiguration(name=home,
factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyAcceptorFactory)
?port=61616&host=localhost
[main] 08:40:22,906 INFO [org.apache.activemq.artemis.core.server] AMQ221000:
live Message Broker is starting with configuration Broker Configuration
(clustered=false,journalDirectory=/root/workspace/peline_jdanek_artemis_junit-MXKODGBZMK2IRSU3ZGP3WXI5HYEVJ64OU2VN7HHODGYVOJ5FA7IQ/tests/activemq5-unit-tests/./target/tmp/junit5554952782813333836/journal,bindingsDirectory=/root/workspace/peline_jdanek_artemis_junit-MXKODGBZMK2IRSU3ZGP3WXI5HYEVJ64OU2VN7HHODGYVOJ5FA7IQ/tests/activemq5-unit-tests/./target/tmp/junit5554952782813333836/bindings,largeMessagesDirectory=/root/workspace/peline_jdanek_artemis_junit-MXKODGBZMK2IRSU3ZGP3WXI5HYEVJ64OU2VN7HHODGYVOJ5FA7IQ/tests/activemq5-unit-tests/./target/tmp/junit5554952782813333836/large-msg,pagingDirectory=/root/workspace/peline_jdanek_artemis_junit-MXKODGBZMK2IRSU3ZGP3WXI5HYEVJ64OU2VN7HHODGYVOJ5FA7IQ/tests/activemq5-unit-tests/./target/tmp/junit5554952782813333836/page)
[main] 08:40:22,906 INFO [org.apache.activemq.artemis.core.server] AMQ221057:
Global Max Size is being adjusted to 1/2 of the JVM max size (-Xmx). being
defined as 1,851,260,928
[main] 08:40:22,906 INFO [org.apache.activemq.artemis.core.server] AMQ221043:
Protocol module found: [artemis-server]. Adding protocol support for: CORE
[main] 08:40:22,907 INFO [org.apache.activemq.artemis.core.server] AMQ221043:
Protocol module found: [artemis-openwire-protocol]. Adding protocol support
for: OPENWIRE
[main] 08:40:22,907 INFO [org.apache.activemq.artemis.core.server] AMQ221043:
Protocol module found: [artemis-stomp-protocol]. Adding protocol support for:
STOMP
[main] 08:40:22,910 INFO [org.apache.activemq.artemis.core.server] AMQ221020:
Started EPOLL Acceptor at localhost:61616 for protocols [CORE,STOMP,OPENWIRE]
[main] 08:40:22,910 INFO [org.apache.activemq.artemis.core.server] AMQ221007:
Server is now live
[main] 08:40:22,910 INFO [org.apache.activemq.artemis.core.server] AMQ221001:
Apache ActiveMQ Artemis Message Broker version 2.3.0-SNAPSHOT [localhost,
nodeID=95e57e85-76b6-11e7-aa4e-fa163e5a2b31]
2017-08-01 08:40:22,910 [main ] - INFO BrokerService
- Apache ActiveMQ Artemis Wrapper 5.14.0 (localhost, Artemis Broker) started
2017-08-01 08:40:22,910 [main ] - INFO BrokerService
- For help or more information please see: http://activemq.apache.org
2017-08-01 08:40:22,910 [main ] - INFO ArtemisBrokerHelper
- started a service instance:
BrokerService[localhost]org.apache.activemq.broker.BrokerService@47a71f54
2017-08-01 08:40:22,910 [main ] - INFO TcpTransportFactory
- just created
tcp://localhost:61616?invmBrokerId=localhost&broker.persistent=false@1501591222910
2017-08-01 08:40:22,910 [main ] - INFO TcpTransportFactory
- bound: localhost
xxxxxxxxxxxx created transporttcp://localhost:61616
2017-08-01 08:40:22,934 [main ] - INFO
ceiveWithMessageExpirationTest - Dumping stats...
2017-08-01 08:40:22,934 [main ] - INFO
ceiveWithMessageExpirationTest - Closing down connection
[Thread-1 (activemq-netty-threads)] 08:40:22,935 WARN
[org.apache.activemq.artemis.core.server] AMQ222061: Client connection failed,
clearing up resources for session 95e68ff6-76b6-11e7-aa4e-fa163e5a2b31
[Thread-1 (activemq-netty-threads)] 08:40:22,935 WARN
[org.apache.activemq.artemis.core.server] AMQ222107: Cleared up resources for
session 95e68ff6-76b6-11e7-aa4e-fa163e5a2b31
[Thread-1 (activemq-netty-threads)] 08:40:22,935 WARN
[org.apache.activemq.artemis.core.server] AMQ222061: Client connection failed,
clearing up resources for session
ID:host-172-0-0-126.openstacklocal-39842-1501590872918-807:1:-1
[Thread-1 (activemq-netty-threads)] 08:40:22,935 WARN
[org.apache.activemq.artemis.core.server] AMQ222107: Cleared up resources for
session ID:host-172-0-0-126.openstacklocal-39842-1501590872918-807:1:-1
xxxxxcreating conn:
tcp://localhost:61616?invmBrokerId=localhost&broker.persistent=false
2017-08-01 08:40:22,937 [main ] - INFO TcpTransportFactory
- deciding whether starting an internal broker:
tcp://localhost:61616?invmBrokerId=localhost&broker.persistent=false@1501591222910
flag: false
xxxxxxxxxxxx created transporttcp://localhost:61616
2017-08-01 08:40:22,975 [main ] - INFO
ceiveWithMessageExpirationTest - Dumping stats...
2017-08-01 08:40:22,976 [main ] - INFO
ceiveWithMessageExpirationTest - Closing down connection
[Thread-2 (activemq-netty-threads)] 08:40:22,976 WARN
[org.apache.activemq.artemis.core.server] AMQ222061: Client connection failed,
clearing up resources for session 95ea608a-76b6-11e7-aa4e-fa163e5a2b31
[Thread-2 (activemq-netty-threads)] 08:40:22,977 WARN
[org.apache.activemq.artemis.core.server] AMQ222107: Cleared up resources for
session 95ea608a-76b6-11e7-aa4e-fa163e5a2b31
[Thread-2 (activemq-netty-threads)] 08:40:22,977 WARN
[org.apache.activemq.artemis.core.server] AMQ222061: Client connection failed,
clearing up resources for session
ID:host-172-0-0-126.openstacklocal-39842-1501590872918-809:1:-1
[Thread-2 (activemq-netty-threads)] 08:40:22,977 WARN
[org.apache.activemq.artemis.core.server] AMQ222107: Cleared up resources for
session ID:host-172-0-0-126.openstacklocal-39842-1501590872918-809:1:-1
xxxxxcreating conn:
tcp://localhost:61616?invmBrokerId=localhost&broker.persistent=false
2017-08-01 08:40:22,980 [main ] - INFO TcpTransportFactory
- deciding whether starting an internal broker:
tcp://localhost:61616?invmBrokerId=localhost&broker.persistent=false@1501591222910
flag: false
xxxxxxxxxxxx created transporttcp://localhost:61616
2017-08-01 08:40:30,014 [main ] - INFO
ceiveWithMessageExpirationTest - Dumping stats...
2017-08-01 08:40:30,014 [main ] - INFO
ceiveWithMessageExpirationTest - Closing down connection
[Thread-3 (activemq-netty-threads)] 08:40:30,015 WARN
[org.apache.activemq.artemis.core.server] AMQ222061: Client connection failed,
clearing up resources for session 95f13e5e-76b6-11e7-aa4e-fa163e5a2b31
[Thread-3 (activemq-netty-threads)] 08:40:30,015 WARN
[org.apache.activemq.artemis.core.server] AMQ222107: Cleared up resources for
session 95f13e5e-76b6-11e7-aa4e-fa163e5a2b31
[Thread-3 (activemq-netty-threads)] 08:40:30,015 WARN
[org.apache.activemq.artemis.core.server] AMQ222061: Client connection failed,
clearing up resources for session
ID:host-172-0-0-126.openstacklocal-39842-1501590872918-811:1:-1
[Thread-3 (activemq-netty-threads)] 08:40:30,015 WARN
[org.apache.activemq.artemis.core.server] AMQ222107: Cleared up resources for
session ID:host-172-0-0-126.openstacklocal-39842-1501590872918-811:1:-1
xxxxxcreating conn:
tcp://localhost:61616?invmBrokerId=localhost&broker.persistent=false
2017-08-01 08:40:30,017 [main ] - INFO TcpTransportFactory
- deciding whether starting an internal broker:
tcp://localhost:61616?invmBrokerId=localhost&broker.persistent=false@1501591222910
flag: false
xxxxxxxxxxxx created transporttcp://localhost:61616
2017-08-01 08:40:37,049 [main ] - INFO
ceiveWithMessageExpirationTest - Dumping stats...
2017-08-01 08:40:37,049 [main ] - INFO
ceiveWithMessageExpirationTest - Closing down connection
[Thread-4 (activemq-netty-threads)] 08:40:37,049 WARN
[org.apache.activemq.artemis.core.server] AMQ222061: Client connection failed,
clearing up resources for session 9a22da22-76b6-11e7-aa4e-fa163e5a2b31
[Thread-4 (activemq-netty-threads)] 08:40:37,050 WARN
[org.apache.activemq.artemis.core.server] AMQ222107: Cleared up resources for
session 9a22da22-76b6-11e7-aa4e-fa163e5a2b31
[Thread-4 (activemq-netty-threads)] 08:40:37,050 WARN
[org.apache.activemq.artemis.core.server] AMQ222061: Client connection failed,
clearing up resources for session
ID:host-172-0-0-126.openstacklocal-39842-1501590872918-813:1:-1
[Thread-4 (activemq-netty-threads)] 08:40:37,050 WARN
[org.apache.activemq.artemis.core.server] AMQ222107: Cleared up resources for
session ID:host-172-0-0-126.openstacklocal-39842-1501590872918-813:1:-1
xxxxxcreating conn:
tcp://localhost:61616?invmBrokerId=localhost&broker.persistent=false
2017-08-01 08:40:37,053 [main ] - INFO TcpTransportFactory
- deciding whether starting an internal broker:
tcp://localhost:61616?invmBrokerId=localhost&broker.persistent=false@1501591222910
flag: false
xxxxxxxxxxxx created transporttcp://localhost:61616
xxxxxcreating conn:
tcp://localhost:61616?invmBrokerId=localhost&broker.persistent=false
2017-08-01 08:40:37,058 [main ] - INFO TcpTransportFactory
- deciding whether starting an internal broker:
tcp://localhost:61616?invmBrokerId=localhost&broker.persistent=false@1501591222910
flag: false
xxxxxxxxxxxx created transporttcp://localhost:61616
2017-08-01 08:40:40,284 [main ] - INFO
ceiveWithMessageExpirationTest - Dumping stats...
2017-08-01 08:40:40,284 [main ] - INFO
ceiveWithMessageExpirationTest - Closing down connection
[Thread-5 (activemq-netty-threads)] 08:40:40,285 WARN
[org.apache.activemq.artemis.core.server] AMQ222061: Client connection failed,
clearing up resources for session 9e544ed6-76b6-11e7-aa4e-fa163e5a2b31
[Thread-5 (activemq-netty-threads)] 08:40:40,285 WARN
[org.apache.activemq.artemis.core.server] AMQ222107: Cleared up resources for
session 9e544ed6-76b6-11e7-aa4e-fa163e5a2b31
[Thread-5 (activemq-netty-threads)] 08:40:40,285 WARN
[org.apache.activemq.artemis.core.server] AMQ222061: Client connection failed,
clearing up resources for session
ID:host-172-0-0-126.openstacklocal-39842-1501590872918-815:1:-1
[Thread-5 (activemq-netty-threads)] 08:40:40,285 WARN
[org.apache.activemq.artemis.core.server] AMQ222107: Cleared up resources for
session ID:host-172-0-0-126.openstacklocal-39842-1501590872918-815:1:-1
Tests run: 5, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 17.381 sec <<<
FAILURE! - in org.apache.activemq.JmsSendReceiveWithMessageExpirationTest
testConsumeExpiredQueueAndDlq(org.apache.activemq.JmsSendReceiveWithMessageExpirationTest)
Time elapsed: 3.235 sec <<< FAILURE!
junit.framework.AssertionFailedError: got dlq messages expected:<99> but
was:<90>
at junit.framework.Assert.fail(Assert.java:57)
at junit.framework.Assert.failNotEquals(Assert.java:329)
at junit.framework.Assert.assertEquals(Assert.java:78)
at junit.framework.Assert.assertEquals(Assert.java:234)
at junit.framework.TestCase.assertEquals(TestCase.java:401)
at
org.apache.activemq.JmsSendReceiveWithMessageExpirationTest.testConsumeExpiredQueueAndDlq(JmsSendReceiveWithMessageExpirationTest.java:164)
{noformat}
I've discussed the test with Clebert at ARTEMIS-1276
(https://github.com/apache/activemq-artemis/pull/1407)
IMO, the reason for the assertion error is that the client's prefetch value is
10 messages, out of which 1 message is consumed immediately (on time), while
the remaining 9 messages are left to expire in the prefetch cache.
The test then tries to get the expired messages from ExpiryQueue, but gets only
90 that expired on the server. The 9 that expired on client are missing.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)