You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Yanik Grignon (JIRA)" <ji...@apache.org> on 2007/03/06 01:00:21 UTC

[jira] Created: (AMQ-1188) Illegal character in hostname error on hosts with underscores in their host names

Illegal character in hostname error on hosts with underscores in their host names
---------------------------------------------------------------------------------

                 Key: AMQ-1188
                 URL: https://issues.apache.org/activemq/browse/AMQ-1188
             Project: ActiveMQ
          Issue Type: Bug
    Affects Versions: 4.1.0
         Environment: RHEL4 Update 4 ES x86_64
Sun JDK 1.4.2_08
            Reporter: Yanik Grignon
            Priority: Minor


On a machine where the hostname contains underscores (e.g. HS_RH64_A3_1) ActiveMQ fails to initialize with the stack trace below. This seems to be a problem with the TCP protocol handler since doing new URL("http://HS_RH64_A3_1.godzilla.local:61616") works fine.

2007-03-05 08:30:20,076 [WrapperSimpleAppMain] ERROR (BrokerService.java:412) - Failed to start ActiveMQ JMS Message Broker. Reason: java.io.IOException: Transp
ort Connector could not be registered in JMX: Illegal character in hostname at index 8: tcp://HS_RH64_A3_1.godzilla.local:61616
java.io.IOException: Transport Connector could not be registered in JMX: Illegal character in hostname at index 8: tcp://HS_RH64_A3_1.godzilla.local:61616
        at org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:25)
        at org.apache.activemq.broker.BrokerService.registerConnectorMBean(BrokerService.java:1079)
        at org.apache.activemq.broker.BrokerService.startTransportConnector(BrokerService.java:1508)
        at org.apache.activemq.broker.BrokerService.startAllConnectors(BrokerService.java:1468)
        at org.apache.activemq.broker.BrokerService.start(BrokerService.java:402)
        at org.apache.activemq.xbean.XBeanBrokerService.afterPropertiesSet(XBeanBrokerService.java:47)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1062)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1029)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:420)
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:245)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:141)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:242)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:156)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:290)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:348)
        at org.apache.xbean.spring.context.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:161)
        at org.apache.xbean.spring.context.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:51)
        at org.apache.activemq.xbean.XBeanBrokerFactory.createBroker(XBeanBrokerFactory.java:41)
        at org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:57)
        at org.apache.activemq.console.command.StartCommand.startBroker(StartCommand.java:82)
        at org.apache.activemq.console.command.StartCommand.runTask(StartCommand.java:47)
        at org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:50)
        at org.apache.activemq.console.command.ShellCommand.runTask(ShellCommand.java:82)
        at org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:50)
        at org.apache.activemq.console.command.ShellCommand.main(ShellCommand.java:46)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.apache.activemq.console.Main.runTaskClass(Main.java:159)
        at org.apache.activemq.console.Main.main(Main.java:91)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:197)
        at java.lang.Thread.run(Thread.java:595)
Caused by: java.io.IOException: Illegal character in hostname at index 8: tcp://HS_RH64_A3_1.godzilla.local:61616
        at org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:43)
        at org.apache.activemq.transport.tcp.TcpTransportServer.bind(TcpTransportServer.java:94)
        at org.apache.activemq.transport.tcp.TcpTransportFactory.doBind(TcpTransportFactory.java:56)
        at org.apache.activemq.transport.TransportFactory.bind(TransportFactory.java:109)
        at org.apache.activemq.broker.TransportConnector.createTransportServer(TransportConnector.java:270)
        at org.apache.activemq.broker.TransportConnector.getServer(TransportConnector.java:122)
        at org.apache.activemq.broker.TransportConnector.asManagedConnector(TransportConnector.java:100)
        at org.apache.activemq.broker.BrokerService.registerConnectorMBean(BrokerService.java:1072)
        ... 35 more
Caused by: java.net.URISyntaxException: Illegal character in hostname at index 8: tcp://HS_RH64_A3_1.godzilla.local:61616
        at java.net.URI$Parser.fail(URI.java:2816)
        at java.net.URI$Parser.parseHostname(URI.java:3355)
        at java.net.URI$Parser.parseServer(URI.java:3204)
        at java.net.URI$Parser.parseAuthority(URI.java:3123)
        at java.net.URI$Parser.parseHierarchical(URI.java:3065)
        at java.net.URI$Parser.parse(URI.java:3021)
        at java.net.URI.<init>(URI.java:663)
        at org.apache.activemq.transport.tcp.TcpTransportServer.bind(TcpTransportServer.java:91)
        ... 41 more


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (AMQ-1188) Illegal character in hostname error on hosts with underscores in their host names

Posted by "Yanik Grignon (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/AMQ-1188?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_38670 ] 

Yanik Grignon commented on AMQ-1188:
------------------------------------

I reproduce the same crash using new URI() in a test program. Looking at the RFC an underscore is in fact an invalid character in a host name. However, Linux lets you name a machine with underscores in the host name, so whether or not ActiveMQ should gracefully handle this case is still a relevant question. Also, the config file used to generate this issue was using localhost not the host name but the connector initialization code would still resolve it to the fully qualified host name of the machine resulting in the stack trace above.

> Illegal character in hostname error on hosts with underscores in their host names
> ---------------------------------------------------------------------------------
>
>                 Key: AMQ-1188
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1188
>             Project: ActiveMQ
>          Issue Type: Bug
>    Affects Versions: 4.1.0
>         Environment: RHEL4 Update 4 ES x86_64
> Sun JDK 1.4.2_08
>            Reporter: Yanik Grignon
>            Priority: Minor
>
> On a machine where the hostname contains underscores (e.g. HS_RH64_A3_1) ActiveMQ fails to initialize with the stack trace below. This seems to be a problem with the TCP protocol handler since doing new URL("http://HS_RH64_A3_1.godzilla.local:61616") works fine.
> 2007-03-05 08:30:20,076 [WrapperSimpleAppMain] ERROR (BrokerService.java:412) - Failed to start ActiveMQ JMS Message Broker. Reason: java.io.IOException: Transp
> ort Connector could not be registered in JMX: Illegal character in hostname at index 8: tcp://HS_RH64_A3_1.godzilla.local:61616
> java.io.IOException: Transport Connector could not be registered in JMX: Illegal character in hostname at index 8: tcp://HS_RH64_A3_1.godzilla.local:61616
>         at org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:25)
>         at org.apache.activemq.broker.BrokerService.registerConnectorMBean(BrokerService.java:1079)
>         at org.apache.activemq.broker.BrokerService.startTransportConnector(BrokerService.java:1508)
>         at org.apache.activemq.broker.BrokerService.startAllConnectors(BrokerService.java:1468)
>         at org.apache.activemq.broker.BrokerService.start(BrokerService.java:402)
>         at org.apache.activemq.xbean.XBeanBrokerService.afterPropertiesSet(XBeanBrokerService.java:47)
>         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1062)
>         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1029)
>         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:420)
>         at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:245)
>         at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:141)
>         at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:242)
>         at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:156)
>         at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:290)
>         at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:348)
>         at org.apache.xbean.spring.context.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:161)
>         at org.apache.xbean.spring.context.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:51)
>         at org.apache.activemq.xbean.XBeanBrokerFactory.createBroker(XBeanBrokerFactory.java:41)
>         at org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:57)
>         at org.apache.activemq.console.command.StartCommand.startBroker(StartCommand.java:82)
>         at org.apache.activemq.console.command.StartCommand.runTask(StartCommand.java:47)
>         at org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:50)
>         at org.apache.activemq.console.command.ShellCommand.runTask(ShellCommand.java:82)
>         at org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:50)
>         at org.apache.activemq.console.command.ShellCommand.main(ShellCommand.java:46)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:585)
>         at org.apache.activemq.console.Main.runTaskClass(Main.java:159)
>         at org.apache.activemq.console.Main.main(Main.java:91)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:585)
>         at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:197)
>         at java.lang.Thread.run(Thread.java:595)
> Caused by: java.io.IOException: Illegal character in hostname at index 8: tcp://HS_RH64_A3_1.godzilla.local:61616
>         at org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:43)
>         at org.apache.activemq.transport.tcp.TcpTransportServer.bind(TcpTransportServer.java:94)
>         at org.apache.activemq.transport.tcp.TcpTransportFactory.doBind(TcpTransportFactory.java:56)
>         at org.apache.activemq.transport.TransportFactory.bind(TransportFactory.java:109)
>         at org.apache.activemq.broker.TransportConnector.createTransportServer(TransportConnector.java:270)
>         at org.apache.activemq.broker.TransportConnector.getServer(TransportConnector.java:122)
>         at org.apache.activemq.broker.TransportConnector.asManagedConnector(TransportConnector.java:100)
>         at org.apache.activemq.broker.BrokerService.registerConnectorMBean(BrokerService.java:1072)
>         ... 35 more
> Caused by: java.net.URISyntaxException: Illegal character in hostname at index 8: tcp://HS_RH64_A3_1.godzilla.local:61616
>         at java.net.URI$Parser.fail(URI.java:2816)
>         at java.net.URI$Parser.parseHostname(URI.java:3355)
>         at java.net.URI$Parser.parseServer(URI.java:3204)
>         at java.net.URI$Parser.parseAuthority(URI.java:3123)
>         at java.net.URI$Parser.parseHierarchical(URI.java:3065)
>         at java.net.URI$Parser.parse(URI.java:3021)
>         at java.net.URI.<init>(URI.java:663)
>         at org.apache.activemq.transport.tcp.TcpTransportServer.bind(TcpTransportServer.java:91)
>         ... 41 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (AMQ-1188) Illegal character in hostname error on hosts with underscores in their host names

Posted by "james strachan (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQ-1188?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

james strachan resolved AMQ-1188.
---------------------------------

       Resolution: Fixed
    Fix Version/s: 4.2.0

FWIW a workaround is probably to use the IP address in the config file (its only when using the localhost that we try and resolve it).

I've added a fix to trunk to work around this where if the URI is invalid we try to use the IP address in the URI instead. Let us know if that doesn't fix it and we can reopen this issue

> Illegal character in hostname error on hosts with underscores in their host names
> ---------------------------------------------------------------------------------
>
>                 Key: AMQ-1188
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1188
>             Project: ActiveMQ
>          Issue Type: Bug
>    Affects Versions: 4.1.0
>         Environment: RHEL4 Update 4 ES x86_64
> Sun JDK 1.4.2_08
>            Reporter: Yanik Grignon
>            Priority: Minor
>             Fix For: 4.2.0
>
>
> On a machine where the hostname contains underscores (e.g. HS_RH64_A3_1) ActiveMQ fails to initialize with the stack trace below. This seems to be a problem with the TCP protocol handler since doing new URL("http://HS_RH64_A3_1.godzilla.local:61616") works fine.
> 2007-03-05 08:30:20,076 [WrapperSimpleAppMain] ERROR (BrokerService.java:412) - Failed to start ActiveMQ JMS Message Broker. Reason: java.io.IOException: Transp
> ort Connector could not be registered in JMX: Illegal character in hostname at index 8: tcp://HS_RH64_A3_1.godzilla.local:61616
> java.io.IOException: Transport Connector could not be registered in JMX: Illegal character in hostname at index 8: tcp://HS_RH64_A3_1.godzilla.local:61616
>         at org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:25)
>         at org.apache.activemq.broker.BrokerService.registerConnectorMBean(BrokerService.java:1079)
>         at org.apache.activemq.broker.BrokerService.startTransportConnector(BrokerService.java:1508)
>         at org.apache.activemq.broker.BrokerService.startAllConnectors(BrokerService.java:1468)
>         at org.apache.activemq.broker.BrokerService.start(BrokerService.java:402)
>         at org.apache.activemq.xbean.XBeanBrokerService.afterPropertiesSet(XBeanBrokerService.java:47)
>         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1062)
>         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1029)
>         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:420)
>         at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:245)
>         at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:141)
>         at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:242)
>         at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:156)
>         at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:290)
>         at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:348)
>         at org.apache.xbean.spring.context.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:161)
>         at org.apache.xbean.spring.context.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:51)
>         at org.apache.activemq.xbean.XBeanBrokerFactory.createBroker(XBeanBrokerFactory.java:41)
>         at org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:57)
>         at org.apache.activemq.console.command.StartCommand.startBroker(StartCommand.java:82)
>         at org.apache.activemq.console.command.StartCommand.runTask(StartCommand.java:47)
>         at org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:50)
>         at org.apache.activemq.console.command.ShellCommand.runTask(ShellCommand.java:82)
>         at org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:50)
>         at org.apache.activemq.console.command.ShellCommand.main(ShellCommand.java:46)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:585)
>         at org.apache.activemq.console.Main.runTaskClass(Main.java:159)
>         at org.apache.activemq.console.Main.main(Main.java:91)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:585)
>         at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:197)
>         at java.lang.Thread.run(Thread.java:595)
> Caused by: java.io.IOException: Illegal character in hostname at index 8: tcp://HS_RH64_A3_1.godzilla.local:61616
>         at org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:43)
>         at org.apache.activemq.transport.tcp.TcpTransportServer.bind(TcpTransportServer.java:94)
>         at org.apache.activemq.transport.tcp.TcpTransportFactory.doBind(TcpTransportFactory.java:56)
>         at org.apache.activemq.transport.TransportFactory.bind(TransportFactory.java:109)
>         at org.apache.activemq.broker.TransportConnector.createTransportServer(TransportConnector.java:270)
>         at org.apache.activemq.broker.TransportConnector.getServer(TransportConnector.java:122)
>         at org.apache.activemq.broker.TransportConnector.asManagedConnector(TransportConnector.java:100)
>         at org.apache.activemq.broker.BrokerService.registerConnectorMBean(BrokerService.java:1072)
>         ... 35 more
> Caused by: java.net.URISyntaxException: Illegal character in hostname at index 8: tcp://HS_RH64_A3_1.godzilla.local:61616
>         at java.net.URI$Parser.fail(URI.java:2816)
>         at java.net.URI$Parser.parseHostname(URI.java:3355)
>         at java.net.URI$Parser.parseServer(URI.java:3204)
>         at java.net.URI$Parser.parseAuthority(URI.java:3123)
>         at java.net.URI$Parser.parseHierarchical(URI.java:3065)
>         at java.net.URI$Parser.parse(URI.java:3021)
>         at java.net.URI.<init>(URI.java:663)
>         at org.apache.activemq.transport.tcp.TcpTransportServer.bind(TcpTransportServer.java:91)
>         ... 41 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.