UT000091: Buffer has already been freed
Issue
- We sometimes see the following
UT000091
error and it seems like it relates to a socket processed by multiple I/O threads at once from what we can see with debug SSL logging enabled:
2019-04-11 11:53:19,514 INFO [stdout] (default I/O-1) default I/O-1, called closeInbound()
2019-04-11 11:53:19,514 INFO [stdout] (default I/O-1) default I/O-1, fatal error: 80: Inbound closed before receiving peer's close_notify: possible truncation attack?
2019-04-11 11:53:19,514 INFO [stdout] (default I/O-1) javax.net.ssl.SSLException: Inbound closed before receiving peer's close_notify: possible truncation attack?
2019-04-11 11:53:19,515 INFO [stdout] (default I/O-1) %% Invalidated: [Session-713, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384]
2019-04-11 11:53:19,515 ERROR [org.xnio.nio] (default I/O-2) XNIO000011: Task io.undertow.protocols.ssl.SslConduit$2@2d1e148d failed with an exception: java.lang.IllegalStateException: UT000091: Buffer has already been freed
at io.undertow.server.DefaultByteBufferPool$DefaultPooledBuffer.getBuffer(DefaultByteBufferPool.java:258)
at io.undertow.protocols.ssl.SslConduit.doUnwrap(SslConduit.java:756)
at io.undertow.protocols.ssl.SslConduit.doHandshake(SslConduit.java:648)
at io.undertow.protocols.ssl.SslConduit.access$900(SslConduit.java:63)
at io.undertow.protocols.ssl.SslConduit$SslReadReadyHandler.readReady(SslConduit.java:1100)
at io.undertow.protocols.ssl.SslConduit$1.run(SslConduit.java:168)
at io.undertow.protocols.ssl.SslConduit$2.run(SslConduit.java:183)
at org.xnio.nio.WorkerThread.safeRun(WorkerThread.java:612)
at org.xnio.nio.WorkerThread.run(WorkerThread.java:479)
Environment
- JBoss Enterprise Application Platform (EAP) 7.2.0 and earlier
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.