Hello David, When I'm testing with Ubuntu 32-bit version installed in "SAME" server (I mean, same hardware), no problem occurs. Problem only occurs when I'm using Ubuntu 64-bit version. I'm trying to write down a code which is short and simple enough to report & reproduce this problem. Would this be helpful to find out the exact problematic point?
@ Maybe I should use 32-bit server for now ... 2010/5/18 David Reiss <[email protected]>: > I'm not really sure what would cause this. It sounds like either > a bug in the fastbinary module or corrupted data being sent to the > server. > > --David > > Francisco Byun wrote: >> Hello David, >> >> I forgot to take a look at server error log. This is what I found from >> server. Well, server think, it got "Unexpected TType". Again, it only >> happens when I put non-latin character (Korean letters) in the string. >> If I send everything purely in latin character, no ERROR occurs. >> >> 2010-05-18 03:37:57,917 [25831:-4E200470] <root> ** ERROR ** Unexpected TType >> Traceback (most recent call last): >> File "build/bdist.linux-i686/egg/thrift/server/TServer.py", line >> 157, in serveClient >> self.processor.process(iprot, oprot) >> File "/home/ara/arara/gen-py/arara_thrift/ArticleManager.py", line >> 833, in process >> self._processMap[name](self, seqid, iprot, oprot) >> File "/home/ara/arara/gen-py/arara_thrift/ArticleManager.py", line >> 1036, in process_write_article >> args.read(iprot) >> File "/home/ara/arara/gen-py/arara_thrift/ArticleManager.py", line >> 3054, in read >> fastbinary.decode_binary(self, iprot.trans, (self.__class__, >> self.thrift_spec)) >> TypeError: Unexpected TType >> >> >> 2010/5/18 David Reiss <[email protected]>: >>> It looks like the server closed the connection without sending back >>> a response. I would take a look at the server error log. >>> >>> --David >>> >>> Francisco Byun wrote: >>>> 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'']}>, >
