[ https://issues.apache.org/jira/browse/STORM-3141?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jungtaek Lim resolved STORM-3141. --------------------------------- Resolution: Fixed Fix Version/s: 2.0.0 Looks like Bobby forgot to close this. Marked as resolved. Thanks again [~Srdo]! > NPE in WorkerState.transferLocalBatch when receiving messages for a task that > isn't the first task assigned to the executor > --------------------------------------------------------------------------------------------------------------------------- > > Key: STORM-3141 > URL: https://issues.apache.org/jira/browse/STORM-3141 > Project: Apache Storm > Issue Type: Bug > Components: storm-client > Affects Versions: 2.0.0 > Reporter: Stig Rohde Døssing > Assignee: Stig Rohde Døssing > Priority: Critical > Labels: pull-request-available > Fix For: 2.0.0 > > Time Spent: 40m > Remaining Estimate: 0h > > {code} > 2018-07-02 20:32:28.944 [Worker-Transfer] ERROR org.apache.storm.utils.Utils > - Async loop died! > java.lang.NullPointerException: null > at > org.apache.storm.daemon.worker.WorkerState.transferLocalBatch(WorkerState.java:538) > ~[storm-client-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT] > at > org.apache.storm.messaging.DeserializingConnectionCallback.recv(DeserializingConnectionCallback.java:71) > ~[storm-client-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT] > at > org.apache.storm.messaging.local.Context$LocalClient.send(Context.java:194) > ~[storm-client-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT] > at org.apache.storm.utils.TransferDrainer.send(TransferDrainer.java:53) > ~[storm-client-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT] > at > org.apache.storm.daemon.worker.WorkerTransfer.flush(WorkerTransfer.java:100) > ~[storm-client-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT] > at org.apache.storm.utils.JCQueue.consumeImpl(JCQueue.java:146) > ~[storm-client-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT] > at org.apache.storm.utils.JCQueue.consume(JCQueue.java:110) > ~[storm-client-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT] > at org.apache.storm.utils.JCQueue.consume(JCQueue.java:101) > ~[storm-client-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT] > at > org.apache.storm.daemon.worker.WorkerTransfer.lambda$makeTransferThread$0(WorkerTransfer.java:82) > ~[storm-client-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT] > at org.apache.storm.utils.Utils$2.run(Utils.java:353) > [storm-client-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT] > at java.lang.Thread.run(Thread.java:748) [?:1.8.0_144] > 2018-07-02 20:32:28.945 [Worker-Transfer] ERROR org.apache.storm.utils.Utils > - Async loop died! > java.lang.RuntimeException: java.lang.NullPointerException > at org.apache.storm.utils.Utils$2.run(Utils.java:368) > ~[storm-client-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT] > at java.lang.Thread.run(Thread.java:748) [?:1.8.0_144] > Caused by: java.lang.NullPointerException > at > org.apache.storm.daemon.worker.WorkerState.transferLocalBatch(WorkerState.java:538) > ~[storm-client-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT] > at > org.apache.storm.messaging.DeserializingConnectionCallback.recv(DeserializingConnectionCallback.java:71) > ~[storm-client-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT] > at > org.apache.storm.messaging.local.Context$LocalClient.send(Context.java:194) > ~[storm-client-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT] > at org.apache.storm.utils.TransferDrainer.send(TransferDrainer.java:53) > ~[storm-client-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT] > at > org.apache.storm.daemon.worker.WorkerTransfer.flush(WorkerTransfer.java:100) > ~[storm-client-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT] > at org.apache.storm.utils.JCQueue.consumeImpl(JCQueue.java:146) > ~[storm-client-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT] > at org.apache.storm.utils.JCQueue.consume(JCQueue.java:110) > ~[storm-client-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT] > at org.apache.storm.utils.JCQueue.consume(JCQueue.java:101) > ~[storm-client-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT] > at > org.apache.storm.daemon.worker.WorkerTransfer.lambda$makeTransferThread$0(WorkerTransfer.java:82) > ~[storm-client-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT] > at org.apache.storm.utils.Utils$2.run(Utils.java:353) > ~[storm-client-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT] > ... 1 more > {code} > When tuples are received, the method looks up which JCQueue to send to. It > does this with the tuple destination task id. The map it looks in only has > the queues by the starting task id of the executor's range, so if the > destination is e.g. task 4 for an executor with assignment [3, 4], we hit an > NPE. -- This message was sent by Atlassian JIRA (v7.6.3#76005)