[jboss-jira] [JBoss JIRA] (JGRP-2261) NPE in FD_ALL2

Bela Ban (JIRA) issues at jboss.org
Fri Apr 27 05:54:00 EDT 2018


     [ https://issues.jboss.org/browse/JGRP-2261?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Bela Ban resolved JGRP-2261.
----------------------------
    Resolution: Done


This is caused by filter HAS_HEADER not checking for null messages. Null messages can happen when MessageBatch.remove(msg) is called.
Fixed by adding a null check to the HAS_HEADER filter.

> NPE in FD_ALL2
> --------------
>
>                 Key: JGRP-2261
>                 URL: https://issues.jboss.org/browse/JGRP-2261
>             Project: JGroups
>          Issue Type: Bug
>    Affects Versions: 4.0.10
>         Environment: WildFly 12.0.0.Final
>            Reporter: Rich DiCroce
>            Assignee: Bela Ban
>             Fix For: 4.0.12
>
>
> I'm seeing a NPE in FD_ALL2 from time to time. Not consistent but the reason isn't hard to see.  Stack trace:
> {code}
> 16:08:06,244 ERROR [stderr] (thread-10,ee,RCD_GP (flags=0), site-id=DEFAULT, rack-id=null, machine-id=null)) Exception in thread "thread-10,ee,RCD_GP (flags=0), site-id=DEFAULT, rack-id=null, machine-id=null)" java.lang.NullPointerException
> 16:08:06,244 ERROR [stderr] (thread-10,ee,RCD_GP (flags=0), site-id=DEFAULT, rack-id=null, machine-id=null)) 	at org.jgroups.protocols.FD_ALL2.lambda$new$0(FD_ALL2.java:83)
> 16:08:06,245 ERROR [stderr] (thread-10,ee,RCD_GP (flags=0), site-id=DEFAULT, rack-id=null, machine-id=null)) 	at org.jgroups.util.MessageBatch.replaceIf(MessageBatch.java:220)
> 16:08:06,245 ERROR [stderr] (thread-10,ee,RCD_GP (flags=0), site-id=DEFAULT, rack-id=null, machine-id=null)) 	at org.jgroups.protocols.FD_ALL2.up(FD_ALL2.java:186)
> 16:08:06,245 ERROR [stderr] (thread-10,ee,RCD_GP (flags=0), site-id=DEFAULT, rack-id=null, machine-id=null)) 	at org.jgroups.stack.Protocol.up(Protocol.java:372)
> 16:08:06,245 ERROR [stderr] (thread-10,ee,RCD_GP (flags=0), site-id=DEFAULT, rack-id=null, machine-id=null)) 	at org.jgroups.stack.Protocol.up(Protocol.java:372)
> 16:08:06,246 ERROR [stderr] (thread-10,ee,RCD_GP (flags=0), site-id=DEFAULT, rack-id=null, machine-id=null)) 	at org.jgroups.stack.Protocol.up(Protocol.java:372)
> 16:08:06,246 ERROR [stderr] (thread-10,ee,RCD_GP (flags=0), site-id=DEFAULT, rack-id=null, machine-id=null)) 	at org.jgroups.protocols.TP.passBatchUp(TP.java:1274)
> 16:08:06,246 ERROR [stderr] (thread-10,ee,RCD_GP (flags=0), site-id=DEFAULT, rack-id=null, machine-id=null)) 	at org.jgroups.util.SubmitToThreadPool$BatchHandler.passBatchUp(SubmitToThreadPool.java:140)
> 16:08:06,246 ERROR [stderr] (thread-10,ee,RCD_GP (flags=0), site-id=DEFAULT, rack-id=null, machine-id=null)) 	at org.jgroups.util.SubmitToThreadPool$BatchHandler.run(SubmitToThreadPool.java:136)
> 16:08:06,246 ERROR [stderr] (thread-10,ee,RCD_GP (flags=0), site-id=DEFAULT, rack-id=null, machine-id=null)) 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> 16:08:06,246 ERROR [stderr] (thread-10,ee,RCD_GP (flags=0), site-id=DEFAULT, rack-id=null, machine-id=null)) 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> 16:08:06,247 ERROR [stderr] (thread-10,ee,RCD_GP (flags=0), site-id=DEFAULT, rack-id=null, machine-id=null)) 	at org.jboss.as.clustering.jgroups.ClassLoaderThreadFactory.lambda$newThread$0(ClassLoaderThreadFactory.java:52)
> 16:08:06,247 ERROR [stderr] (thread-10,ee,RCD_GP (flags=0), site-id=DEFAULT, rack-id=null, machine-id=null)) 	at java.lang.Thread.run(Thread.java:748)
> {code}
> HAS_HEADER is assuming msg is non-null, but MessageBatch makes it clear that it's valid for elements of the batch to be null, and replaceIf() doesn't perform a null check.



--
This message was sent by Atlassian JIRA
(v7.5.0#75005)


More information about the jboss-jira mailing list