[infinispan-issues] [JBoss JIRA] Commented: (ISPN-696) NPE during state transfer after restarting cache
Galder Zamarreño (JIRA)
jira-events at lists.jboss.org
Mon Oct 11 12:07:39 EDT 2010
[ https://jira.jboss.org/browse/ISPN-696?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12556371#action_12556371 ]
Galder Zamarreño commented on ISPN-696:
---------------------------------------
I've gone and look at the commits and hudson.
The change came in at: http://hudson.infinispan.org/hudson/job/Infinispan-4.2.x-JDK6-tcp/32/#showFailuresLink
That change seems to have fixed three tests from previous run:
http://hudson.infinispan.org/hudson/job/Infinispan-4.2.x-JDK6-tcp/org.infinispan$infinispan-core/31/testReport/org.infinispan.statetransfer/
as opposed to http://hudson.infinispan.org/hudson/job/Infinispan-4.2.x-JDK6-tcp/org.infinispan$infinispan-core/32/testReport/org.infinispan.statetransfer/
Funnily enough, I've run these state transfer tests after moving register code to start() and it looks fine.
I'm gonna run the whole testsuite again locally and see what it comes back with. If it looks good, I'll put it back and Manik can double check it when he gets back.
> NPE during state transfer after restarting cache
> ------------------------------------------------
>
> Key: ISPN-696
> URL: https://jira.jboss.org/browse/ISPN-696
> Project: Infinispan
> Issue Type: Bug
> Components: State transfer
> Affects Versions: 4.2.0.ALPHA2
> Reporter: Paul Ferraro
> Assignee: Galder Zamarreño
>
> When a named cache is restarted, and fetchInMemoryState = true, the state transfer initiated in StateTransferManager.start() causes a NPE, because the cache's ComponentRegistry does not get reregistered with the GlobalComponentRegistry.
> The NPE comes from InboundInvocationHandlerImpl:
> public void applyState(String cacheName, InputStream i) throws StateTransferException {
> getStateTransferManager(cacheName).applyState(i);
> }
> private StateTransferManager getStateTransferManager(String cacheName) throws StateTransferException {
> ComponentRegistry cr = gcr.getNamedComponentRegistry(cacheName);
> if (cr == null) {
> return null;
> }
> return cr.getComponent(StateTransferManager.class);
> }
> A quick glance at ComponentRegistry indicates that the registry is registered with the GlobalComponentRegistry in the constructor and unregistered in stop(). Because of the unbalanced logic, when the stopped component registry is restarted, it never gets re-registered with the GlobalComponentRegistry, hence the NPE during state transfer the second time around.
> This specific regression was introduced in revision 2384. Rolling back ComponentRegistry.java to revision 2273 resolves the issue.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the infinispan-issues
mailing list