Slightly off topic but still related (java instead of erlang). I just tried using the latest trunk build available on Hudson (2010-07-31_12-31-29) and I'm getting lock ups.
The same code (without the framed transport) was working with a build form 2010-07-07_13-32-16 I'm connecting using the following: > TSocket socket = new TSocket(node, port); >> >> transport = new TFramedTransport(socket); >> >> protocol = new TBinaryProtocol(transport); >> >> client = new Cassandra.Client(protocol); >> >> >>> transport.open(); >> >> >>> // set the keyspace on the client and do get slice stuff >> >> The locked up thread looks like: > "main" prio=5 tid=101801000 nid=0x100501000 runnable [1004fe000] java.lang.Thread.State: RUNNABLE at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at java.io.BufferedInputStream.fill(BufferedInputStream.java:218) at java.io.BufferedInputStream.read1(BufferedInputStream.java:258) at java.io.BufferedInputStream.read(BufferedInputStream.java:317) - locked <1093daa10> (a java.io.BufferedInputStream) at > org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:127) at org.apache.thrift.transport.TTransport.readAll(TTransport.java:84) at > org.apache.thrift.transport.TFramedTransport.readFrame(TFramedTransport.java:129) at > org.apache.thrift.transport.TFramedTransport.read(TFramedTransport.java:101) at org.apache.thrift.transport.TTransport.readAll(TTransport.java:84) at > org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:369) at > org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:295) at > org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:202) at > org.apache.cassandra.thrift.Cassandra$Client.recv_get_slice(Cassandra.java:542) at > org.apache.cassandra.thrift.Cassandra$Client.get_slice(Cassandra.java:524) On 28 July 2010 17:43, J T <jt4websi...@googlemail.com> wrote: > Hi, > > That fixed the problem! > > I added the Framed option and like magic things have started working again. > > Example: > > thrift_client:start_link("localhost", 9160, cassandra_thrift, [ { framed, > true } ] ) > > JT. > > > > On Tue, Jul 27, 2010 at 10:04 PM, Jonathan Ellis <jbel...@gmail.com>wrote: > >> trunk is using framed thrift connections by default now (was unframed) >> >> On Tue, Jul 27, 2010 at 11:33 AM, J T <jt4websi...@googlemail.com> wrote: >> > Hi, >> > I just tried upgrading a perfectly working Cassandra 0.6.3 to Cassandra >> 0.7 >> > and am finding that even after re-generating the erlang thrift bindings >> that >> > I am unable to perform any operation. >> > I can get a connection but if I try to login or set the keyspace I get a >> > report from the erlang bindings to say that the connection is closed. >> > I then tried upgrading to a later version of thrift but still get the >> same >> > error. >> > e.g. >> > (zotonic3...@127.0.0.1)1> thrift_client:start_link("localhost", 9160, >> > cassandra_thrift). >> > {ok,<0.327.0>} >> > (zotonic3...@127.0.0.1)2> {ok,C}=thrift_client:start_link("localhost", >> 9160, >> > cassandra_thrift). >> > {ok,<0.358.0>} >> > (zotonic3...@127.0.0.1)3> thrift_client:call( C, set_keyspace, [ >> <<"Test">> >> > ]). >> > =ERROR REPORT==== 27-Jul-2010::03:48:08 === >> > ** Generic server <0.358.0> terminating >> > ** Last message in was {call,set_keyspace,[<<"Test">>]} >> > ** When Server state == {state,cassandra_thrift, >> > {protocol,thrift_binary_protocol, >> > {binary_protocol, >> > >> {transport,thrift_buffered_transport,<0.359.0>}, >> > true,true}}, >> > 0} >> > ** Reason for termination == >> > ** {{case_clause,{error,closed}}, >> > [{thrift_client,read_result,3}, >> > {thrift_client,catch_function_exceptions,2}, >> > {thrift_client,handle_call,3}, >> > {gen_server,handle_msg,5}, >> > {proc_lib,init_p_do_apply,3}]} >> > ** exception exit: {case_clause,{error,closed}} >> > in function thrift_client:read_result/3 >> > in call from thrift_client:catch_function_exceptions/2 >> > in call from thrift_client:handle_call/3 >> > in call from gen_server:handle_msg/5 >> > in call from proc_lib:init_p_do_apply/3 >> > The cassandra log seems to indicate that a connection has been made >> > (although thats only apparent by a TRACE log message saying that a >> logout >> > has been done). >> > The cassandra-cli program is able to connect and function normally so I >> can >> > only assume that there is a problem with the erlang bindings. >> > Has anyone else had any success using 0.7 from Erlang ? >> > JT. >> >> >> >> -- >> Jonathan Ellis >> Project Chair, Apache Cassandra >> co-founder of Riptano, the source for professional Cassandra support >> http://riptano.com >> > >