[jira] [Commented] (QPID-3521) failover process for the 0-8 client does not clear the pre-dispatch queue

2015-08-06 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-3521?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14660086#comment-14660086
 ] 

ASF subversion and git services commented on QPID-3521:
---

Commit 1694509 from oru...@apache.org in branch 'java/trunk'
[ https://svn.apache.org/r1694509 ]

QPID-3521: Restore AMQConnection#doWithAllLocks(Runnable) and move part of 
failover specific functionality from FailoverHandler into AMQProtocolHandler
   Reduce coupling between AMQProtocolHandler and AMQProtocolSession by 
swapping some methods
   Remove unneeded ConnectionHelper

> failover process for the 0-8 client does not clear the pre-dispatch queue
> -
>
> Key: QPID-3521
> URL: https://issues.apache.org/jira/browse/QPID-3521
> Project: Qpid
>  Issue Type: Bug
>  Components: Java Client
>Reporter: Robbie Gemmell
>Assignee: Alex Rudyy
>  Labels: failover
> Attachments: clear-dispatch-queue-on-failover.diff
>
>
> failover process for the 0-8 client does not clear the pre-dispatch queue, 
> only the consumer receive queue.
> This is currently masked by an issue with the rollbackMark. The changes made 
> in QPID-3546 to fix the 0-10 client path need to be applied to the 0-8/9/9-1 
> client path when this issue is resolved.
> We need to clear the pre-dispatch queue on failover. Additionally, we need to 
> acquire dispatcher and messageDelivery locks in failover thread in order to 
> prevent the dispatcher from dispatching pre-fetched messages whilst failover 
> is in progress. If we are not holding the locks, the dispatcher could 
> continue dispatching prefetched messages into MessageListener which would 
> result in unnecessary JMSExceptions on acknowledge/rollback/commit/recover.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (QPID-3521) failover process for the 0-8 client does not clear the pre-dispatch queue

2015-08-06 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-3521?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14660087#comment-14660087
 ] 

ASF subversion and git services commented on QPID-3521:
---

Commit 1694510 from oru...@apache.org in branch 'java/trunk'
[ https://svn.apache.org/r1694510 ]

QPID-3521: Move AMQProtocolHandler into parent package to get access to package 
protected methods on AMQConnection

> failover process for the 0-8 client does not clear the pre-dispatch queue
> -
>
> Key: QPID-3521
> URL: https://issues.apache.org/jira/browse/QPID-3521
> Project: Qpid
>  Issue Type: Bug
>  Components: Java Client
>Reporter: Robbie Gemmell
>Assignee: Alex Rudyy
>  Labels: failover
> Attachments: clear-dispatch-queue-on-failover.diff
>
>
> failover process for the 0-8 client does not clear the pre-dispatch queue, 
> only the consumer receive queue.
> This is currently masked by an issue with the rollbackMark. The changes made 
> in QPID-3546 to fix the 0-10 client path need to be applied to the 0-8/9/9-1 
> client path when this issue is resolved.
> We need to clear the pre-dispatch queue on failover. Additionally, we need to 
> acquire dispatcher and messageDelivery locks in failover thread in order to 
> prevent the dispatcher from dispatching pre-fetched messages whilst failover 
> is in progress. If we are not holding the locks, the dispatcher could 
> continue dispatching prefetched messages into MessageListener which would 
> result in unnecessary JMSExceptions on acknowledge/rollback/commit/recover.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (QPID-3521) failover process for the 0-8 client does not clear the pre-dispatch queue

2015-08-06 Thread Alex Rudyy (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-3521?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14659832#comment-14659832
 ] 

Alex Rudyy commented on QPID-3521:
--

Keith,
We updated the JIRA description about the rationale to acquire 
dispatcher/messageDelivery locks in failover thread.
Regarding, your comment about sorting out draining queue functionality. Yes, it 
make sense to move it into the corresponding subclasses

> failover process for the 0-8 client does not clear the pre-dispatch queue
> -
>
> Key: QPID-3521
> URL: https://issues.apache.org/jira/browse/QPID-3521
> Project: Qpid
>  Issue Type: Bug
>  Components: Java Client
>Reporter: Robbie Gemmell
>Assignee: Alex Rudyy
>  Labels: failover
> Attachments: clear-dispatch-queue-on-failover.diff
>
>
> failover process for the 0-8 client does not clear the pre-dispatch queue, 
> only the consumer receive queue.
> This is currently masked by an issue with the rollbackMark. The changes made 
> in QPID-3546 to fix the 0-10 client path need to be applied to the 0-8/9/9-1 
> client path when this issue is resolved.
> We need to clear the pre-dispatch queue on failover. Additionally, we need to 
> acquire dispatcher and messageDelivery locks in failover thread in order to 
> prevent the dispatcher from dispatching pre-fetched messages whilst failover 
> is in progress. If we are not holding the locks, the dispatcher could 
> continue dispatching prefetched messages into MessageListener which would 
> result in unnecessary JMSExceptions on acknowledge/rollback/commit/recover.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (QPID-3521) failover process for the 0-8 client does not clear the pre-dispatch queue

2015-08-06 Thread Rob Godfrey (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-3521?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14659826#comment-14659826
 ] 

Rob Godfrey commented on QPID-3521:
---

Looking at it briefly yesterday, my thoughts were in the same direction - 
moving more of the responsibility into AMQProtocolHandler and moving 
AMQProtocolHandler into the same package as AMQConnection.

In terms of visibility of methods, my view is that it is safer to "hide" the 
locks as much as possible and expose methods (like doWithAllLocks) where the 
locking order is guaranteed to be "safe".  By allowing/encouraging other 
classes to take out the locks on Connections/Sessions we are making it more 
difficult to ensure we always use safe lock acquisition orders.

So... I think I would be doing both 1) and 2) :-)

> failover process for the 0-8 client does not clear the pre-dispatch queue
> -
>
> Key: QPID-3521
> URL: https://issues.apache.org/jira/browse/QPID-3521
> Project: Qpid
>  Issue Type: Bug
>  Components: Java Client
>Reporter: Robbie Gemmell
>Assignee: Alex Rudyy
>  Labels: failover
> Attachments: clear-dispatch-queue-on-failover.diff
>
>
> failover process for the 0-8 client does not clear the pre-dispatch queue, 
> only the consumer receive queue.
> This is currently masked by an issue with the rollbackMark. The changes made 
> in QPID-3546 to fix the 0-10 client path need to be applied to the 0-8/9/9-1 
> client path when this issue is resolved.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (QPID-3521) failover process for the 0-8 client does not clear the pre-dispatch queue

2015-08-06 Thread Keith Wall (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-3521?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14659808#comment-14659808
 ] 

Keith Wall commented on QPID-3521:
--

A couple of comments:

# What is the rationale behind taking of AllConnectionAndSessionLocks for 
failover on the 0-10 and 0-8..0-91 paths?   I think it would be useful to write 
this down (on this Jira).
# We have a plethora on 'clean' dispatch queue type methods building up on 
AMQSession - some exclusively for 0-10 and some for 0-8..0-91 and these 
contribute to making the code hard to fathom.  I wonder if this methods should 
be pushed down to the respective subclasses?  (Sorting this out properly is 
beyond the scope of the Jira).


> failover process for the 0-8 client does not clear the pre-dispatch queue
> -
>
> Key: QPID-3521
> URL: https://issues.apache.org/jira/browse/QPID-3521
> Project: Qpid
>  Issue Type: Bug
>  Components: Java Client
>Reporter: Robbie Gemmell
>Assignee: Alex Rudyy
>  Labels: failover
> Attachments: clear-dispatch-queue-on-failover.diff
>
>
> failover process for the 0-8 client does not clear the pre-dispatch queue, 
> only the consumer receive queue.
> This is currently masked by an issue with the rollbackMark. The changes made 
> in QPID-3546 to fix the 0-10 client path need to be applied to the 0-8/9/9-1 
> client path when this issue is resolved.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (QPID-3521) failover process for the 0-8 client does not clear the pre-dispatch queue

2015-08-06 Thread Alex Rudyy (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-3521?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14659777#comment-14659777
 ] 

Alex Rudyy commented on QPID-3521:
--

The rational behind moving functionality from 
AMQConnection#doWithAllLocks(Runnable) into 
ConnectionHelper#doWithAllConnectionAndSessionLocks(Runnable) was to be able to 
run 0.8 failover with the all locks acquired without introduction of public 
method on AMQConnection or changing visibility to public for 
AMQConnection#doWithAllLocks(Runnable). 

At the moment we are considering to get rid of ConnectionHelper by either of 
following:
1) Restoring AMQConnection#doWithAllLocks(Runnable) and introduction of 
additional interface on AMQProtocolHandler with a single method responsible for 
failover running and having private implementation on AMQConnection which can 
be passed into AMQProtocolHandler constructor as a parameter
2) Restoring AMQConnection#doWithAllLocks(Runnable) and moving FailoverHandler 
into AMQConnection package, thus it can call  AMQConnection#doWithAllLocks

> failover process for the 0-8 client does not clear the pre-dispatch queue
> -
>
> Key: QPID-3521
> URL: https://issues.apache.org/jira/browse/QPID-3521
> Project: Qpid
>  Issue Type: Bug
>  Components: Java Client
>Reporter: Robbie Gemmell
>Assignee: Alex Rudyy
>  Labels: failover
> Attachments: clear-dispatch-queue-on-failover.diff
>
>
> failover process for the 0-8 client does not clear the pre-dispatch queue, 
> only the consumer receive queue.
> This is currently masked by an issue with the rollbackMark. The changes made 
> in QPID-3546 to fix the 0-10 client path need to be applied to the 0-8/9/9-1 
> client path when this issue is resolved.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (QPID-3521) failover process for the 0-8 client does not clear the pre-dispatch queue

2015-08-06 Thread Alex Rudyy (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-3521?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14659776#comment-14659776
 ] 

Alex Rudyy commented on QPID-3521:
--

The rational behind moving functionality from 
AMQConnection#doWithAllLocks(Runnable) into 
ConnectionHelper#doWithAllConnectionAndSessionLocks(Runnable) was to be able to 
run 0.8 failover with the all locks acquired without introduction of public 
method on AMQConnection or changing visibility to public for 
AMQConnection#doWithAllLocks(Runnable). 

At the moment we are considering to get rid of ConnectionHelper by either of 
following:
1) Restoring AMQConnection#doWithAllLocks(Runnable) and introduction of 
additional interface on AMQProtocolHandler with a single method responsible for 
failover running and having private implementation on AMQConnection which can 
be passed into AMQProtocolHandler constructor as a parameter
2) Restoring AMQConnection#doWithAllLocks(Runnable) and moving FailoverHandler 
into AMQConnection package, thus it can call  AMQConnection#doWithAllLocks

> failover process for the 0-8 client does not clear the pre-dispatch queue
> -
>
> Key: QPID-3521
> URL: https://issues.apache.org/jira/browse/QPID-3521
> Project: Qpid
>  Issue Type: Bug
>  Components: Java Client
>Reporter: Robbie Gemmell
>Assignee: Alex Rudyy
>  Labels: failover
> Attachments: clear-dispatch-queue-on-failover.diff
>
>
> failover process for the 0-8 client does not clear the pre-dispatch queue, 
> only the consumer receive queue.
> This is currently masked by an issue with the rollbackMark. The changes made 
> in QPID-3546 to fix the 0-10 client path need to be applied to the 0-8/9/9-1 
> client path when this issue is resolved.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (QPID-3521) failover process for the 0-8 client does not clear the pre-dispatch queue

2015-08-05 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-3521?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14658768#comment-14658768
 ] 

ASF subversion and git services commented on QPID-3521:
---

Commit 1694307 from oru...@apache.org in branch 'java/trunk'
[ https://svn.apache.org/r1694307 ]

QPID-3521: Fix failing test and remove 
FailoverBehaviourTest#testFailoverWhenConnectionStopped from cpp excludes

> failover process for the 0-8 client does not clear the pre-dispatch queue
> -
>
> Key: QPID-3521
> URL: https://issues.apache.org/jira/browse/QPID-3521
> Project: Qpid
>  Issue Type: Bug
>  Components: Java Client
>Reporter: Robbie Gemmell
>Assignee: Alex Rudyy
>  Labels: failover
> Attachments: clear-dispatch-queue-on-failover.diff
>
>
> failover process for the 0-8 client does not clear the pre-dispatch queue, 
> only the consumer receive queue.
> This is currently masked by an issue with the rollbackMark. The changes made 
> in QPID-3546 to fix the 0-10 client path need to be applied to the 0-8/9/9-1 
> client path when this issue is resolved.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (QPID-3521) failover process for the 0-8 client does not clear the pre-dispatch queue

2015-08-05 Thread Rob Godfrey (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-3521?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14658742#comment-14658742
 ] 

Rob Godfrey commented on QPID-3521:
---

What's the rationale for adding the ConnectionHelper class - moving the 
functionality from AMQConnection to a static method which then operates on the 
connection?

Refactoring in this way doesn't seem to add any tangible benefits and seems 
simply to move methods from the class they affect to a separate file.

There's certainly a lot of valuable refactoring that could be done around the 
client... but I'm not sure this is really an improvement

> failover process for the 0-8 client does not clear the pre-dispatch queue
> -
>
> Key: QPID-3521
> URL: https://issues.apache.org/jira/browse/QPID-3521
> Project: Qpid
>  Issue Type: Bug
>  Components: Java Client
>Reporter: Robbie Gemmell
>Assignee: Alex Rudyy
>  Labels: failover
> Attachments: clear-dispatch-queue-on-failover.diff
>
>
> failover process for the 0-8 client does not clear the pre-dispatch queue, 
> only the consumer receive queue.
> This is currently masked by an issue with the rollbackMark. The changes made 
> in QPID-3546 to fix the 0-10 client path need to be applied to the 0-8/9/9-1 
> client path when this issue is resolved.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (QPID-3521) failover process for the 0-8 client does not clear the pre-dispatch queue

2015-08-05 Thread Keith Wall (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-3521?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14658682#comment-14658682
 ] 

Keith Wall commented on QPID-3521:
--

It appears that commit r1694254 is causing a unit test failure:

{noformat}
Running org.apache.qpid.client.AMQSession_0_8Test
Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.682 sec <<< 
FAILURE! - in org.apache.qpid.client.AMQSession_0_8Test
testResubscribe(org.apache.qpid.client.AMQSession_0_8Test)  Time elapsed: 0.369 
sec  <<< FAILURE!
org.mockito.exceptions.verification.WantedButNotInvoked:
Wanted but not invoked:
unprocessedMessage.dispatch(
org.apache.qpid.client.AMQSession_0_8@6f7923a5
);
-> at 
org.apache.qpid.client.AMQSession_0_8Test.testResubscribe(AMQSession_0_8Test.java:165)

However, there were other interactions with this mock:
-> at org.apache.qpid.client.AMQSession.messageReceived(AMQSession.java:1712)

at 
org.apache.qpid.client.AMQSession_0_8Test.testResubscribe(AMQSession_0_8Test.java:165)


Results :

Failed tests:
  
AMQSession_0_8Test>QpidTestCase.run:156->QpidTestCase.runTest:171->testResubscribe:165
Wanted but not invoked:
unprocessedMessage.dispatch(
org.apache.qpid.client.AMQSession_0_8@6f7923a5
);
-> at 
org.apache.qpid.client.AMQSession_0_8Test.testResubscribe(AMQSession_0_8Test.java:165)

However, there were other interactions with this mock:
-> at org.apache.qpid.client.AMQSession.messageReceived(AMQSession.java:1712)
{noformat}


> failover process for the 0-8 client does not clear the pre-dispatch queue
> -
>
> Key: QPID-3521
> URL: https://issues.apache.org/jira/browse/QPID-3521
> Project: Qpid
>  Issue Type: Bug
>  Components: Java Client
>Reporter: Robbie Gemmell
>Assignee: Keith Wall
>  Labels: failover
> Attachments: clear-dispatch-queue-on-failover.diff
>
>
> failover process for the 0-8 client does not clear the pre-dispatch queue, 
> only the consumer receive queue.
> This is currently masked by an issue with the rollbackMark. The changes made 
> in QPID-3546 to fix the 0-10 client path need to be applied to the 0-8/9/9-1 
> client path when this issue is resolved.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (QPID-3521) failover process for the 0-8 client does not clear the pre-dispatch queue

2015-08-05 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-3521?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14658427#comment-14658427
 ] 

ASF subversion and git services commented on QPID-3521:
---

Commit 1694254 from oru...@apache.org in branch 'java/trunk'
[ https://svn.apache.org/r1694254 ]

QPID-3521: [Java Client] Stop using dispatcher to clear pre-dispatch queue on 
0.8/0.9.x client in order to avoid dead locks.
   Address review comments.

> failover process for the 0-8 client does not clear the pre-dispatch queue
> -
>
> Key: QPID-3521
> URL: https://issues.apache.org/jira/browse/QPID-3521
> Project: Qpid
>  Issue Type: Bug
>  Components: Java Client
>Reporter: Robbie Gemmell
>Assignee: Keith Wall
>  Labels: failover
> Attachments: clear-dispatch-queue-on-failover.diff
>
>
> failover process for the 0-8 client does not clear the pre-dispatch queue, 
> only the consumer receive queue.
> This is currently masked by an issue with the rollbackMark. The changes made 
> in QPID-3546 to fix the 0-10 client path need to be applied to the 0-8/9/9-1 
> client path when this issue is resolved.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (QPID-3521) failover process for the 0-8 client does not clear the pre-dispatch queue

2015-08-04 Thread Alex Rudyy (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-3521?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14653924#comment-14653924
 ] 

Alex Rudyy commented on QPID-3521:
--

It seems that might changes causes the deadlock on 0-9 path when Session is 
closed whilst failover is in progress:

{noformat}
"Failover" prio=10 tid=0x7fe0d804e000 nid=0x657c waiting on condition 
[0x7fe0cf1f]
   java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for  <0xf41c2528> (a 
java.util.concurrent.CountDownLatch$Sync)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834)
at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:994)
at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1303)
at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:236)
at 
org.apache.qpid.client.AMQSession.drainDispatchQueue(AMQSession.java:2306)
at 
org.apache.qpid.client.AMQSession.drainDispatchQueueWithDispatcher(AMQSession.java:3697)
at 
org.apache.qpid.client.AMQSession_0_8.resubscribe(AMQSession_0_8.java:186)
at 
org.apache.qpid.client.AMQConnectionDelegate_8_0.resubscribeSessions(AMQConnectionDelegate_8_0.java:379)
at 
org.apache.qpid.client.AMQConnection.resubscribeSessions(AMQConnection.java:1387)
at 
org.apache.qpid.client.failover.FailoverHandler.run(FailoverHandler.java:221)
- locked <0xf35412c0> (a java.lang.Object)
at java.lang.Thread.run(Thread.java:745)

"Dispatcher-2-Conn-84" prio=10 tid=0x7fe1341c nid=0x657a waiting for 
monitor entry [0x7fe0cf4f3000]
   java.lang.Thread.State: BLOCKED (on object monitor)
at 
org.apache.qpid.client.AMQSession$Dispatcher.dispatchMessage(AMQSession.java:3492)
- waiting to lock <0xf35c8e78> (a java.lang.Object)
- locked <0xf3cbea70> (a java.lang.Object)
at 
org.apache.qpid.client.AMQSession$Dispatcher.access$1000(AMQSession.java:3279)
at org.apache.qpid.client.AMQSession.dispatch(AMQSession.java:3272)
at 
org.apache.qpid.client.message.UnprocessedMessage.dispatch(UnprocessedMessage.java:54)
at 
org.apache.qpid.client.AMQSession$Dispatcher.run(AMQSession.java:3410)
- locked <0xf3cbea70> (a java.lang.Object)
at java.lang.Thread.run(Thread.java:745)

"main" prio=10 tid=0x7fe134008800 nid=0x58f1 waiting for monitor entry 
[0x7fe13d822000]
   java.lang.Thread.State: BLOCKED (on object monitor)
at org.apache.qpid.client.AMQSession.close(AMQSession.java:728)
- waiting to lock <0xf35412c0> (a java.lang.Object)
- locked <0xf35c8e78> (a java.lang.Object)
at org.apache.qpid.client.AMQSession.close(AMQSession.java:447)
at 
org.apache.qpid.client.failover.FailoverBehaviourTest.sessionCloseWhileFailoverImpl(FailoverBehaviourTest.java:1705)
at 
org.apache.qpid.client.failover.FailoverBehaviourTest.testClientAcknowledgedSessionCloseWhileFailover(FailoverBehaviourTest.java:702)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at junit.framework.TestCase.runTest(TestCase.java:176)
at 
org.apache.qpid.test.utils.QpidTestCase.runTest(QpidTestCase.java:171)
at junit.framework.TestCase.runBare(TestCase.java:141)
at 
org.apache.qpid.test.utils.QpidBrokerTestCase.runBare(QpidBrokerTestCase.java:332)
at junit.framework.TestResult$1.protect(TestResult.java:122)
at junit.framework.TestResult.runProtected(TestResult.java:142)
at junit.framework.TestResult.run(TestResult.java:125)
at junit.framework.TestCase.run(TestCase.java:129)
at org.apache.qpid.test.utils.QpidTestCase.run(QpidTestCase.java:156)
at junit.framework.TestSuite.runTest(TestSuite.java:255)
at junit.framework.TestSuite.run(TestSuite.java:250)
at 
org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:84)
at 
org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264)
at 
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
at 
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
at 
org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBoote

[jira] [Commented] (QPID-3521) failover process for the 0-8 client does not clear the pre-dispatch queue

2015-08-04 Thread Alex Rudyy (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-3521?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14653332#comment-14653332
 ] 

Alex Rudyy commented on QPID-3521:
--

Keith,
I raised JIRA [QPID-6677|https://issues.apache.org/jira/browse/QPID-6677] to 
address your comment #1.
Regarding comment #2: The test does not only test stop functionality. The 
primary purpose of it is to make sure that pre-dispatch queue with messages is 
drained regardless whether dispatcher stopped or not.
I could not figure out the better way to make sure that messages are prefetched 
and have not get into the consumers queues. For that purpose, I stopped the 
queue from a dispatcher thread.
Regarding comment #3: I fill made the change to address pointed issue.
Regarding comment #4: I will implement the fix. It seems we got the separate 
JIRA about the issue 
[QPID-3520|https://issues.apache.org/jira/browse/QPID-3520]. It make sense to 
do as part of JIRA [QPID-3520|https://issues.apache.org/jira/browse/QPID-3520].

> failover process for the 0-8 client does not clear the pre-dispatch queue
> -
>
> Key: QPID-3521
> URL: https://issues.apache.org/jira/browse/QPID-3521
> Project: Qpid
>  Issue Type: Bug
>  Components: Java Client
>Reporter: Robbie Gemmell
>Assignee: Keith Wall
>  Labels: failover
> Attachments: clear-dispatch-queue-on-failover.diff
>
>
> failover process for the 0-8 client does not clear the pre-dispatch queue, 
> only the consumer receive queue.
> This is currently masked by an issue with the rollbackMark. The changes made 
> in QPID-3546 to fix the 0-10 client path need to be applied to the 0-8/9/9-1 
> client path when this issue is resolved.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (QPID-3521) failover process for the 0-8 client does not clear the pre-dispatch queue

2015-08-03 Thread Keith Wall (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-3521?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14652040#comment-14652040
 ] 

Keith Wall commented on QPID-3521:
--

A couple of comments:


# Code changes seem to make a functional change to the 0-10 Connection#stop 
path, but this is not called out in the JIRA.  I suggest a new JIRA describing 
the issue/user impact is appropriate.
# I like the fact that we are now testing failover + connectio#stop, but it is 
the test assumes internals of the Java Broker (the  statistic 
unacknowledgedMessages) and this is distasteful, as is spreading knowledge of 
the management interfaces across the test suite.  Why is it not sufficient 
countdown after the message listener's Connection#stop and kill the Broker to 
cause failover?
# AMQSession#stopExistingDispatcher is a check then act with the risk of a NPE 
if _dispatcher is nulled between. Copy the reference and then use the copy.
# AMQSession#drainDispatchQueueWithDispatcher use a try/finally to help ensure 
that the dispatcher cleanup flag is always returned to its unset state.


> failover process for the 0-8 client does not clear the pre-dispatch queue
> -
>
> Key: QPID-3521
> URL: https://issues.apache.org/jira/browse/QPID-3521
> Project: Qpid
>  Issue Type: Bug
>  Components: Java Client
>Reporter: Robbie Gemmell
>Assignee: Keith Wall
>  Labels: failover
> Attachments: clear-dispatch-queue-on-failover.diff
>
>
> failover process for the 0-8 client does not clear the pre-dispatch queue, 
> only the consumer receive queue.
> This is currently masked by an issue with the rollbackMark. The changes made 
> in QPID-3546 to fix the 0-10 client path need to be applied to the 0-8/9/9-1 
> client path when this issue is resolved.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (QPID-3521) failover process for the 0-8 client does not clear the pre-dispatch queue

2015-07-31 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-3521?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14648959#comment-14648959
 ] 

ASF subversion and git services commented on QPID-3521:
---

Commit 1693549 from oru...@apache.org in branch 'java/trunk'
[ https://svn.apache.org/r1693549 ]

QPID-3521: Remove not needed thread dump generation in the system test and 
count down dispatcher blocking latch in the final block

> failover process for the 0-8 client does not clear the pre-dispatch queue
> -
>
> Key: QPID-3521
> URL: https://issues.apache.org/jira/browse/QPID-3521
> Project: Qpid
>  Issue Type: Bug
>  Components: Java Client
>Reporter: Robbie Gemmell
>Assignee: Keith Wall
>  Labels: failover
> Attachments: clear-dispatch-queue-on-failover.diff
>
>
> failover process for the 0-8 client does not clear the pre-dispatch queue, 
> only the consumer receive queue.
> This is currently masked by an issue with the rollbackMark. The changes made 
> in QPID-3546 to fix the 0-10 client path need to be applied to the 0-8/9/9-1 
> client path when this issue is resolved.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org



[jira] [Commented] (QPID-3521) failover process for the 0-8 client does not clear the pre-dispatch queue

2015-07-31 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-3521?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14648928#comment-14648928
 ] 

ASF subversion and git services commented on QPID-3521:
---

Commit 1693542 from oru...@apache.org in branch 'java/trunk'
[ https://svn.apache.org/r1693542 ]

QPID-3521: Clear pre-dispatch queue in 0-8 client on failover process

> failover process for the 0-8 client does not clear the pre-dispatch queue
> -
>
> Key: QPID-3521
> URL: https://issues.apache.org/jira/browse/QPID-3521
> Project: Qpid
>  Issue Type: Bug
>  Components: Java Client
>Reporter: Robbie Gemmell
>Assignee: Alex Rudyy
>  Labels: failover
> Attachments: clear-dispatch-queue-on-failover.diff
>
>
> failover process for the 0-8 client does not clear the pre-dispatch queue, 
> only the consumer receive queue.
> This is currently masked by an issue with the rollbackMark. The changes made 
> in QPID-3546 to fix the 0-10 client path need to be applied to the 0-8/9/9-1 
> client path when this issue is resolved.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

-
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org