Opened 9 years ago

Closed 8 years ago

#400 closed defect (fixed)

server handler queue full

Reported by: Eche|on Owned by: zzz
Priority: minor Milestone: 0.8.4
Component: apps/i2ptunnel Version: 0.8.3
Keywords: Cc:
Parent Tickets: Sensitive: no

Description (last modified by welterde)

2/4/11 2:32:36 AM ERROR [7.0.0.1:1111] .i2ptunnel.I2PTunnelHTTPServer: ServerHandler queue full for /127.0.0.1:1111; increase i2ptunnel.blockingHandlerCount?
     java.util.concurrent.RejectedExecutionException
     at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:1768)
     at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:767)
     at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:658)
     at net.i2p.i2ptunnel.I2PTunnelServer.run(I2PTunnelServer.java:300)
     at java.lang.Thread.run(Thread.java:619)
     at net.i2p.util.I2PThread.run(I2PThread.java:77)

Subtickets

Change History (4)

comment:1 Changed 9 years ago by zzz

Owner: set to zzz
Status: newassigned

This is caused by incoming connections backing up in i2ptunnel, probably because the server at port 1111 has run out of threads or is at its connection limit, or is otherwise very slow.

Is this a high-traffic server? is it Jetty? If it is Jetty, change the max threads in jetty.xml. Also see the note at http://zzz.i2p/topics/840 if you are running more than one Jetty server.

The limit on pending connections was added in 0.8.3 to prevent a DoS. I set the limit at what I thought was a really high number (65). But if the server stops handling connections I guess it backs up quickly. You can override it in the i2ptunnel custom options section i2ptunnel.blockingHandlerCount=xxx.

I'll try to improve the error message.

comment:2 Changed 9 years ago by Eche|on

That tunnel is false.i2p and it got hit within 5-10 req/sec area.
While that error appeared, squid got no request, roughly 20 min timeframe.
It was not the i2ptunnel limiter which will print another error message.

eche|on

comment:3 Changed 9 years ago by welterde

Description: modified (diff)

comment:4 Changed 8 years ago by zzz

Milestone: 0.8.120.8.4
Resolution: fixed
Status: assignedclosed

The error message was improved in 0.8.4 and changed to a WARN. It's important not to have an infinite queue of incoming connections to prevent a DoS.

I don't know why squid stopped responding.

Note: See TracTickets for help on using tickets.