UT000091: Buffer has already been freed

Solution Unverified - Updated -

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 of over 48,000 articles and solutions.

Current Customers and Partners

Log in for full access

Log In