We recently upgraded to SDK 3.5a (LCDS 2.6.1) and started to see sporadic deadlocks in LCDS's rtmp thread. These are difficult to reproduce in test environment but happens in production once every couple of days, sometimes even more frequently.
Here is the thread dump of the threads in lock. Found one Java-level deadlock "my-rtmp-SocketServer-WorkerThread-300": waiting to lock monitor 0x6a949ba4 (object 0x0b27f6e0, a flex.data.SequenceManager), which is held by "my-rtmp-SocketServer-Reactor4Writer" "my-rtmp-SocketServer-Reactor4Writer": waiting to lock monitor 0x6a90f2d4 (object 0x0b321d90, a java.util.ArrayList), which is held by "my-rtmp-SocketServer-Reactor2Writer" "my-rtmp-SocketServer-Reactor2Writer": waiting to lock monitor 0x6a6304a4 (object 0x0b27fc88, a java.util.HashMap), which is held by "my-rtmp-SocketServer-Reactor4Writer" Java stack information for the threads listed above "my-rtmp-SocketServer-WorkerThread-300": at flex.data.SequenceManager.createSequence(SequenceManager.java:2245) - waiting to lock <0x0b27f6e0> (a flex.data.SequenceManager) at flex.data.SequenceManager.manageSequence(SequenceManager.java:786) at flex.data.SequenceManager.manageSequence(SequenceManager.java:755) at flex.data.DataService.serviceMessage(DataService.java:571) at flex.messaging.MessageBroker.routeMessageToService(MessageBroker.java:1495) at flex.messaging.endpoints.AbstractEndpoint.serviceMessage(AbstractEndpoint.java:882) at flex.messaging.endpoints.RTMPConnection.handleTCCommand(RTMPConnection.java:722) at flex.messaging.endpoints.RTMPConnection.serviceTCMessage(RTMPConnection.java:1021) at flex.messaging.endpoints.RTMPConnection.doRead(RTMPConnection.java:514) at flex.messaging.endpoints.RTMPProtocolHandler.doRead(RTMPProtocolHandler.java:123) at flex.messaging.socketserver.Connection$ConnectionReader.run(Connection.java:778) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575) at java.lang.Thread.run(Thread.java:619) "my-rtmp-SocketServer-Reactor4Writer": at flex.data.SequenceManager.getSequence(SequenceManager.java:373) - waiting to lock <0x0b321d90> (a java.util.ArrayList) at flex.data.SequenceManager.removeItemIfNecessary(SequenceManager.java:3652) at flex.data.SequenceManager.removeItemIdentityFromSequence(SequenceManager.java:3108) - locked <0x0b27fc88> (a java.util.HashMap) at flex.data.SequenceManager.unsafeRemoveItemIdentitiesFromSequence(SequenceManager.java:747) at flex.data.SequenceManager.removeSequence(SequenceManager.java:639) at flex.data.SequenceManager.removeSequence(SequenceManager.java:621) at flex.data.SequenceManager.unsubscribeClient(SequenceManager.java:548) - locked <0x0b27fc70> (a java.util.ArrayList) - locked <0x0b27f6e0> (a flex.data.SequenceManager) at flex.data.SequenceManager.messageClientDestroyed(SequenceManager.java:3950) at flex.messaging.MessageClient.invalidate(MessageClient.java:764) at flex.messaging.MessageClient.invalidate(MessageClient.java:716) at flex.messaging.client.FlexClient.invalidate(FlexClient.java:480) at flex.messaging.client.FlexClient.unregisterFlexSession(FlexClient.java:1286) at flex.messaging.FlexSession.unregisterFlexClient(FlexSession.java:850) at flex.messaging.FlexSession.invalidate(FlexSession.java:666) at flex.messaging.endpoints.RTMPProtocolHandler$DirectRTMPConnection.close(RTMPProtocolHandler.java:306) at flex.messaging.endpoints.RTMPConnection.close(RTMPConnection.java:212) at flex.messaging.endpoints.RTMPProtocolHandler.closed(RTMPProtocolHandler.java:100) at flex.messaging.socketserver.Connection.closeImmediate(Connection.java:422) at flex.messaging.socketserver.Connection$ConnectionWriter.run(Connection.java:965) at flex.messaging.socketserver.Reactor$Writer.run(Reactor.java:675) at java.lang.Thread.run(Thread.java:619) "my-rtmp-SocketServer-Reactor2Writer": at flex.data.SequenceManager.isItemReferencedInternal(SequenceManager.java:3555) - waiting to lock <0x0b27fc88> (a java.util.HashMap) at flex.data.SequenceManager.isItemReferenced(SequenceManager.java:3540) at flex.data.SequenceManager.isItemReferencedInternal(SequenceManager.java:3567) - locked <0x0b321da8> (a java.util.HashMap) at flex.data.SequenceManager.isItemReferenced(SequenceManager.java:3540) at flex.data.SequenceManager.isItemReferencedInternal(SequenceManager.java:3567) - locked <0x0b27bd10> (a java.util.HashMap) at flex.data.SequenceManager.isItemReferenced(SequenceManager.java:3540) at flex.data.SequenceManager.removeItemIfNecessary(SequenceManager.java:3630) at flex.data.SequenceManager.removeItemIdentityFromSequence(SequenceManager.java:3108) - locked <0x0b27bd10> (a java.util.HashMap) at flex.data.SequenceManager.unsafeRemoveItemIdentitiesFromSequence(SequenceManager.java:747) at flex.data.SequenceManager.removeSequence(SequenceManager.java:639) at flex.data.SequenceManager.removeItemIfNecessary(SequenceManager.java:3654) at flex.data.SequenceManager.removeItemIdentityFromSequence(SequenceManager.java:3108) - locked <0x0b321da8> (a java.util.HashMap) at flex.data.SequenceManager.unsafeRemoveItemIdentitiesFromSequence(SequenceManager.java:747) at flex.data.SequenceManager.removeSequence(SequenceManager.java:639) at flex.data.SequenceManager.removeSequence(SequenceManager.java:621) at flex.data.SequenceManager.unsubscribeClient(SequenceManager.java:548) - locked <0x0b321d90> (a java.util.ArrayList) - locked <0x0b3217b0> (a flex.data.SequenceManager) at flex.data.SequenceManager.messageClientDestroyed(SequenceManager.java:3950) at flex.messaging.MessageClient.invalidate(MessageClient.java:764) at flex.messaging.MessageClient.invalidate(MessageClient.java:716) at flex.messaging.client.FlexClient.invalidate(FlexClient.java:480) at flex.messaging.client.FlexClient.unregisterFlexSession(FlexClient.java:1286) at flex.messaging.FlexSession.unregisterFlexClient(FlexSession.java:850) at flex.messaging.FlexSession.invalidate(FlexSession.java:666) at flex.messaging.endpoints.RTMPProtocolHandler$DirectRTMPConnection.close(RTMPProtocolHandler.java:306) at flex.messaging.endpoints.RTMPConnection.close(RTMPConnection.java:212) at flex.messaging.endpoints.RTMPProtocolHandler.closed(RTMPProtocolHandler.java:100) at flex.messaging.socketserver.Connection.closeImmediate(Connection.java:422) at flex.messaging.socketserver.Connection$ConnectionWriter.run(Connection.java:965) at flex.messaging.socketserver.Reactor$Writer.run(Reactor.java:675) at java.lang.Thread.run(Thread.java:619) -Shailesh