jetty / jetty.project

Eclipse Jetty® - Web Container & Clients - supports HTTP/2, HTTP/1.1, HTTP/1.0, websocket, servlets, and more
https://eclipse.dev/jetty
Other
3.84k stars 1.91k forks source link

Improve ConcurrentPool concurrency #12289

Closed sbordet closed 1 week ago

sbordet commented 1 week ago

Jetty version(s) 12

Description

java.lang.ArrayIndexOutOfBoundsException: Index 249 out of bounds for length 249
        at java.base/java.util.concurrent.CopyOnWriteArrayList.elementAt(CopyOnWriteArrayList.java:390)
        at java.base/java.util.concurrent.CopyOnWriteArrayList.get(CopyOnWriteArrayList.java:403)
        at org.eclipse.jetty.util.ConcurrentPool.sweep(ConcurrentPool.java:200)
        at org.eclipse.jetty.util.ConcurrentPool.reserve(ConcurrentPool.java:178)
        at org.eclipse.jetty.client.AbstractConnectionPool.tryCreate(AbstractConnectionPool.java:281)
        at org.eclipse.jetty.client.AbstractConnectionPool.acquire(AbstractConnectionPool.java:235)
        at org.eclipse.jetty.client.transport.HttpDestination.process(HttpDestination.java:372)
        at org.eclipse.jetty.client.transport.HttpDestination.send(HttpDestination.java:358)
        at org.eclipse.jetty.client.transport.HttpDestination.succeeded(HttpDestination.java:291)
        at org.eclipse.jetty.client.AbstractConnectionPool.proceed(AbstractConnectionPool.java:315)
        at org.eclipse.jetty.client.AbstractConnectionPool$FutureConnection.succeeded(AbstractConnectionPool.java:615)
        at org.eclipse.jetty.client.AbstractConnectionPool$FutureConnection.succeeded(AbstractConnectionPool.java:593)
        at org.eclipse.jetty.util.Promise$Wrapper.succeeded(Promise.java:195)
        at org.eclipse.jetty.client.transport.internal.HttpConnectionOverHTTP.onOpen(HttpConnectionOverHTTP.java:209)
        at org.eclipse.jetty.io.SelectorManager.connectionOpened(SelectorManager.java:325)
        at org.eclipse.jetty.io.ClientConnector$ClientSelectorManager.connectionOpened(ClientConnector.java:616)
        at org.eclipse.jetty.io.ManagedSelector.createEndPoint(ManagedSelector.java:401)
        at org.eclipse.jetty.io.ManagedSelector$CreateEndPoint.run(ManagedSelector.java:1056)
        at org.eclipse.jetty.util.thread.MonitoredQueuedThreadPool$1.run(MonitoredQueuedThreadPool.java:73)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:979)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1209)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1164)
        at java.base/java.lang.Thread.run(Thread.java:1570)