From dev-return-56152-archive-asf-public=cust-asf.ponee.io@thrift.apache.org Thu Jun 6 19:02:03 2019 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [207.244.88.153]) by mx-eu-01.ponee.io (Postfix) with SMTP id 8876A180763 for ; Thu, 6 Jun 2019 21:02:02 +0200 (CEST) Received: (qmail 72639 invoked by uid 500); 6 Jun 2019 19:02:01 -0000 Mailing-List: contact dev-help@thrift.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@thrift.apache.org Delivered-To: mailing list dev@thrift.apache.org Received: (qmail 72628 invoked by uid 99); 6 Jun 2019 19:02:01 -0000 Received: from mailrelay1-us-west.apache.org (HELO mailrelay1-us-west.apache.org) (209.188.14.139) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 06 Jun 2019 19:02:01 +0000 Received: from jira-lw-us.apache.org (unknown [207.244.88.139]) by mailrelay1-us-west.apache.org (ASF Mail Server at mailrelay1-us-west.apache.org) with ESMTP id B36AAE2D2F for ; Thu, 6 Jun 2019 19:02:00 +0000 (UTC) Received: from jira-lw-us.apache.org (localhost [127.0.0.1]) by jira-lw-us.apache.org (ASF Mail Server at jira-lw-us.apache.org) with ESMTP id 29C19245E7 for ; Thu, 6 Jun 2019 19:02:00 +0000 (UTC) Date: Thu, 6 Jun 2019 19:02:00 +0000 (UTC) From: "James E. King III (JIRA)" To: dev@thrift.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (THRIFT-4880) Crash in apache::thrift::protocol::TProtocol::writeMessageBegin(std::string const&, apache::thrift::protocol::TMessageType, int)+3) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/THRIFT-4880?page=3Dcom.atlassia= n.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=3D168= 58001#comment-16858001 ]=20 James E. King III commented on THRIFT-4880: ------------------------------------------- oprot in this case is a TProtocol which wraps a TTransport It is a smart pointer and should not be corrupt. Versions before 0.10.0 have known concurrency issues; the code you are usin= g is at least 5 years old. The entire server on C++ and much of the concur= rency classes have been updated since then. We've also added features like= being able to safely stop() the server even if clients are connected. In = older code like 0.9.1, stop() blocks until there are no connected clients. I'd recommend you upgrade to version 0.12.0 and see if the problem persists= . If it does, rebuild the server with in debug mode with symbols so you ca= n better see what's happening. > Crash in apache::thrift::protocol::TProtocol::writeMessageBegin(std::stri= ng const&, apache::thrift::protocol::TMessageType, int)+3) > -------------------------------------------------------------------------= ---------------------------------------------------------- > > Key: THRIFT-4880 > URL: https://issues.apache.org/jira/browse/THRIFT-4880 > Project: Thrift > Issue Type: Question > Components: C++ - Library > Affects Versions: 0.9.1 > Reporter: Bhavik > Priority: Major > > Working on android application using TThreadedServer protocol in our nati= ve code , observed crash within thrift autogenerated code for an RPC call p= rocess_client. > In 400 to 500 iterations it happens once, Frequency of occurrence is very= low. otherwise code works fine most of the time it works properly. > Below are the details: > signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 7729f450 > 03-15 22:58:09.039=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0 r0 7729f458=C2=A0 r1 738a7c38=C2=A0 r2 00000002=C2=A0 r3 00= 000000 =C2=A0 > 03-15 22:58:09.039=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0 r4 00000000=C2=A0 r5 738a7c38=C2=A0 r6 738a7c0c=C2=A0 r7 77= 29f458 =C2=A0 > 03-15 22:58:09.041=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0 r8 7721be60=C2=A0 r9 738a7c3c=C2=A0 sl 7729f45c=C2=A0 fp 73= 8a7c14 =C2=A0 > 03-15 22:58:09.041=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0 ip 7729f450=C2=A0 sp 738a7c00=C2=A0 lr 76f1fd7d=C2=A0 pc 77= 29f450=C2=A0 cpsr 000f0010 =C2=A0 > 03-15 22:58:09.042=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0 d0=C2=A0 0000000000000000=C2=A0 d1=C2=A0 0000000000000000 = =C2=A0 > 03-15 22:58:09.042=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0 d2=C2=A0 0000000000000000=C2=A0 d3=C2=A0 0000000000000000 = =C2=A0 > 03-15 22:58:09.043=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0 d4=C2=A0 6f4c3a3a72656761=C2=A0 d5=C2=A0 206f4e203e206461 = =C2=A0 > 03-15 22:58:09.044=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0 d6=C2=A0 72756769666e6f63=C2=A0 d7=C2=A0 4052c00000000000 = =C2=A0 > 03-15 22:58:09.045=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0 d8=C2=A0 0000000000000000=C2=A0 d9=C2=A0 0000000000000000 = =C2=A0 > 03-15 22:58:09.046=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0 d10 0000000000000000=C2=A0 d11 0000000000000000 =C2=A0 > 03-15 22:58:09.047=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0 d12 0000000000000000=C2=A0 d13 0000000000000000 =C2=A0 > 03-15 22:58:09.048=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0 d14 0000000000000000=C2=A0 d15 0000000000000000 =C2=A0 > 03-15 22:58:09.049=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0 d16 00000000241f30a4=C2=A0 d17 00000000241f30a4 =C2=A0 > 03-15 22:58:09.049=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0 d18 41cd063bbd000000=C2=A0 d19 0000000000000000 =C2=A0 > 03-15 22:58:09.050=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0 d20 0000000000000000=C2=A0 d21 0000000000000000 =C2=A0 > 03-15 22:58:09.051=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0 d22 0000000000000000=C2=A0 d23 0000000000000000 =C2=A0 > 03-15 22:58:09.051=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0 d24 0000000000000000=C2=A0 d25 0000000000000000 =C2=A0 > 03-15 22:58:09.051=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0 d26 0000000000000000=C2=A0 d27 0000000000000000 =C2=A0 > 03-15 22:58:09.052=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0 d28 0000000000000000=C2=A0 d29 0000000000000000 =C2=A0 > 03-15 22:58:09.053=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0 d30 0000000000000000=C2=A0 d31 0000000000000000 =C2=A0 > 03-15 22:58:09.054=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0 scr 00000010 =C2=A0 > 03-15 22:58:09.056=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0 =C2= =A0 > 03-15 22:58:09.056=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 : backtrace:= =C2=A0 > 03-15 22:58:09.057=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0 #00=C2=A0 pc 000ec450=C2=A0 [heap] =C2=A0 > 03-15 22:58:09.058=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0 #01=C2=A0 pc 00076d79=C2=A0 /system/lib/libmanager.so (canm= anager::thrift::TManagerBackendProcessor::process_Client(int, apache::thrif= t::protocol::TProtocol*, apache::thrift::protocol::TProtocol*, void*)+244) = =C2=A0 > 03-15 22:58:09.058=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0 =C2= =A0 > 03-15 22:58:09.058=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 : stack: =C2= =A0 > 03-15 22:58:09.059=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 738a7bc0=C2=A0 738a7c14=C2=A0= [stack:3867] =C2=A0 > 03-15 22:58:09.059=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 738a7bc4=C2=A0 76ce49b1=C2=A0= /vendor/lib/libc.so (malloc+12) =C2=A0 > 03-15 22:58:09.060=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 738a7bc8=C2=A0 3ffffffc=C2=A0= =C2=A0 =C2=A0 > 03-15 22:58:09.060=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 738a7bcc=C2=A0 0000000e=C2=A0= =C2=A0 =C2=A0 > 03-15 22:58:09.060=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 738a7bd0=C2=A0 76f388b2=C2=A0= /system/lib/libmanager.so =C2=A0 > 03-15 22:58:09.060=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 738a7bd4=C2=A0 772a0428=C2=A0= [heap] =C2=A0 > 03-15 22:58:09.060=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 738a7bd8=C2=A0 7729f458=C2=A0= [heap] =C2=A0 > 03-15 22:58:09.060=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 738a7bdc=C2=A0 76e504a7=C2=A0= /system/lib/libgnustl_shared.so (char* std::string::_S_construct(char const*, char const*, std::allocator const&, std::forward_ite= rator_tag)+62) =C2=A0 > 03-15 22:58:09.061=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 738a7be0=C2=A0 76f388b2=C2=A0= /system/lib/libmanager.so =C2=A0 > 03-15 22:58:09.061=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 738a7be4=C2=A0 738a7c38=C2=A0= [stack:3867] =C2=A0 > 03-15 22:58:09.061=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 738a7be8=C2=A0 738a7c0c=C2=A0= [stack:3867] =C2=A0 > 03-15 22:58:09.062=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 738a7bec=C2=A0 76e507ab=C2=A0= /system/lib/libgnustl_shared.so (std::basic_string, std::allocator >::basic_string(char const*, std::allocator const&)+34) =C2=A0 > 03-15 22:58:09.062=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 738a7bf0=C2=A0 00000000=C2=A0= =C2=A0 =C2=A0 > 03-15 22:58:09.062=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 738a7bf4=C2=A0 738a7c38=C2=A0= [stack:3867] =C2=A0 > 03-15 22:58:09.063=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 738a7bf8=C2=A0 df0027ad=C2=A0= =C2=A0 =C2=A0 > 03-15 22:58:09.063=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 738a7bfc=C2=A0 00000000=C2=A0= =C2=A0 =C2=A0 > 03-15 22:58:09.064=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0 #00=C2=A0 738a7c00=C2=A0 00000000=C2=A0=C2=A0 =C2=A0 > 03-15 22:58:09.064=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ........=C2=A0 ........ =C2= =A0 > 03-15 22:58:09.064=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0 #01=C2=A0 738a7c00=C2=A0 00000000=C2=A0=C2=A0 =C2=A0 > 03-15 22:58:09.065=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 738a7c04=C2=A0 76d221f4=C2=A0= =C2=A0 =C2=A0 > 03-15 22:58:09.065=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 738a7c08=C2=A0 76e6e368=C2=A0= =C2=A0 =C2=A0 > 03-15 22:58:09.065=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 738a7c0c=C2=A0 76e4f249=C2=A0= /system/lib/libgnustl_shared.so (std::string::_M_mutate(unsigned int, unsi= gned int, unsigned int)+60) =C2=A0 > 03-15 22:58:09.066=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 738a7c10=C2=A0 00000018=C2=A0= =C2=A0 =C2=A0 > 03-15 22:58:09.066=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 738a7c14=C2=A0 00000000=C2=A0= =C2=A0 =C2=A0 > 03-15 22:58:09.067=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 738a7c18=C2=A0 00000000=C2=A0= =C2=A0 =C2=A0 > 03-15 22:58:09.067=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 738a7c1c=C2=A0 76f3c091=C2=A0= /system/lib/libmanager.so =C2=A0 > 03-15 22:58:09.068=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 738a7c20=C2=A0 76f44808=C2=A0= /system/lib/libmanager.so =C2=A0 > 03-15 22:58:09.068=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 738a7c24=C2=A0 ffffffff=C2=A0= =C2=A0 =C2=A0 > 03-15 22:58:09.069=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 738a7c28=C2=A0 00000001=C2=A0= =C2=A0 =C2=A0 > 03-15 22:58:09.069=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 738a7c2c=C2=A0 76f44828=C2=A0= /system/lib/libmanager.so =C2=A0 > 03-15 22:58:09.070=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 738a7c30=C2=A0 0000472f=C2=A0= =C2=A0 =C2=A0 > 03-15 22:58:09.070=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 738a7c34=C2=A0 76e6e301=C2=A0= =C2=A0 =C2=A0 > 03-15 22:58:09.070=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 738a7c38=C2=A0 772a0434=C2=A0= [heap] =C2=A0 > 03-15 22:58:09.071=C2=A0 1600=C2=A0 1600 I DEBUG=C2=A0=C2=A0 :=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 738a7c3c=C2=A0 772a0410=C2=A0= [heap] > =C2=A0 > void TManagerBackendProcessor::process_Client(int32_t seqid, ::apache::th= rift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* op= rot, void* callContext) > { > =C2=A0 void* ctx =3D NULL; > =C2=A0 if (this->eventHandler_.get() !=3D NULL) { > =C2=A0=C2=A0=C2=A0 ctx =3D this->eventHandler_->getContext("TManagerBacke= nd.Client", callContext); > =C2=A0 } > =C2=A0 ::apache::thrift::TProcessorContextFreer freer(this->eventHandler_= .get(), ctx, "TManagerBackend.Client"); > =C2=A0 if (this->eventHandler_.get() !=3D NULL) { > =C2=A0=C2=A0=C2=A0 this->eventHandler_->preRead(ctx, "TManagerBackend.Cli= ent"); > =C2=A0 } > =C2=A0 TManagerBackend_Client_args args; > =C2=A0 args.read(iprot); > =C2=A0 iprot->readMessageEnd(); > =C2=A0 uint32_t bytes =3D iprot->getTransport()->readEnd(); > =C2=A0 if (this->eventHandler_.get() !=3D NULL) { > =C2=A0=C2=A0=C2=A0 this->eventHandler_->postRead(ctx, "TManagerBackend.Cl= ient", bytes); > =C2=A0 } > =C2=A0 TManagerBackend_Client_result result; > =C2=A0 try { > =C2=A0=C2=A0=C2=A0 result.success =3D iface_->Client(args.clientId); > =C2=A0=C2=A0=C2=A0 result.__isset.success =3D true; > =C2=A0 } catch (const std::exception& e) { > =C2=A0=C2=A0=C2=A0 if (this->eventHandler_.get() !=3D NULL) { > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 this->eventHandler_->handlerError(ctx, "TM= anagerBackend.Client"); > =C2=A0=C2=A0=C2=A0 } > =C2=A0=C2=A0=C2=A0 ::apache::thrift::TApplicationException x(e.what()); > =C2=A0=C2=A0=C2=A0 oprot->writeMessageBegin("Client", ::apache::thrift::p= rotocol::T_EXCEPTION, seqid); > =C2=A0=C2=A0=C2=A0 x.write(oprot); > =C2=A0=C2=A0=C2=A0 oprot->writeMessageEnd(); > =C2=A0=C2=A0=C2=A0 oprot->getTransport()->writeEnd(); > =C2=A0=C2=A0=C2=A0 oprot->getTransport()->flush(); > =C2=A0=C2=A0=C2=A0 return; > =C2=A0 } > =C2=A0 if (this->eventHandler_.get() !=3D NULL) { > =C2=A0=C2=A0=C2=A0 this->eventHandler_->preWrite(ctx, "TManagerBackend.Cl= ient"); > =C2=A0 } > {color:#FF0000}=C2=A0 oprot->writeMessageBegin("Client", ::apache::thrift= ::protocol::T_REPLY, seqid); //->line where crash observed (seems oprot is = getting undesired value here, seems this is the first location of oprot get= ting used after its initialization in TthreadedServer, also first call made= after TThreadedServer calls serve()){color} > =C2=A0 result.write(oprot); > =C2=A0 oprot->writeMessageEnd(); > =C2=A0 bytes =3D oprot->getTransport()->writeEnd(); > =C2=A0 oprot->getTransport()->flush(); > =C2=A0 if (this->eventHandler_.get() !=3D NULL) { > =C2=A0=C2=A0=C2=A0 this->eventHandler_->postWrite(ctx, "TManagerBackend.C= lient", bytes); > =C2=A0 } > } > =C2=A0 > we are using TThreadedServer with TBufferedTransportFactory. > Checked everything in our code, not sure the crash is because of thrift c= ode or not. Kindly help me to understand the significance of TProtocol opro= t and possible root cause of the crash happening... > =C2=A0 > =C2=A0 > =C2=A0 > =C2=A0 > =C2=A0 -- This message was sent by Atlassian JIRA (v7.6.3#76005)