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