activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Josef Spillner (JIRA)" <j...@apache.org>
Subject [jira] Created: (AMQ-2272) JMX/transport connector exception due to lack of entropy in randomness device
Date Fri, 29 May 2009 06:59:50 GMT
JMX/transport connector exception due to lack of entropy in randomness device
-----------------------------------------------------------------------------

                 Key: AMQ-2272
                 URL: https://issues.apache.org/activemq/browse/AMQ-2272
             Project: ActiveMQ
          Issue Type: Bug
          Components: JMX
    Affects Versions: 5.2.0
         Environment: Linux / User-Mode-Linux virtualisation
            Reporter: Josef Spillner


[This report is probably not describing a bug in ActiveMQ itself, but it shows up when using
ActiveMQ and prevents it from functioning correctly, this is why I'm starting to report it
at this level of the stack. Depending on feedback, it can be propagated further down the stack.]

When running ActiveMQ on User-Mode-Linux, some of its parts (notably the transport connector
registration with JMX) fails because some random id cannot be created due to lack of entropy
in /dev/random. As opposed to /dev/urandom, /dev/random is known to not have a lot of entropy
and to block any read access until the pool is filled up again. This is a known, documented
and correct behaviour. For some reason, it seems that the Sun implementation's seed generator
accesses this device in non-blocking mode and fails to read random numbers. Or maybe it is
instrumented to do so from the code which uses it.

Among other issues, it means that the listener on port 61616 is running while the Stomp listener
on port 61613 won't be active. It would be nice to have someone with knowledge of the stack,
including the use of Spring, to see whose fault causes this issue.

This is the full backtrace:

ERROR: java.lang.Exception: org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'org.apache.activemq.xbean.XBeanBrokerService#0' defined in class
path resource [activemq.xml]: Invocation of init method failed; nested exception is java.io.IOException:
Transport Connector could not be registered in JMX: URLSeedGenerator file:/dev/random reached
end of file   
java.lang.Exception: org.springframework.beans.factory.BeanCreationException: Error creating
bean with name 'org.apache.activemq.xbean.XBeanBrokerService#0' defined in class path resource
[activemq.xml]: Invocation of init method failed; nested exception is java.io.IOException:
Transport Connector could not be registered in JMX: URLSeedGenerator file:/dev/random reached
end of file          
        at org.apache.activemq.console.command.StartCommand.runTask(StartCommand.java:99)
                                                                                         
                 
        at org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57)
                                                                                         
           
        at org.apache.activemq.console.command.ShellCommand.runTask(ShellCommand.java:129)
                                                                                         
                
        at org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57)
                                                                                         
           
        at org.apache.activemq.console.command.ShellCommand.main(ShellCommand.java:79)   
                                                                                         
                 
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)                   
                                                                                         
                 
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
                                                                                         
                 
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                                                                                         
          
        at java.lang.reflect.Method.invoke(Method.java:616)                              
                                                                                         
                 
        at org.apache.activemq.console.Main.runTaskClass(Main.java:225)                  
                                                                                         
                 
        at org.apache.activemq.console.Main.main(Main.java:106)                          
                                                                                         
                 
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with
name 'org.apache.activemq.xbean.XBeanBrokerService#0' defined in class path resource [activemq.xml]:
Invocation of init method failed; nested exception is java.io.IOException: Transport Connector
could not be registered in JMX: URLSeedGenerator file:/dev/random reached end of file    
               
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1337)
                                                
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
                                                   
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
                                                          
        at java.security.AccessController.doPrivileged(Native Method)                    
                                                                                         
                 
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
                                                     
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
                                                                                  
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:221)
                                                               
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
                                                                                    
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
                                                                                      
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
                                                                                      
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429)
                                                       
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:729)
                                                      
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:381)
                                                                              
        at org.apache.xbean.spring.context.ResourceXmlApplicationContext.<init>(ResourceXmlApplicationContext.java:64)
                                                                              
        at org.apache.xbean.spring.context.ResourceXmlApplicationContext.<init>(ResourceXmlApplicationContext.java:52)
                                                                              
        at org.apache.activemq.xbean.XBeanBrokerFactory.createApplicationContext(XBeanBrokerFactory.java:96)at
org.apache.activemq.xbean.XBeanBrokerFactory.createBroker(XBeanBrokerFactory.java:52) 
        at org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:71)  
                                                                                         
                 
        at org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:54)  
                                                                                         
                 
        at org.apache.activemq.console.command.StartCommand.startBroker(StartCommand.java:115)
                                                                                         
            
        at org.apache.activemq.console.command.StartCommand.runTask(StartCommand.java:74)
                                                                                         
                 
        ... 10 more                                                                      
                                                                                         
                 
Caused by: java.io.IOException: Transport Connector could not be registered in JMX: URLSeedGenerator
file:/dev/random reached end of file                                                     
      
        at org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:27)
                                                                                         
                 
        at org.apache.activemq.broker.BrokerService.registerConnectorMBean(BrokerService.java:1434)
                                                                                         
       
        at org.apache.activemq.broker.BrokerService.startTransportConnector(BrokerService.java:1893)
                                                                                         
      
        at org.apache.activemq.broker.BrokerService.startAllConnectors(BrokerService.java:1844)
                                                                                         
           
        at org.apache.activemq.broker.BrokerService.start(BrokerService.java:480)        
                                                                                         
                 
        at org.apache.activemq.xbean.XBeanBrokerService.afterPropertiesSet(XBeanBrokerService.java:52)
                                                                                         
    
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1368)
                                             
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1334)
                                                
        ... 30 more                                                                      
                                                                                         
                 
Caused by: java.lang.InternalError: URLSeedGenerator file:/dev/random reached end of file
                                                                                         
                 
        at sun.security.provider.SeedGenerator$URLSeedGenerator.getSeedByte(SeedGenerator.java:478)
                                                                                         
       
        at sun.security.provider.SeedGenerator.getSeedBytes(SeedGenerator.java:140)      
                                                                                         
                 
        at sun.security.provider.SeedGenerator.generateSeed(SeedGenerator.java:135)      
                                                                                         
                 
        at sun.security.provider.SecureRandom.engineGenerateSeed(SecureRandom.java:131)  
                                                                                         
                 
        at sun.security.provider.SecureRandom.engineNextBytes(SecureRandom.java:188)     
                                                                                         
                 
        at java.security.SecureRandom.nextBytes(SecureRandom.java:450)                   
                                                                                         
                 
        at java.security.SecureRandom.next(SecureRandom.java:472)                        
                                                                                         
                 
        at java.util.Random.nextInt(Random.java:204)                                     
                                                                                         
                 
        at sun.security.ssl.SSLContextImpl.engineInit(SSLContextImpl.java:102)           
                                                                                         
                 
        at javax.net.ssl.SSLContext.init(SSLContext.java:265)                            
                                                                                         
                 
        at org.apache.activemq.broker.SslContext.getSSLContext(SslContext.java:126)      
                                                                                         
                 
        at org.apache.activemq.transport.tcp.SslTransportFactory.createServerSocketFactory(SslTransportFactory.java:155)
                                                                            
        at org.apache.activemq.transport.tcp.SslTransportFactory.doBind(SslTransportFactory.java:76)
                                                                                         
      
        at org.apache.activemq.transport.TransportFactory.bind(TransportFactory.java:131)
                                                                                         
                 
        at org.apache.activemq.broker.TransportConnector.createTransportServer(TransportConnector.java:293)
                                                                                         
        at org.apache.activemq.broker.TransportConnector.getServer(TransportConnector.java:135)
                                                                                         
           
        at org.apache.activemq.broker.TransportConnector.asManagedConnector(TransportConnector.java:98)
                                                                                         
   
        at org.apache.activemq.broker.BrokerService.registerConnectorMBean(BrokerService.java:1428)
                                                                                         
       
        ... 36 more

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


Mime
View raw message