You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@accumulo.apache.org by "Joseph L Howard (JIRA)" <ji...@apache.org> on 2014/06/13 01:47:02 UTC

[jira] [Updated] (ACCUMULO-2658) Thrift Proxy crashes with OOM on bad input

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

Joseph L Howard updated ACCUMULO-2658:
--------------------------------------

    Description: 
The proxy server doesn't benefit from the fix for ACCUMULO-2360 because it doesn't use the TServerUtils class to set up the thrift server.

The smallest fix is really easy: just add the line:
{code}

{code}
to o.a.a.proxy.Proxy.createProxyServer.

I guess a more comprehensive fix would be to convert Proxy to use TServerUtils, but that's a little beyond me at this point.

Steps to reproduce:
1. Start your proxy server
2. telnet localhost 42424
3. Type "stat", press enter.

Expected Behaviour:
* The thrift server stays up and ignores the invalid input

Actual Behaviour:
* The thrift server seems to interpret the text string as a buffer size and immediately crashes with this error written to the log file:
{code}
#
# java.lang.OutOfMemoryError: Java heap space
# -XX:OnOutOfMemoryError="kill -9 %p"
#   Executing /bin/sh -c "kill -9 13396"...
{code}

  was:
The proxy server doesn't benefit from the fix for ACCUMULO-2360 because it doesn't use the TServerUtils class to set up the thrift server.

The smallest fix is really easy: just add the line:
{code}
args.maxReadBufferBytes = maxFrameSize;
{code}
to o.a.a.proxy.Proxy.createProxyServer.

I guess a more comprehensive fix would be to convert Proxy to use TServerUtils, but that's a little beyond me at this point.

Steps to reproduce:
1. Start your proxy server
2. telnet localhost 42424
3. Type "stat", press enter.

Expected Behaviour:
* The thrift server stays up and ignores the invalid input

Actual Behaviour:
* The thrift server seems to interpret the text string as a buffer size and immediately crashes with this error written to the log file:
{code}
#
# java.lang.OutOfMemoryError: Java heap space
# -XX:OnOutOfMemoryError="kill -9 %p"
#   Executing /bin/sh -c "kill -9 13396"...
{code}


> Thrift Proxy crashes with OOM on bad input
> ------------------------------------------
>
>                 Key: ACCUMULO-2658
>                 URL: https://issues.apache.org/jira/browse/ACCUMULO-2658
>             Project: Accumulo
>          Issue Type: Bug
>          Components: proxy
>    Affects Versions: 1.5.1
>            Reporter: Russ Weeks
>             Fix For: 1.5.2, 1.6.1, 1.7.0
>
>
> The proxy server doesn't benefit from the fix for ACCUMULO-2360 because it doesn't use the TServerUtils class to set up the thrift server.
> The smallest fix is really easy: just add the line:
> {code}
> {code}
> to o.a.a.proxy.Proxy.createProxyServer.
> I guess a more comprehensive fix would be to convert Proxy to use TServerUtils, but that's a little beyond me at this point.
> Steps to reproduce:
> 1. Start your proxy server
> 2. telnet localhost 42424
> 3. Type "stat", press enter.
> Expected Behaviour:
> * The thrift server stays up and ignores the invalid input
> Actual Behaviour:
> * The thrift server seems to interpret the text string as a buffer size and immediately crashes with this error written to the log file:
> {code}
> #
> # java.lang.OutOfMemoryError: Java heap space
> # -XX:OnOutOfMemoryError="kill -9 %p"
> #   Executing /bin/sh -c "kill -9 13396"...
> {code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)