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