You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cassandra.apache.org by Bingbing Liu <ru...@gmail.com> on 2010/04/27 11:21:19 UTC

Broken pipe

when i use get_range_slices, i get the exceptions , i don't know what happens

hope someone can help me 


org.apache.thrift.transport.TTransportException: java.net.SocketException: Broken pipe
    at org.apache.thrift.transport.TIOStreamTransport.write(TIOStreamTransport.java:142)
    at org.apache.thrift.protocol.TBinaryProtocol.writeI32(TBinaryProtocol.java:152)
    at org.apache.thrift.protocol.TBinaryProtocol.writeMessageBegin(TBinaryProtocol.java:80)
    at org.apache.cassandra.thrift.Cassandra$Client.send_get_range_slices(Cassandra.java:592)
    at org.apache.cassandra.thrift.Cassandra$Client.get_range_slices(Cassandra.java:586)
    at org.clouddb.test.GrepSelect.main(GrepSelect.java:64)
Caused by: java.net.SocketException: Broken pipe
    at java.net.SocketOutputStream.socketWrite0(Native Method)
    at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
    at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
    at java.io.BufferedOutputStream.write(BufferedOutputStream.java:109)
    at org.apache.thrift.transport.TIOStreamTransport.write(TIOStreamTransport.java:140)
    ... 5 more


2010-04-27



Bingbing Liu

Re: Re: Broken pipe

Posted by Jonathan Shook <js...@gmail.com>.
I have been able to reproduce this, although it was a bug in
application client code. If you keep a thrift client around longer
after it has had an exception, it may generate this error.

In my case, I was holding a reference via ThreadLocal<> to a stale
storage object.

Another symptom which may help identify this scenario is that the
broken client will not initiate any network traffic, not even a SYN
packet. You may have to shut down other client traffic on the client
node in order to see this...


2010/4/28 Jonathan Ellis <jb...@gmail.com>:
> did you check the log for exceptions?
>
> On Wed, Apr 28, 2010 at 12:08 AM, Bingbing Liu <ru...@gmail.com> wrote:
>> but the situation is that ,at the beginning everything goes well, then when
>> the get_range_slices gets about 13,000,000 rows (set the key range to 2000)
>>
>> the exception happens.
>>
>> and when i do the same thing on a smaller data set, no such thing happens.
>>
>> 2010-04-28
>> ________________________________
>> Bingbing Liu
>> ________________________________
>> 发件人: Jonathan Ellis
>> 发送时间: 2010-04-27  20:51:11
>> 收件人: user
>> 抄送: rucbing
>> 主题: Re: Broken pipe
>> get_range_slices works fine in the system tests, so something is wrong
>> on your client side.  Some possibilities:
>>  - sending to a non-Thrift port
>>  - using an incompatible set of Thrift bindings than the one your
>> server supports
>>  - mixing a framed client with a non-framed server or vice versa
>> [moving followups to user list]
>> 2010/4/27 Bingbing Liu <ru...@gmail.com>:
>>> when i use get_range_slices, i get the exceptions , i don't know what happens
>>>
>>> hope someone can help me
>>>
>>>
>>> org.apache.thrift.transport.TTransportException: java.net.SocketException: Broken pipe
>>>    at org.apache.thrift.transport.TIOStreamTransport.write(TIOStreamTransport.java:142)
>>>    at org.apache.thrift.protocol.TBinaryProtocol.writeI32(TBinaryProtocol.java:152)
>>>    at org.apache.thrift.protocol.TBinaryProtocol.writeMessageBegin(TBinaryProtocol.java:80)
>>>    at org.apache.cassandra.thrift.Cassandra$Client.send_get_range_slices(Cassandra.java:592)
>>>    at org.apache.cassandra.thrift.Cassandra$Client.get_range_slices(Cassandra.java:586)
>>>    at org.clouddb.test.GrepSelect.main(GrepSelect.java:64)
>>> Caused by: java.net.SocketException: Broken pipe
>>>    at java.net.SocketOutputStream.socketWrite0(Native Method)
>>>    at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
>>>    at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
>>>    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
>>>    at java.io.BufferedOutputStream.write(BufferedOutputStream.java:109)
>>>    at org.apache.thrift.transport.TIOStreamTransport.write(TIOStreamTransport.java:140)
>>>    ... 5 more
>>>
>>>
>>> 2010-04-27
>>>
>>>
>>>
>>> Bingbing Liu
>>>
>> --
>> Jonathan Ellis
>> Project Chair, Apache Cassandra
>> co-founder of Riptano, the source for professional Cassandra support
>> http://riptano.com
>
>
>
> --
> Jonathan Ellis
> Project Chair, Apache Cassandra
> co-founder of Riptano, the source for professional Cassandra support
> http://riptano.com
>

Re: Re: Broken pipe

Posted by Jonathan Ellis <jb...@gmail.com>.
did you check the log for exceptions?

On Wed, Apr 28, 2010 at 12:08 AM, Bingbing Liu <ru...@gmail.com> wrote:
> but the situation is that ,at the beginning everything goes well, then when
> the get_range_slices gets about 13,000,000 rows (set the key range to 2000)
>
> the exception happens.
>
> and when i do the same thing on a smaller data set, no such thing happens.
>
> 2010-04-28
> ________________________________
> Bingbing Liu
> ________________________________
> 发件人: Jonathan Ellis
> 发送时间: 2010-04-27  20:51:11
> 收件人: user
> 抄送: rucbing
> 主题: Re: Broken pipe
> get_range_slices works fine in the system tests, so something is wrong
> on your client side.  Some possibilities:
>  - sending to a non-Thrift port
>  - using an incompatible set of Thrift bindings than the one your
> server supports
>  - mixing a framed client with a non-framed server or vice versa
> [moving followups to user list]
> 2010/4/27 Bingbing Liu <ru...@gmail.com>:
>> when i use get_range_slices, i get the exceptions , i don't know what happens
>>
>> hope someone can help me
>>
>>
>> org.apache.thrift.transport.TTransportException: java.net.SocketException: Broken pipe
>>    at org.apache.thrift.transport.TIOStreamTransport.write(TIOStreamTransport.java:142)
>>    at org.apache.thrift.protocol.TBinaryProtocol.writeI32(TBinaryProtocol.java:152)
>>    at org.apache.thrift.protocol.TBinaryProtocol.writeMessageBegin(TBinaryProtocol.java:80)
>>    at org.apache.cassandra.thrift.Cassandra$Client.send_get_range_slices(Cassandra.java:592)
>>    at org.apache.cassandra.thrift.Cassandra$Client.get_range_slices(Cassandra.java:586)
>>    at org.clouddb.test.GrepSelect.main(GrepSelect.java:64)
>> Caused by: java.net.SocketException: Broken pipe
>>    at java.net.SocketOutputStream.socketWrite0(Native Method)
>>    at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
>>    at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
>>    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
>>    at java.io.BufferedOutputStream.write(BufferedOutputStream.java:109)
>>    at org.apache.thrift.transport.TIOStreamTransport.write(TIOStreamTransport.java:140)
>>    ... 5 more
>>
>>
>> 2010-04-27
>>
>>
>>
>> Bingbing Liu
>>
> --
> Jonathan Ellis
> Project Chair, Apache Cassandra
> co-founder of Riptano, the source for professional Cassandra support
> http://riptano.com



-- 
Jonathan Ellis
Project Chair, Apache Cassandra
co-founder of Riptano, the source for professional Cassandra support
http://riptano.com

Re: Broken pipe

Posted by Jonathan Ellis <jb...@gmail.com>.
get_range_slices works fine in the system tests, so something is wrong
on your client side.  Some possibilities:

 - sending to a non-Thrift port
 - using an incompatible set of Thrift bindings than the one your
server supports
 - mixing a framed client with a non-framed server or vice versa

[moving followups to user list]

2010/4/27 Bingbing Liu <ru...@gmail.com>:
> when i use get_range_slices, i get the exceptions , i don't know what happens
>
> hope someone can help me
>
>
> org.apache.thrift.transport.TTransportException: java.net.SocketException: Broken pipe
>    at org.apache.thrift.transport.TIOStreamTransport.write(TIOStreamTransport.java:142)
>    at org.apache.thrift.protocol.TBinaryProtocol.writeI32(TBinaryProtocol.java:152)
>    at org.apache.thrift.protocol.TBinaryProtocol.writeMessageBegin(TBinaryProtocol.java:80)
>    at org.apache.cassandra.thrift.Cassandra$Client.send_get_range_slices(Cassandra.java:592)
>    at org.apache.cassandra.thrift.Cassandra$Client.get_range_slices(Cassandra.java:586)
>    at org.clouddb.test.GrepSelect.main(GrepSelect.java:64)
> Caused by: java.net.SocketException: Broken pipe
>    at java.net.SocketOutputStream.socketWrite0(Native Method)
>    at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
>    at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
>    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
>    at java.io.BufferedOutputStream.write(BufferedOutputStream.java:109)
>    at org.apache.thrift.transport.TIOStreamTransport.write(TIOStreamTransport.java:140)
>    ... 5 more
>
>
> 2010-04-27
>
>
>
> Bingbing Liu
>



-- 
Jonathan Ellis
Project Chair, Apache Cassandra
co-founder of Riptano, the source for professional Cassandra support
http://riptano.com