Hi Kishore, That's right, the node doesn't process any state transitions. They should have been logged in the first set of logs had they occurred.
Thanks, Steph On 16 Feb 2015 07:28, "kishore g" <[email protected]> wrote: > Hi Steph, > > When the NPE occurs, do you get the state transition callbacks? > > thanks, > Kishore G > > > > On Sun, Feb 15, 2015 at 11:23 PM, Steph Meslin-Weber <[email protected] > > wrote: > >> Unfortunately it appears that when the NPE occurs, dropping the >> participant no longer cleans up the related INSTANCE node. Perhaps some >> state is lost? >> >> Thanks, >> Steph >> On 16 Feb 2015 06:52, "Zhen Zhang" <[email protected]> wrote: >> >>> I think the NPE is not fatal. It happens when no message handler factory >>> is registered for this message type. The message will not be removed and >>> remain in UNREAD state. Later when the message handler factory is >>> registered via: >>> DefaultMessagingService#registerMessageHandlerFactory, we will send a >>> NOP message, which will in turn trigger HelixTaskExecutor to process all >>> UNREAD messages. We should definitely fix this by logging a warning message >>> instead of throwing an NPE. >>> >>> Thanks, >>> Jason >>> >>> >>> On Sun, Feb 15, 2015 at 7:30 PM, kishore g <[email protected]> wrote: >>> >>>> Controller assuming the state transition occurred is even more >>>> dangerous. >>>> >>>> >>>> >>>> >>>> >>>> On Sun, Feb 15, 2015 at 7:18 PM, [email protected] <[email protected]> >>>> wrote: >>>> >>>>> In my experience it was fatal. The callback would jot be called but the >>>>> controller would somehow assume the state transition occurred. >>>>> On Feb 15, 2015 7:13 PM, "kishore g" <[email protected]> wrote: >>>>> >>>>> > Thanks Vlad. That explains the problem. That also explains how adding >>>>> > sleep of 3seconds work. >>>>> > >>>>> > Jason, is this exception fatal?. Will the message be processed again >>>>> after >>>>> > the handler is added. >>>>> > >>>>> > thanks, >>>>> > Kishore G >>>>> > >>>>> > On Sun, Feb 15, 2015 at 6:41 PM, [email protected] < >>>>> [email protected]> >>>>> > wrote: >>>>> > >>>>> >> https://issues.apache.org/jira/browse/HELIX-548 >>>>> >> On Feb 15, 2015 6:38 PM, "kishore g" <[email protected]> wrote: >>>>> >> >>>>> >> > Hi Vlad, >>>>> >> > >>>>> >> > Was there any jira associated with it? >>>>> >> > >>>>> >> > thanks. >>>>> >> > Kishore G >>>>> >> > >>>>> >> > On Sun, Feb 15, 2015 at 4:36 PM, [email protected] < >>>>> [email protected]> >>>>> >> > wrote: >>>>> >> > >>>>> >> >> Looks like the same problem we encountered recently. >>>>> >> >> >>>>> >> >> Regards, >>>>> >> >> Vlad >>>>> >> >> On Feb 15, 2015 4:35 PM, "kishore g" <[email protected]> >>>>> wrote: >>>>> >> >> >>>>> >> >> > Steph described this problem on IRC. >>>>> >> >> > >>>>> >> >> > He is using 0.7.1. On connecting to cluster he gets this NPE >>>>> >> >> > >>>>> >> >> > http://pastebin.com/YE3fwK5i >>>>> >> >> > >>>>> >> >> > java.lang.NullPointerException >>>>> >> >> > at >>>>> >> >> > >>>>> >> >> >>>>> >> >>>>> org.apache.helix.messaging.handling.HelixTaskExecutor.createMessageHandler(HelixTaskExecutor.java:661) >>>>> >> >> > at >>>>> >> >> > >>>>> >> >> >>>>> >> >>>>> org.apache.helix.messaging.handling.HelixTaskExecutor.onMessage(HelixTaskExecutor.java:581) >>>>> >> >> > at >>>>> >> >> > >>>>> >> >> >>>>> >> >>>>> org.apache.helix.manager.zk.ZkCallbackHandler.invoke(ZkCallbackHandler.java:202) >>>>> >> >> > at >>>>> >> >> > >>>>> >> >> >>>>> >> >>>>> org.apache.helix.manager.zk.ZkCallbackHandler.init(ZkCallbackHandler.java:336) >>>>> >> >> > at >>>>> >> >> > >>>>> >> >> >>>>> >> >>>>> org.apache.helix.manager.zk.ZkCallbackHandler.<init>(ZkCallbackHandler.java:130) >>>>> >> >> > at >>>>> >> >> > >>>>> >> >> >>>>> >> >>>>> org.apache.helix.manager.zk.ZkHelixConnection.addListener(ZkHelixConnection.java:533) >>>>> >> >> > at >>>>> >> >> > >>>>> >> >> >>>>> >> >>>>> org.apache.helix.manager.zk.ZkHelixConnection.addMessageListener(ZkHelixConnection.java:267) >>>>> >> >> > at >>>>> >> >> > >>>>> >> >> >>>>> >> >>>>> org.apache.helix.manager.zk.ZkHelixParticipant.setupMsgHandler(ZkHelixParticipant.java:347) >>>>> >> >> > at >>>>> >> >> > >>>>> >> >> >>>>> >> >>>>> org.apache.helix.manager.zk.ZkHelixParticipant.init(ZkHelixParticipant.java:383) >>>>> >> >> > at >>>>> >> >> > >>>>> >> >> >>>>> >> >>>>> org.apache.helix.manager.zk.ZkHelixParticipant.onConnected(ZkHelixParticipant.java:401) >>>>> >> >> > at >>>>> >> >> > >>>>> >> >> >>>>> >> >>>>> org.apache.helix.manager.zk.ZkHelixParticipant.start(ZkHelixParticipant.java:428) >>>>> >> >> > at >>>>> >> >> > >>>>> >> >> >>>>> >> >>>>> com.example.ProtostuffServerNode.spinUpParticipant(ProtostuffServerNode.java:134) >>>>> >> >> > >>>>> >> >> > >>>>> >> >> > Here is his connection code. >>>>> >> >> > >>>>> >> >> > http://pastebin.com/QRfVU1tc >>>>> >> >> > >>>>> >> >> > private static HelixParticipant spinUpParticipant(HelixAdmin >>>>> admin, >>>>> >> >> > ParticipantId participantId) { >>>>> >> >> > LOGGER.info("Starting up "+participantId); >>>>> >> >> > HelixConnection connection = new >>>>> ZkHelixConnection( >>>>> >> >> > ZK_ADDRESS); >>>>> >> >> > connection.connect(); >>>>> >> >> > HelixParticipant participant = connection. >>>>> >> >> > createParticipant(CLUSTER_ID, participantId); >>>>> >> >> > StateMachineEngine stateMach = participant. >>>>> >> >> > getStateMachineEngine(); >>>>> >> >> > >>>>> >> >> > >>>>> StateTransitionHandlerFactory<LocalTransitionHandler> >>>>> >> >> > transitionHandlerFactory = new OnlineOfflineHandlerFactory(); >>>>> >> >> > >>>>> stateMach.registerStateModelFactory(STATE_MODEL_NAME, >>>>> >> >> > transitionHandlerFactory); >>>>> >> >> > participant.start(); >>>>> >> >> > >>>>> >> >> > admin.enableInstance(CLUSTER_NAME, >>>>> >> >> participantId.toString( >>>>> >> >> > ), true); >>>>> >> >> > >>>>> >> >> > return participant; >>>>> >> >> > } >>>>> >> >> > >>>>> >> >> > Adding 3s sleep after registerStateModelFactory works. Any >>>>> idea what >>>>> >> is >>>>> >> >> > happening. >>>>> >> >> > >>>>> >> >> > thanks, >>>>> >> >> > Kishore G >>>>> >> >> > >>>>> >> >> > >>>>> >> >> > >>>>> >> >> > >>>>> >> >> >>>>> >> > >>>>> >> > >>>>> >> >>>>> > >>>>> > >>>>> >>>> >>>> >>> >
