accumulo-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Josh Elser (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (ACCUMULO-2360) Need a way to configure TNonblockingServer.maxReadBufferBytes to prevent OOMs from network misbehavour
Date Wed, 12 Feb 2014 19:09:19 GMT

     [ https://issues.apache.org/jira/browse/ACCUMULO-2360?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Josh Elser updated ACCUMULO-2360:
---------------------------------

    Priority: Blocker  (was: Critical)

> Need a way to configure TNonblockingServer.maxReadBufferBytes to prevent OOMs from network
misbehavour
> ------------------------------------------------------------------------------------------------------
>
>                 Key: ACCUMULO-2360
>                 URL: https://issues.apache.org/jira/browse/ACCUMULO-2360
>             Project: Accumulo
>          Issue Type: Bug
>          Components: master, tserver
>    Affects Versions: 1.5.0
>            Reporter: John Vines
>            Assignee: John Vines
>            Priority: Blocker
>             Fix For: 1.5.1, 1.6.0
>
>
> 1.5.0 introduced GENERAL_MAX_MESSAGE_SIZE (ACCUMULO-1141), a parameter to set the maximum
frame size for the TFramedTransport. However, there is an underlying frame (I think this is
a glossary conflict) read in TNonblockingServer that can still cause OOM errors if erroneously
connected to (telnet, netcat, etc.), creating a stack trace as such
> {code}2014-02-12 10:26:40,439 [util.TServerUtils$THsHaServer] ERROR: run() exiting due
to uncaught error
> java.lang.OutOfMemoryError: Java heap space
>         at java.nio.HeapByteBuffer.<init>(HeapByteBuffer.java:57)
>         at java.nio.ByteBuffer.allocate(ByteBuffer.java:329)
>         at org.apache.thrift.server.AbstractNonblockingServer$FrameBuffer.read(AbstractNonblockingServer.java:338)
>         at org.apache.thrift.server.AbstractNonblockingServer$AbstractSelectThread.handleRead(AbstractNonblockingServer.java:202)
>         at org.apache.thrift.server.TNonblockingServer$SelectAcceptThread.select(TNonblockingServer.java:198)
>         at org.apache.thrift.server.TNonblockingServer$SelectAcceptThread.run(TNonblockingServer.java:154){code}
> I believe if we set maxReadBufferBytes to the server arguments, it will filter appropriately.
The only decision I'm not sure about is if we should recycle the max message property or have
a separate one.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Mime
View raw message