thrift-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Francisco Byun <comba...@gmail.com>
Subject "TSocket read 0 bytes" when dictionary contains unicode character on 64-bit Ubuntu
Date Mon, 17 May 2010 18:49:04 GMT
Hello. I'm running a BBS written in Python which use Thrift as the
protocol between Backend & Frontend server. Recently I tried to
migrate Frontend server. Former Frontend server was 32-bit Ubuntu
server. New Frontend server is 64-bit Ubuntu server with doubled
memory.

But I failed.

When Frontend ask Backend to send some information, it works fine. But
when Frontend tries to send some information, it does not work very
well. For example, I tried to write an article written in English,
everything was fine. But when I tried to write an article written in
Korean, it just screwed up with following traceback.

What should I inspect? Is this reported Thrift problem, or my code is
wrong? (But identical source works fine with 32-bit Ubuntu server

.)

Traceback (most recent call last):

 File "/usr/local/lib/python2.6/dist-packages/Django-1.2-py2.6.egg/django/core/handlers/base.py",
line 100, in get_response
   response = callback(request, *callback_args, **callback_kwargs)

 File "/home/ara/arara/warara/__init__.py", line 24, in check_error
   return f(*args, **argv)

 File "/home/ara/arara/warara/board/views.py", line 118, in write
   return write_(request, board_name)

 File "/home/ara/arara/warara/__init__.py", line 24, in check_error
   return f(*args, **argv)

 File "/home/ara/arara/warara/board/views.py", line 169, in write_
   article_id = server.article_manager.write_article(sess, board_name,
WrittenArticle(**article_dic))

 File "/home/ara/arara/gen-py/arara_thrift/ArticleManager.py", line
607, in write_article
   return self.recv_write_article()

 File "/home/ara/arara/gen-py/arara_thrift/ArticleManager.py", line
620, in recv_write_article
   (fname, mtype, rseqid) = self._iprot.readMessageBegin()

 File "/usr/local/lib/python2.6/dist-packages/Thrift-0.2.0-py2.6-linux-x86_64.egg/thrift/protocol/TBinaryProtocol.py",
line 126, in readMessageBegin
   sz = self.readI32()

 File "/usr/local/lib/python2.6/dist-packages/Thrift-0.2.0-py2.6-linux-x86_64.egg/thrift/protocol/TBinaryProtocol.py",
line 203, in readI32
   buff = self.trans.readAll(4)

 File "/usr/local/lib/python2.6/dist-packages/Thrift-0.2.0-py2.6-linux-x86_64.egg/thrift/transport/TTransport.py",
line 58, in readAll
   chunk = self.read(sz-have)

 File "/usr/local/lib/python2.6/dist-packages/Thrift-0.2.0-py2.6-linux-x86_64.egg/thrift/transport/TTransport.py",
line 155, in read
   self.__rbuf = StringIO(self.__trans.read(max(sz, self.DEFAULT_BUFFER)))

 File "/usr/local/lib/python2.6/dist-packages/Thrift-0.2.0-py2.6-linux-x86_64.egg/thrift/transport/TSocket.py",
line 94, in read
   raise TTransportException(type=TTransportException.END_OF_FILE,
message='TSocket read 0 bytes')

TTransportException: TSocket read 0 bytes

<ModPythonRequest
path:/board/test/write/,
GET:<QueryDict: {}>,
POST:<QueryDict: {u'file1': [u'', u''], u'delete_file': [u''],
u'article_no': [u''], u'title': [u'test'], u'text': [u'--\r\nKAIST
\ucca0\ud559\uacfc\uc5d0 \uc7ac\ud559\uc911\uc778
\ubcc0\uaddc\ud64d\uc774\ub77c\uace0 \ud569\ub2c8\ub2e4.'],
u'article_write': [u'write'], u'board_name': [u'test'], u'write_type':
[u'write'], u'file1_fi': [u'', u'']}>,

Mime
View raw message