Hi Sanjit, So, the only way to use ThriftClient in a multithreaded application is to instantiate the client in all the threads. Any plans to make it thread-safe ? Just curious to know why it is behaving like this.
-- Regards, Sreejith K On Thu, Jul 1, 2010 at 9:52 AM, Sreejith K <[email protected]> wrote: > Thanks for the reply Sanjit. That seems to have solved the issue. > > -- > Regards, > > Sreejith K > > > > On Thu, Jul 1, 2010 at 12:29 AM, Sanjit Jhala <[email protected]> wrote: > >> Hi Sreejith, >> >> Instead of sharing the ThriftClient across all the threads, try creating >> one ThriftClient per thread (ie 'push "client = ThriftClient('localhost', >> 38080)" ' into the 'Get' method in your program), >> >> -Sanjit >> >> >> >> On Wed, Jun 30, 2010 at 12:45 AM, Sreejith K <[email protected]>wrote: >> >>> Hi, >>> >>> Actually the failed open_scanner/next_cells calls are being called from >>> newly spawned threads. I wrote a sample program to reproduce this. See the >>> program and its output. >>> >>> Hypertable content: http://pastie.org/1024681 >>> Program: http://pastie.org/1024685 >>> Output: http://pastie.org/1024684 >>> >>> >>> -- >>> Regards, >>> >>> Sreejith K >>> >>> >>> >>> On Wed, Jun 30, 2010 at 8:05 AM, Sanjit Jhala <[email protected]> wrote: >>> >>>> And, I assume you're running the ThriftBroker from this 0.9.3.3 build ? >>>> Do you see this error on every open_scanner/next_cells call or some >>>> specific >>>> one ? >>>> >>>> -Sanjit >>>> >>>> >>>> On Tue, Jun 29, 2010 at 6:32 AM, Sreejith K <[email protected]>wrote: >>>> >>>>> Hi Sanjit, >>>>> >>>>> I used thrift-0.3.0-rc4 ( >>>>> http://people.apache.org/~bryanduxbury/thrift-0.3.0-rc4.tar.gz<http://people.apache.org/%7Ebryanduxbury/thrift-0.3.0-rc4.tar.gz>) >>>>> for building the binary packages from hypertable 0.9.3.3 source. I >>>>> installed >>>>> thrift python bindings from thrift-0.3.0-rc4 to >>>>> /usr/local/lib/python2.6/dist-packages/thrift. The cmake output confirmed >>>>> the thrift version as 0.3.0 as shown below >>>>> >>>>> s...@codedesk:~/build/hypertable$ cmake -DPACKAGE_THRIFTBROKER= >>>>> -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release ~/src/hypertable >>>>> -DJAVA_INCLUDE_PATH=/usr/lib/jvm/java-6-sun-1.6.0.20/include >>>>> -DJAVA_INCLUDE_PATH2=/usr/lib/jvm/java-6-sun-1.6.0.20/include/linux >>>>> -DHADOOP_INCLUDE_PATH=/home/sree/src/hadoop-0.20.2/src/c++/install/include >>>>> -DHADOOP_LIB_PATH=/home/sree/src/hadoop-0.20.2/src/c++/install/lib >>>>> -DPHPTHRIFT_ROOT=/home/sree/src/thrift-0.3.0/lib/php/src >>>>> -- Use thread library: -lpthread >>>>> -- Looking for required boost libraries... >>>>> -- GCC version: 4.4.1 >>>>> -- Boost version: 1_38 >>>>> -- Boost thread lib: /usr/lib/libboost_thread-mt.so >>>>> -- Boost program options lib: /usr/lib/libboost_program_options-mt.so >>>>> -- Boost filesystem lib: /usr/lib/libboost_filesystem-mt.so >>>>> -- Boost iostreams lib: /usr/lib/libboost_iostreams-mt.so >>>>> -- Boost python lib: /usr/lib/libboost_python-mt.so >>>>> -- Boost system lib: /usr/lib/libboost_system-mt.so >>>>> -- Boost lib dir: /usr/lib >>>>> -- Found BerkeleyDB: /usr/local/lib/libdb_cxx.so >>>>> -- Berkeley DB version: 4.8.26 >>>>> -- Found RRDtool: /usr/lib/librrd.so >>>>> -- RRDtool version: 1.3.1 >>>>> -- Found Readline libraries: >>>>> /usr/lib/libreadline.so;/usr/lib/libncurses.so >>>>> -- Found SIGAR: /usr/local/lib/libsigar-x86-linux.so;dl >>>>> -- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) >>>>> -- Found Tcmalloc: /usr/local/lib/libtcmalloc_minimal.so >>>>> -- version: 1.5 >>>>> -- Not Found Hoard: Hoard_LIBRARY-NOTFOUND >>>>> -- Did not find ceph libraries >>>>> -- Found Ant: Apache Ant version 1.7.1 compiled on October 19 2009 >>>>> -- Javac: javac 1.6.0_20 >>>>> -- Found libevent: /usr/lib/libevent.so >>>>> -- Found thrift: >>>>> /usr/local/lib/libthrift.so;/usr/local/lib/libthriftnb.so >>>>> -- compiler: Thrift version 0.3.0 >>>>> -- Thrift for ruby not found. ThriftBroker support for ruby will be >>>>> disabled >>>>> -- Found thrift for php: /home/sree/src/thrift-0.3.0/lib/php/src >>>>> -- Found thrift for perl >>>>> -- Found thrift for python >>>>> -- Java headers found at: /usr/lib/jvm/java-6-sun-1.6.0.20/include >>>>> -- Hadoop includes located at: >>>>> /home/sree/src/hadoop-0.20.2/src/c++/install/include >>>>> -- Hadoop libraries located at: >>>>> /home/sree/src/hadoop-0.20.2/src/c++/install/lib >>>>> -- Configuring done >>>>> -- Generating done >>>>> -- Build files have been written to: /home/sree/build/hypertable >>>>> >>>>> The only strange thing I noticed was the version for thrift bindings >>>>> for python. It says 0.1 >>>>> >>>>> s...@codedesk:~/build/hypertable$ cat >>>>> /usr/local/lib/python2.6/dist-packages/Thrift-0.1.egg-info >>>>> Metadata-Version: 1.0 >>>>> Name: Thrift >>>>> Version: 0.1 >>>>> Summary: Thrift Python Libraries >>>>> Home-page: http://incubator.apache.org/thrift/ >>>>> Author: ['Thrift Developers'] >>>>> Author-email: ['[email protected]'] >>>>> License: Apache License 2.0 >>>>> Description: UNKNOWN >>>>> Platform: UNKNOWN >>>>> >>>>> >>>>> -- >>>>> Regards, >>>>> >>>>> Sreejith K >>>>> >>>>> >>>>> >>>>> On Tue, Jun 29, 2010 at 12:19 AM, Sanjit Jhala <[email protected]>wrote: >>>>> >>>>>> Are the ThriftBroker and ThriftClient code generated by the same >>>>>> version of the code and Thrift? From the error message it sounds like >>>>>> theres >>>>>> a mismatch in the protocol. >>>>>> >>>>>> -Sanjit >>>>>> >>>>>> On Mon, Jun 28, 2010 at 1:06 AM, Sreejith K <[email protected]>wrote: >>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> I'm using latest Hypertable thriftclient for Python from version >>>>>>> 0.9.3.3 (built dynamically with Thrift package from >>>>>>> http://people.apache.org/~bryanduxbury/thrift-0.3.0-rc4.tar.gz<http://people.apache.org/%7Ebryanduxbury/thrift-0.3.0-rc4.tar.gz>). >>>>>>> But when using open_scanner and next_cells api calls its raising >>>>>>> TApplicationException and sometimes EOFError. >>>>>>> >>>>>>> TApplicationException: next_cells failed: unknown result >>>>>>> TApplicationException: open_scanner failed: unknown result >>>>>>> >>>>>>> Unfortunately I'm unable to reproduce this error using a sample >>>>>>> script. What could be the reason for thriftclient to raise such errors ? >>>>>>> >>>>>>> -- >>>>>>> Regards, >>>>>>> >>>>>>> Sreejith K >>>>>>> >>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "Hypertable Development" group. >>>>>>> To post to this group, send email to [email protected] >>>>>>> . >>>>>>> To unsubscribe from this group, send email to >>>>>>> [email protected]<hypertable-dev%[email protected]> >>>>>>> . >>>>>>> For more options, visit this group at >>>>>>> http://groups.google.com/group/hypertable-dev?hl=en. >>>>>>> >>>>>> >>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "Hypertable Development" group. >>>>>> To post to this group, send email to [email protected]. >>>>>> To unsubscribe from this group, send email to >>>>>> [email protected]<hypertable-dev%[email protected]> >>>>>> . >>>>>> For more options, visit this group at >>>>>> http://groups.google.com/group/hypertable-dev?hl=en. >>>>>> >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Hypertable Development" group. >>>>> To post to this group, send email to [email protected]. >>>>> To unsubscribe from this group, send email to >>>>> [email protected]<hypertable-dev%[email protected]> >>>>> . >>>>> For more options, visit this group at >>>>> http://groups.google.com/group/hypertable-dev?hl=en. >>>>> >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Hypertable Development" group. >>>> To post to this group, send email to [email protected]. >>>> To unsubscribe from this group, send email to >>>> [email protected]<hypertable-dev%[email protected]> >>>> . >>>> For more options, visit this group at >>>> http://groups.google.com/group/hypertable-dev?hl=en. >>>> >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "Hypertable Development" group. >>> To post to this group, send email to [email protected]. >>> To unsubscribe from this group, send email to >>> [email protected]<hypertable-dev%[email protected]> >>> . >>> For more options, visit this group at >>> http://groups.google.com/group/hypertable-dev?hl=en. >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Hypertable Development" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]<hypertable-dev%[email protected]> >> . >> For more options, visit this group at >> http://groups.google.com/group/hypertable-dev?hl=en. >> > > -- You received this message because you are subscribed to the Google Groups "Hypertable Development" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/hypertable-dev?hl=en.
