[infinispan-issues] [JBoss JIRA] (ISPN-2751) NPE after JBossMarshaller stops
Dan Berindei (JIRA)
jira-events at lists.jboss.org
Tue Jan 29 12:41:47 EST 2013
[ https://issues.jboss.org/browse/ISPN-2751?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12751139#comment-12751139 ]
Dan Berindei commented on ISPN-2751:
------------------------------------
I was actually able to reproduce this while running a test from the IDE.
I think I (we) understood the ISPN-2752 stacktrace incorrectly - {{GroupRequest.requests}} represents the requests sent from the local node, so the {{IllegalStateException}} is thrown when the JChannel shuts down and there are still requests waiting for responses from the other nodes. In that case, we send a CH_UPDATE from a background thread and we don't wait for that thread to end before shutting down the JChannel.
There is a somewhat similar mechanism on the receiving end, as well - when stopping, JChannel calls {{shutdownNow()}} on the TP thread pools, which interrupts the threads. But if the threads don't do any I/O, they don't get a {{InterruptedException}} and they proceed with their work.
In this case the OOB thread was actually was calling {{getorCreateComponent()}} on the GlobalComponentRegistry, which is synchronized. But the main thread was calling {{stop()}} on the GlobalComponentRegistry, which is also synchronized, at the same time. So the OOB thread could not proceed to do anything until the main thread finished stopping the cache manager (which included waiting 3 seconds for the OOB thread pool to shut down).
I think the problem is that {{AbstractComponentRegistry.stop()}} holds the component registry locked for too long. It should not hold the lock while it is invoking {{stop()}} on all the components.
> NPE after JBossMarshaller stops
> -------------------------------
>
> Key: ISPN-2751
> URL: https://issues.jboss.org/browse/ISPN-2751
> Project: Infinispan
> Issue Type: Bug
> Components: Marshalling
> Affects Versions: 5.2.0.CR2
> Reporter: Michal Linhard
> Assignee: Galder Zamarreño
> Priority: Minor
> Fix For: 5.2.0.Final
>
> Attachments: serverlogs.zip, serverlogs2.zip
>
>
> JBossMarshaller is used by JGroups even after it's stopped
> which produces NPE on nonexistent externalizerTable:
> https://github.com/infinispan/infinispan/blob/master/core/src/main/java/org/infinispan/marshall/jboss/JBossMarshaller.java#L154
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the infinispan-issues
mailing list