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 <jbel...@gmail.com>:
> did you check the log for exceptions?
>
> On Wed, Apr 28, 2010 at 12:08 AM, Bingbing Liu <rucb...@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 <rucb...@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
>

Reply via email to