No worries!  I think everybody here would rather hear a duplicate report of
an issue than never hear about it at all.

On Wed, Mar 30, 2011 at 2:39 PM, William Oberman
<ober...@civicscience.com>wrote:

> Well, I'll wait for the next official release then.  Sorry for the
> confusion!
>
>
> On Wed, Mar 30, 2011 at 3:31 PM, Tyler Hobbs <ty...@datastax.com> wrote:
>
>> Actually, it looks like you're probably looking at the bundled Thrift in
>> phpcassa 0.7.a.3.  This issue is fixed in Thrift trunk and the phpcassa
>> master branch.
>>
>> On Wed, Mar 30, 2011 at 2:28 PM, Tyler Hobbs <ty...@datastax.com> wrote:
>>
>>> Are you looking at Thrift trunk, the thrift package that ships with
>>> phpcassa 0.7.a.3, or the phpcassa master branch?
>>>
>>>
>>> On Wed, Mar 30, 2011 at 2:26 PM, William Oberman <
>>> ober...@civicscience.com> wrote:
>>>
>>>> Nevermind, the header of the file says it's an apache project, so I'll
>>>> contact them.  Though, if anyone else is running PHP and is worried about
>>>> dropped connections thrashing their server, apply this patch :-)
>>>>
>>>>
>>>> On Wed, Mar 30, 2011 at 3:18 PM, William Oberman <
>>>> ober...@civicscience.com> wrote:
>>>>
>>>>> I think I found a bug in the cassandra PHP client.  I'm using phpcassa,
>>>>> but the bug is in thrift itself, which I think that library phpcassa just
>>>>> wraps.  In any case, I was trying to test on my local machine, which has
>>>>> limited RAM, so I reduced the JVM heap size.  Of course I immediately had 
>>>>> an
>>>>> OOM causing my local cassandra server to crash, but that caused my unit
>>>>> tests to stall at 100% CPU, which seemed weird to me.  I had to figure out
>>>>> why.  It seems that TSocket doesn't test for EOF (it's only checking for a
>>>>> socket timeout), causing a tight infinite loop when the connection
>>>>> disappears.  Checking for EOF in an else if seems like an easy fix, but
>>>>> given how deep this code is in the library I'll leave it to the experts.
>>>>>
>>>>> My diff of the file:
>>>>> @@ -255,6 +255,9 @@
>>>>>          if (true === $md['timed_out'] && false === $md['blocked']) {
>>>>>            throw new TTransportException('TSocket: timed out reading
>>>>> '.$len.' bytes from '.
>>>>>                                 $this->host_.':'.$this->port_);
>>>>> +        } else if(feof($this->handle_)) {
>>>>> +           throw new TTransportException('TSocket: EOF reading
>>>>> '.$len.' bytes from '.
>>>>> +                               $this->host_.':'.$this->port_);
>>>>>          } else {
>>>>>            $pre .= $buf;
>>>>>            $len -= $sz;
>>>>>
>>>>>
>>>>> --
>>>>> Will Oberman
>>>>> Civic Science, Inc.
>>>>> 3030 Penn Avenue., First Floor
>>>>> Pittsburgh, PA 15201
>>>>> (M) 412-480-7835
>>>>> (E) ober...@civicscience.com
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Will Oberman
>>>> Civic Science, Inc.
>>>> 3030 Penn Avenue., First Floor
>>>> Pittsburgh, PA 15201
>>>> (M) 412-480-7835
>>>> (E) ober...@civicscience.com
>>>>
>>>
>>>
>>>
>>> --
>>> Tyler Hobbs
>>> Software Engineer, DataStax <http://datastax.com/>
>>> Maintainer of the pycassa <http://github.com/pycassa/pycassa> Cassandra
>>> Python client library
>>>
>>>
>>
>>
>> --
>> Tyler Hobbs
>> Software Engineer, DataStax <http://datastax.com/>
>> Maintainer of the pycassa <http://github.com/pycassa/pycassa> Cassandra
>> Python client library
>>
>>
>
>
> --
> Will Oberman
> Civic Science, Inc.
> 3030 Penn Avenue., First Floor
> Pittsburgh, PA 15201
> (M) 412-480-7835
> (E) ober...@civicscience.com
>



-- 
Tyler Hobbs
Software Engineer, DataStax <http://datastax.com/>
Maintainer of the pycassa <http://github.com/pycassa/pycassa> Cassandra
Python client library

Reply via email to