[ https://issues.apache.org/jira/browse/THRIFT-171?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12739812#action_12739812 ]
Joey A commented on THRIFT-171: ------------------------------- I am seeing the same TransportException that Dave mentions above. The Ruby client uses FramedTransport to communicate with a Java server. When more than one Ruby thread communicates with the server, I'll *sometimes* receive the error. > Expected blocking from TSocket but didn't get it > ------------------------------------------------ > > Key: THRIFT-171 > URL: https://issues.apache.org/jira/browse/THRIFT-171 > Project: Thrift > Issue Type: Bug > Components: Library (Java), Library (Ruby) > Affects Versions: 0.1 > Environment: CentOS 4.x > Reporter: Dave Dupre > Attachments: try.zip > > > I have a Thrift server built in Ruby on Rails. It uses the TSimpleServer > class since my server is using Rails to generate HTML (Rails view code > expects to be single threaded). I have two clients: one in Java and one in > Ruby. Here is what I see: > Ruby client: > # Usual init code straight from the tutorial here > transport.open > 1000.times { client.my_method } > transport.close > The Java client is basically the same. Unfortunately, I see two different > behaviors when running multiple client instances. With a Ruby client, > execute client A, and it starts processing normally. Execute client B while > client A is still running, and it blocks at transport.open until client A > completes. This is what I expected. However, if I do the same thing with > Java clients, both clients proceed in parallel. Unfortunately, this gets the > server very confused and into a really bad state. I'm using TSocket which > should be doing blocking I/O, but that is not what I'm seeing happen. > Is there some magic that I can do to make this work? Right now, I use > configuration to ensure that only one Java client thread/process is allowed > to talk to my Ruby server, but this is a total hack. Switching to > TThreadedServer makes blocking go away, but I'm nervous about what that will > mean to the Rails controller and view code. FYI, my server allows me to > generate HTML views via Thrift. If it was a pure Ruby server, then I would > not be concerned, but since so much is dependent on code that usually assumes > to be single threaded, I'm concerned about introducing bugs. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.