[ https://issues.apache.org/jira/browse/THRIFT-1682?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Felipe Toledo G Oliveira updated THRIFT-1682: --------------------------------------------- Attachment: (was: BrokenPipeCpp_src.tar.gz) > Multiple thread calling a Service function unsafely causes message corruption > and terminates with Broken Pipe > ------------------------------------------------------------------------------------------------------------- > > Key: THRIFT-1682 > URL: https://issues.apache.org/jira/browse/THRIFT-1682 > Project: Thrift > Issue Type: Bug > Components: C++ - Library > Affects Versions: 0.7, 0.8, 0.9 > Environment: Linux Kernel: 2.6.32-42-generic (Ubuntu 10.04) > Reporter: Felipe Toledo G Oliveira > Priority: Critical > Labels: c++, corruption, thread-safe, thread-safety, threading > > If more than one thread attempts to send messages using the same Client > instance, one of the threads corrupts another thread's parameter values and > terminates program displaying Broken Pipe. > If the Service function is locked with a Mutex, the issue stops occurring. > See the following log fragment, displaying 'Unknown[*]', where '*' is a > corrupt value. > <log fragment> > Thrift: Tue Aug 28 13:12:00 2012 TSimpleServer uncaught exception. > virtual void FooHandler::bar(int32_t, zoo::StateType::type, > zoo::WeekdayType::type): id: 0, state: Unknown[152587096], weekday: > Unknown[152587096] > Thrift: Tue Aug 28 13:12:00 2012 TSocket::write_partial() send() <Host: > 127.0.0.1 Port: 9000>Broken pipe > terminate called after throwing an instance of 'std::exception' > what(): std::exception > void FooPeer::bar(int32_t, zoo::StateType::type, zoo::WeekdayType::type): > Exception: write() send(): Broken pipe > void FooPeer::bar(int32_t, zoo::StateType::type, zoo::WeekdayType::type): id: > 0, state: START, weekday: TUESDAY > </log fragment> > Please, check our sample code at 'BrokenPipeCpp_src.tar.gz' in order to > reproduce this error. > Regards, > Felipe -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira