Effective October 27, 2012, online and email support for FuseSource products will move to Red Hat support channels. For more information, please see the JIRA Migration to Red Hat FAQ.
As of October 27th, please open all new issues in the Red Hat Customer Portal .
Issue Details (XML | Word | Printable)

Key: MB-1161
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: Dejan Bosanac
Reporter: Joe Luo
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
FUSE Message Broker

CachedLDAPAuthorizationMap can't reconnect to LDAP Server if the LDAP server was temporarily down

Created: 16/May/12 03:04 PM   Updated: 11/Jun/12 01:13 PM
Component/s: None
Affects Version/s: 5.5.1-fuse-04-01
Fix Version/s: 5.5.1-fuse-07-11

External Issue URL: https://issues.apache.org/jira/browse/AMQ-3845


 Description  « Hide
CachedLDAPAuthorizationMap can't reconnect to LDAP Server if the LDAP server was temporarily down.

To reproduce configure the CachedLDAPAuthorizationMap with a short "refreshInterval" and shutdown the ldap server ,wait > refreshInterval and start the ldap server again.

2012-05-16 15:51:31,425 | DEBUG | Updating authorization map! | org.apache.activemq.security.CachedLDAPAuthorizationMap | ActiveMQ Transport: tcp:///127.0.0.1:54055
2012-05-16 15:51:31,425 | ERROR | Error updating authorization map | org.apache.activemq.security.CachedLDAPAuthorizationMap | ActiveMQ Transport: tcp:///127.0.0.1:54055
javax.naming.CommunicationException: connection closed [Root exception is java.io.IOException: connection closed]; remaining name 'ou=Destination,ou=ActiveMQ,ou=system'
at com.sun.jndi.ldap.LdapCtx.doSearch(LdapCtx.java:1983)
at com.sun.jndi.ldap.LdapCtx.searchAux(LdapCtx.java:1827)
at com.sun.jndi.ldap.LdapCtx.c_search(LdapCtx.java:1752)
at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_search(ComponentDirContext.java:368)
at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:338)
at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:321)
at javax.naming.directory.InitialDirContext.search(InitialDirContext.java:248)
at org.apache.activemq.security.CachedLDAPAuthorizationMap.query(CachedLDAPAuthorizationMap.java:121)
at org.apache.activemq.security.CachedLDAPAuthorizationMap.getAllEntries(CachedLDAPAuthorizationMap.java:226)
at org.apache.activemq.security.DefaultAuthorizationMap.getReadACLs(DefaultAuthorizationMap.java:94)
at org.apache.activemq.security.AuthorizationBroker.addConsumer(AuthorizationBroker.java:113)
at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:89)
at org.apache.activemq.broker.MutableBrokerFilter.addConsumer(MutableBrokerFilter.java:95)
at org.apache.activemq.broker.TransportConnection.processAddConsumer(TransportConnection.java:558)
at org.apache.activemq.command.ConsumerInfo.visit(ConsumerInfo.java:349)
at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:318)
at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:181)
at org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
at org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:229)
at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:221)
at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:203)
at java.lang.Thread.run(Thread.java:680)
Caused by: java.io.IOException: connection closed
at com.sun.jndi.ldap.LdapClient.ensureOpen(LdapClient.java:1558)
at com.sun.jndi.ldap.LdapClient.search(LdapClient.java:503)
at com.sun.jndi.ldap.LdapCtx.doSearch(LdapCtx.java:1965)
... 23 more



 All   Comments   Change History      Sort Order: Ascending order - Click to sort in descending order
Dejan Bosanac added a comment - 11/Jun/12 01:13 PM
It's fixed and merged to 5.5.x-fuse and 5.5.1-fuse branches. You can also find a snapshot (20120611.122533-24) with the fix in the repo

http://repo.fusesource.com/nexus/content/repositories/snapshots/org/apache/activemq/apache-activemq/5.5.1.fuse-SNAPSHOT/

Besides main issue, some more cached ldap auth module fixes have been merged back: