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
>>>>
>>>>
>>>>
>>>>
>>>>
>

Reply via email to