thrift-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (THRIFT-4591) lua client uses two write() calls per framed message send
Date Thu, 05 Jul 2018 13:30:00 GMT

    [ https://issues.apache.org/jira/browse/THRIFT-4591?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16533648#comment-16533648
] 

ASF GitHub Bot commented on THRIFT-4591:
----------------------------------------

jeking3 commented on issue #1566: THRIFT-4591:cannot read call result via lua lib
URL: https://github.com/apache/thrift/pull/1566#issuecomment-402721880
 
 
   python library does the same thing as this change so I am going to merge it.  It previously
passed all CI tests.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


> lua client uses two write() calls per framed message send
> ---------------------------------------------------------
>
>                 Key: THRIFT-4591
>                 URL: https://issues.apache.org/jira/browse/THRIFT-4591
>             Project: Thrift
>          Issue Type: Bug
>          Components: C++ - Library
>    Affects Versions: 0.11.0
>            Reporter: allen_lee
>            Assignee: James E. King III
>            Priority: Blocker
>         Attachments: 9090.pcap, 9090_1.pcap
>
>   Original Estimate: 4h
>  Remaining Estimate: 4h
>
> 1) realize thrift server with TNonblockingServer via c++;
> 2) realize thrift client via lua lib and choose frame transport.
> 3) call remote interface failed with "TTransportException:0: Default (unknown)" print,
and the server show "TConnection::workSocket(): THRIFT_EAGAIN (unavailable resources)" error.
> 4)investigate this fault with tcpdump tool, attachment 9090.pcap show the frame msg doesnot
contains frame size field, the rifht situation of attachment 9090_1.pcap show the frame msg
contains 4 bytes (00 00 00 25) before protocol id field.
> 5) dig into the fault and tried to find root cause, then i found there is an fault in
TFramedTransport:flush function in TFramedTransport.lua file. the original realization is:
> -----
> function TFramedTransport:flush()
>   if self.doWrite == false then
>     return self.trans:flush()
>   end
>   -- If the write fails we still want wBuf to be clear
>   local tmp = self.wBuf
>   self.wBuf = ''
>   local frame_len_buf = libluabpack.bpack("i", string.len(tmp))
>   self.trans:write(frame_len_buf)
>   self.trans:write(tmp)
>   self.trans:flush()
> end
> -----
> which send frame size file and reset msg content independently.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message