You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@zookeeper.apache.org by "Mohammad Arshad (Jira)" <ji...@apache.org> on 2022/04/07 11:16:00 UTC

[jira] [Comment Edited] (ZOOKEEPER-1875) NullPointerException in ClientCnxn$EventThread.processEvent

    [ https://issues.apache.org/jira/browse/ZOOKEEPER-1875?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17518799#comment-17518799 ] 

Mohammad Arshad edited comment on ZOOKEEPER-1875 at 4/7/22 11:15 AM:
---------------------------------------------------------------------

I think as proposed in the first patch we should skip the watcher processing if either watcher or pair.event is null, but we should also add warning so in future we can get better understanding of the use case from where problem is coming.
{code:java}
if (watcher != null && pair.event != null) {
    watcher.process(pair.event);
} else {
    LOG.warn(
        "Skipping watcher processing as watcher and pair.event cannot"
            + " be null. watcher={}, pair.event={}",
        watcher == null ? "null" : watcher.getClass().getName(),
        pair.event == null ? "null" : pair.event);
}
{code}


was (Author: arshad.mohammad):
I think as proposed in the first patch we should skip the watcher processing if either watcher or pair.event is null, but we should also add warning so in future we can get better understanding of the use case from where problem is coming.
{code:java}
if (watcher != null && pair.event != null) {
    watcher.process(pair.event);
} else {
    LOG.warn(
        "Skipping watcher processing as watcher or pair.event cannot"
            + " be null. watcher={}, pair.event={}",
        watcher == null ? "null" : watcher.getClass().getName(),
        pair.event == null ? "null" : pair.event);
}
{code}

> NullPointerException in ClientCnxn$EventThread.processEvent
> -----------------------------------------------------------
>
>                 Key: ZOOKEEPER-1875
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1875
>             Project: ZooKeeper
>          Issue Type: Bug
>          Components: java client
>    Affects Versions: 3.4.5, 3.4.10
>            Reporter: Jerry He
>            Assignee: Jerry He
>            Priority: Minor
>         Attachments: ZOOKEEPER-1875-trunk.patch, ZOOKEEPER-1875.patch, ZOOKEEPER-1875.patch
>
>
> We've been seeing NullPointerException while working on HBase:
> {code}
> 14/01/30 22:15:25 INFO zookeeper.ZooKeeper: Client environment:user.dir=/home/biadmin/hbase-trunk
> 14/01/30 22:15:25 INFO zookeeper.ZooKeeper: Initiating client connection, connectString=hdtest009:2181 sessionTimeout=90000 watcher=null
> 14/01/30 22:15:25 INFO zookeeper.ClientCnxn: Opening socket connection to server hdtest009/9.30.194.18:2181. Will not attempt to authenticate using SASL (Unable to locate a login configuration)
> 14/01/30 22:15:25 INFO zookeeper.ClientCnxn: Socket connection established to hdtest009/9.30.194.18:2181, initiating session
> 14/01/30 22:15:25 INFO zookeeper.ClientCnxn: Session establishment complete on server hdtest009/9.30.194.18:2181, sessionid = 0x143986213e67e48, negotiated timeout = 60000
> 14/01/30 22:15:25 ERROR zookeeper.ClientCnxn: Error while calling watcher
> java.lang.NullPointerException
>         at org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:519)
>         at org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:495)
> {code}
> The reason is the watcher is null in this part of the code:
> {code}
>        private void processEvent(Object event) {
>           try {
>               if (event instanceof WatcherSetEventPair) {
>                   // each watcher will process the event
>                   WatcherSetEventPair pair = (WatcherSetEventPair) event;
>                   for (Watcher watcher : pair.watchers) {
>                       try {
>                           watcher.process(pair.event);
>                       } catch (Throwable t) {
>                           LOG.error("Error while calling watcher ", t);
>                       }
>                   }
> {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)