[ 
https://issues.apache.org/jira/browse/THRIFT-3147?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

julien greard resolved THRIFT-3147.
-----------------------------------
       Resolution: Not A Problem
    Fix Version/s: 0.9.2

not a bug after all - it was a compilation issue, my compiler was mixing 0.9.1 
and 0.9.2 sources... It works well after deleting 0.9.1 sources

> Segfault while receiving data
> -----------------------------
>
>                 Key: THRIFT-3147
>                 URL: https://issues.apache.org/jira/browse/THRIFT-3147
>             Project: Thrift
>          Issue Type: Bug
>          Components: C++ - Compiler, C++ - Library
>    Affects Versions: 0.9.2
>         Environment: Ubuntu 12.04
>            Reporter: julien greard
>             Fix For: 0.9.2
>
>
> Hello,
> I'm working on a Thrift Client/Server app for a while. I was working with 
> 0.9.1 successfully and I wanted to try the 0.9.2.
> I now get a segfault when my client tries to reach the server:
> Thread [19] 14167 [core: 6] (Suspended : Signal : SIGSEGV:Segmentation fault) 
>       apache::thrift::transport::TTransport::readAll() at TTransport.h:126 
> 0x1f4ac60  
>       
> apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::readI32()
>  at TBinaryProtocol.tcc:375 0x1f63794       
>       
> apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>::readMessageBegin()
>  at TBinaryProtocol.tcc:206 0x1f62fa5      
>       
> apache::thrift::protocol::TVirtualProtocol<apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport>,
>  apache::thrift::protocol::TProtocolDefaults>::readMessageBegin_virt() at 
> TVirtualProtocol.h:432 0x1f61d0e 
>       apache::thrift::protocol::TProtocol::readMessageBegin() at 
> TProtocol.h:531 0x26ca66e    
>       apache::thrift::TDispatchProcessor::process() at 
> TDispatchProcessor.h:113 0x26cac59     
>       apache::thrift::server::TSimpleServer::serve() at TSimpleServer.cpp:100 
> 0x7ffff0cbb714  
>       evitech::ConfigurationThriftServer::open() at 
> ConfigurationThriftServer.cpp:111 0x26c8c0e       
>       evitech::DistantConfigurationManager::execute() at 
> DistantConfigurationManager.cpp:62 0x26d22c2 
>       evitech::Task::runOneIteration() at Task.cpp:408 0x26f8eec      
>       <...more frames...>     
> On the server side, I have a C++ app with (snapshot of code):
>     _processor.reset(new 
> jaguar_configuration::JaguarConfigurationServiceProcessor(_handler));
>     _protocolFactory.reset(new 
> apache::thrift::protocol::TBinaryProtocolFactory());
>      _serverTransport.reset(new 
> apache::thrift::transport::TServerSocket(_serverPort));
>     _transportFactory.reset(new 
> apache::thrift::transport::TBufferedTransportFactory());
>     _server.reset(new apache::thrift::server::TSimpleServer(_processor, 
> _serverTransport, _transportFactory, _protocolFactory));
>     _server.serve();
> On the client side, I run a python app with:
> - TSocket 
> - TBufferedTransport
> - TBinaryProtocol
> Here is the method I use (idl):
> void keep_alive(1: string identifier) throws (1:InvalidOperation op),
> I'm probably doing something wrong, but I've no idea what. I've seen in 
> wireshark that I'm indeed sending the correct data on the correct side. If 
> you need more samples to investigate let me know.
> What could have changed between 0.9.1 and 0.9.2 that could give me this 
> result ?
> Thanks in advance,
> J. Greard



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to