Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

deadlock in 1.7.0 #68

Closed
cburroughs opened this issue Mar 23, 2012 · 2 comments
Closed

deadlock in 1.7.0 #68

cburroughs opened this issue Mar 23, 2012 · 2 comments

Comments

@cburroughs
Copy link

Java-level deadlock has been detected

This means that some threads are blocked waiting to enter a synchronization block or
waiting to reenter a synchronization block after an Object.wait() call, where each thread
owns one monitor while trying to obtain another monitor already held by another thread.

Deadlock:


New I/O client worker #1-6 is waiting to lock com.ning.http.client.providers.netty.NettyAsyncHttpProvider$ReaperFuture@2bfea135 which is held by AsyncHttpClient-Reaper
AsyncHttpClient-Reaper is waiting to lock java.lang.Object@6109a3f which is held by New I/O client worker #1-6




Thread stacks


AsyncHttpClient-Reaper [BLOCKED; waiting to lock java.lang.Object@6109a3f]
org.jboss.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:861)
org.jboss.netty.handler.ssl.SslHandler.closeOutboundAndChannel(SslHandler.java:1041)
org.jboss.netty.handler.ssl.SslHandler.handleDownstream(SslHandler.java:409)
org.jboss.netty.channel.DefaultChannelPipeline.sendDownstream(DefaultChannelPipeline.java:568)
org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendDownstream(DefaultChannelPipeline.java:747)
org.jboss.netty.handler.codec.oneone.OneToOneEncoder.handleDownstream(OneToOneEncoder.java:60)
org.jboss.netty.handler.codec.http.HttpClientCodec.handleDownstream(HttpClientCodec.java:82)
org.jboss.netty.channel.DefaultChannelPipeline.sendDownstream(DefaultChannelPipeline.java:568)
org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendDownstream(DefaultChannelPipeline.java:747)
org.jboss.netty.handler.stream.ChunkedWriteHandler.handleDownstream(ChunkedWriteHandler.java:114)
org.jboss.netty.channel.DefaultChannelPipeline.sendDownstream(DefaultChannelPipeline.java:568)
org.jboss.netty.channel.DefaultChannelPipeline.sendDownstream(DefaultChannelPipeline.java:563)
org.jboss.netty.channel.Channels.close(Channels.java:720)
org.jboss.netty.channel.AbstractChannel.close(AbstractChannel.java:208)
com.ning.http.client.providers.netty.NettyAsyncHttpProvider.finishChannel(NettyAsyncHttpProvider.java:1044)
com.ning.http.client.providers.netty.NettyAsyncHttpProvider.closeChannel(NettyAsyncHttpProvider.java:1029)
com.ning.http.client.providers.netty.NettyAsyncHttpProvider.abort(NettyAsyncHttpProvider.java:1280)
com.ning.http.client.providers.netty.NettyAsyncHttpProvider.access$700(NettyAsyncHttpProvider.java:136)
com.ning.http.client.providers.netty.NettyAsyncHttpProvider$ReaperFuture.run(NettyAsyncHttpProvider.java:1767)
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
java.lang.Thread.run(Thread.java:662)


New I/O client worker #1-6 [BLOCKED; waiting to lock com.ning.http.client.providers.netty.NettyAsyncHttpProvider$ReaperFuture@2bfea135]
com.ning.http.client.providers.netty.NettyAsyncHttpProvider$ReaperFuture.cancel(NettyAsyncHttpProvider.java)
com.ning.http.client.providers.netty.NettyResponseFuture.cancelReaper(NettyResponseFuture.java:196)
com.ning.http.client.providers.netty.NettyResponseFuture.setReaperFuture(NettyResponseFuture.java:352)
com.ning.http.client.providers.netty.NettyAsyncHttpProvider.writeRequest(NettyAsyncHttpProvider.java:495)
com.ning.http.client.providers.netty.NettyConnectListener.operationComplete(NettyConnectListener.java:82)
org.jboss.netty.channel.DefaultChannelFuture.notifyListener(DefaultChannelFuture.java:381)
org.jboss.netty.channel.DefaultChannelFuture.notifyListeners(DefaultChannelFuture.java:367)
org.jboss.netty.channel.DefaultChannelFuture.setSuccess(DefaultChannelFuture.java:316)
org.jboss.netty.handler.ssl.SslHandler.setHandshakeSuccess(SslHandler.java:1016)
org.jboss.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:889)
org.jboss.netty.handler.ssl.SslHandler.decode(SslHandler.java:605)
org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:282)
org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:216)
org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:80)
org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:545)
org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:540)
org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:274)
org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:261)
org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:350)
org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:281)
org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:201)
org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
org.jboss.netty.util.internal.IoWorkerRunnable.run(IoWorkerRunnable.java:46)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
java.lang.Thread.run(Thread.java:662)
@cburroughs
Copy link
Author

Another similar looking one

Java-level deadlocks have been detected

This means that some threads are blocked waiting to enter a synchronization block or
waiting to reenter a synchronization block after an Object.wait() call, where each thread
owns one monitor while trying to obtain another monitor already held by another thread.

Deadlock:


AsyncHttpClient-Reaper is waiting to lock com.ning.http.client.providers.netty.NettyAsyncHttpProvider$ReaperFuture@4dab2dfd which is held by AsyncHttpClient-Reaper
AsyncHttpClient-Reaper is waiting to lock com.ning.http.client.providers.netty.NettyAsyncHttpProvider$ReaperFuture@364e4213 which is held by AsyncHttpClient-Reaper



Deadlock:


AsyncHttpClient-Reaper is waiting to lock com.ning.http.client.providers.netty.NettyAsyncHttpProvider$ReaperFuture@364e4213 which is held by AsyncHttpClient-Reaper
AsyncHttpClient-Reaper is waiting to lock com.ning.http.client.providers.netty.NettyAsyncHttpProvider$ReaperFuture@4dab2dfd which is held by AsyncHttpClient-Reaper




Thread stacks


AsyncHttpClient-Reaper [BLOCKED; waiting to lock com.ning.http.client.providers.netty.NettyAsyncHttpProvider$ReaperFuture@4dab2dfd]
com.ning.http.client.providers.netty.NettyAsyncHttpProvider$ReaperFuture.cancel(NettyAsyncHttpProvider.java:1715)
com.ning.http.client.providers.netty.NettyResponseFuture.cancelReaper(NettyResponseFuture.java:196)
com.ning.http.client.providers.netty.NettyResponseFuture.abort(NettyResponseFuture.java:293)
com.ning.http.client.providers.netty.NettyAsyncHttpProvider.abort(NettyAsyncHttpProvider.java:1289)
com.ning.http.client.providers.netty.NettyAsyncHttpProvider.access$700(NettyAsyncHttpProvider.java:136)
com.ning.http.client.providers.netty.NettyAsyncHttpProvider$ReaperFuture.run(NettyAsyncHttpProvider.java:1767)
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
java.lang.Thread.run(Thread.java:662)


AsyncHttpClient-Reaper [BLOCKED; waiting to lock com.ning.http.client.providers.netty.NettyAsyncHttpProvider$ReaperFuture@364e4213]
com.ning.http.client.providers.netty.NettyAsyncHttpProvider$ReaperFuture.cancel(NettyAsyncHttpProvider.java:1715)
com.ning.http.client.providers.netty.NettyResponseFuture.cancelReaper(NettyResponseFuture.java:196)
com.ning.http.client.providers.netty.NettyResponseFuture.abort(NettyResponseFuture.java:293)
com.ning.http.client.providers.netty.NettyAsyncHttpProvider.abort(NettyAsyncHttpProvider.java:1289)
com.ning.http.client.providers.netty.NettyAsyncHttpProvider.access$700(NettyAsyncHttpProvider.java:136)
com.ning.http.client.providers.netty.NettyAsyncHttpProvider$ReaperFuture.run(NettyAsyncHttpProvider.java:1767)
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
java.lang.Thread.run(Thread.java:662)

@jfarcand
Copy link
Contributor

jfarcand commented Apr 4, 2012

Fixed, let me know if you can still reproduce.

@jfarcand jfarcand closed this as completed Apr 4, 2012
jfarcand added a commit that referenced this issue Apr 4, 2012
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants