After a bit of digging I think I know what's happening. I'm running in standalone mode on a Mac with IPv6. When I try to connect to "localhost" using
new ZooKeeper("localhost", 5000, this); I get the exception I posted earlier. When I use "127.0.0.1" it works fine. So it is an IPv6 issue (you were right!). I can fix the error by quoting the value properties, for example: org.apache.ZooKeeperService:name0=StandaloneServer_port-1,name1=Connections,name2="0:0:0:0:0:0:0:1%0",name3=0x11f4b7b4c34000e Note that name2 is in quotes. See http://java.sun.com/javase/6/docs/api/javax/management/ObjectName.html. I've created a patch for this in https://issues.apache.org/jira/browse/ZOOKEEPER-302. Not sure if this is a blocker or not for 3.1.0. It probably is if IPv6 is supported. What do you think? Thanks, Tom On Thu, Feb 5, 2009 at 11:42 PM, Patrick Hunt <ph...@apache.org> wrote: > I don't suppose you are running on an IPv6 system? > > Patrick > > Patrick Hunt wrote: >> >> Hi Tom, this is unusual - what's your environment like? OS and java >> version string would help to debug (zk config?). Mahadev (mac) and I >> (ubuntu/redhat) both running recent versions of java6 have just tried this >> and we can't reproduce it. >> >> We use the IP address & sessionid as the name of the connection jmx bean, >> so this is weird: >> >> ip=connection.getRemoteAddress().getAddress().getHostAddress(); >> >> here's an example name I see in jconsole: >> >> org.apache.ZooKeeperService:name0=StandaloneServer_port-1,name1=Connections,name2=127.0.0.1,name3=0x11f489f81260000 >> >> (btw, thank you sun for including the invalid name in the error message >> ;-) ) >> >> One thing I do notice is that printStackTrace is being called by our jmx >> code which should not be happening - that's why you are seeing this in on >> the console rather than just in the log (we log WARN then ignore the issue >> btw) . I'll enter a jira for this. >> https://issues.apache.org/jira/browse/ZOOKEEPER-300 >> >> Patrick >> >> Tom White wrote: >>> >>> I installed the candidate and got the following exception when >>> performing some basic operations. The operations succeeded - it looks >>> like a problem with JMX integration. Has anyone else seen this? >>> >>> Thanks, >>> Tom >>> >>> $ bin/zkServer.sh start >>> JMX enabled by default >>> -n Starting zookeeper ... >>> STARTED >>> loy:zookeeper-3.1.0 tom$ >>> javax.management.MalformedObjectNameException: Invalid character ':' >>> in value part of property >>> at javax.management.ObjectName.construct(ObjectName.java:602) >>> at javax.management.ObjectName.<init>(ObjectName.java:1394) >>> at >>> org.apache.zookeeper.jmx.MBeanRegistry.makeObjectName(MBeanRegistry.java:173) >>> at >>> org.apache.zookeeper.jmx.MBeanRegistry.register(MBeanRegistry.java:70) >>> at >>> org.apache.zookeeper.server.NIOServerCnxn.finishSessionInit(NIOServerCnxn.java:861) >>> at >>> org.apache.zookeeper.server.FinalRequestProcessor.processRequest(FinalRequestProcessor.java:145) >>> at >>> org.apache.zookeeper.server.SyncRequestProcessor.flush(SyncRequestProcessor.java:127) >>> at >>> org.apache.zookeeper.server.SyncRequestProcessor.run(SyncRequestProcessor.java:75) >>> java.lang.IllegalArgumentException: Null object name >>> at >>> com.sun.jmx.mbeanserver.MXBeanSupport.register(MXBeanSupport.java:138) >>> at >>> com.sun.jmx.mbeanserver.MBeanSupport.preRegister2(MBeanSupport.java:183) >>> at >>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:941) >>> at >>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:917) >>> at >>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:312) >>> at >>> com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:482) >>> at >>> org.apache.zookeeper.jmx.MBeanRegistry.register(MBeanRegistry.java:72) >>> at >>> org.apache.zookeeper.server.NIOServerCnxn.finishSessionInit(NIOServerCnxn.java:861) >>> at >>> org.apache.zookeeper.server.FinalRequestProcessor.processRequest(FinalRequestProcessor.java:145) >>> at >>> org.apache.zookeeper.server.SyncRequestProcessor.flush(SyncRequestProcessor.java:127) >>> at >>> org.apache.zookeeper.server.SyncRequestProcessor.run(SyncRequestProcessor.java:75) >>> >>> >>> On Thu, Feb 5, 2009 at 8:56 PM, Stu Hood <stuh...@mailtrust.com> wrote: >>>> >>>> +1 >>>> >>>> Thanks Patrick! >>>> >>>> >>>> -----Original Message----- >>>> From: "Patrick Hunt" <ph...@apache.org> >>>> Sent: Wednesday, February 4, 2009 6:33pm >>>> To: "zookeeper-dev@hadoop.apache.org" <zookeeper-dev@hadoop.apache.org> >>>> Subject: [VOTE] Release ZooKeeper 3.1.0 (candidate 1) >>>> >>>> I've created a new candidate (rc1) that fixes an issue raised by a user >>>> (thanks Stu!) during review: >>>> https://issues.apache.org/jira/browse/ZOOKEEPER-291 >>>> The release notes were also updated to reflect this change. >>>> >>>> Otw there are no other changes. >>>> >>>> *** Please download, test and VOTE before the >>>> *** vote closes EOD on Monday February 9.*** >>>> >>>> http://people.apache.org/~phunt/zookeeper-3.1.0-candidate-1/ >>>> >>>> Should we release this? >>>> >>>> Patrick >>>> >>>> >>>> >>>> >>>> >