Menu

#792 Calls to asynchronous methods not thread-safe when several CORBA system exceptions are thrown at the same time

closed
None
C++ API
5
2017-01-06
2016-04-14
No

Hi,

A thread-safety issue has been identified on the asynchronous calls API.
In a multithreaded environment, if several threads are doing asynchronous calls in parallel and some CORBA system exceptions need to be rethrown at the same time, they share the same static variable for a short period of time for the description of the system exception. And this is not protected by a lock.
The problem is due to the fact that Tango::Except::print_CORBA_SystemException is returning a pointer to a static variable.
This could lead to a segmentation fault.
A reentrant version of Tango::Except::print_CORBA_SystemException() could be implemented to fix the problem.

A fix has been tested sucessfully and will be commited in the coming days.

Cheers,
Reynald

Discussion

  • Emmanuel Taurel

    Emmanuel Taurel - 2016-04-28
    • Category: Archiving --> C++ API
     
  • Emmanuel Taurel

    Emmanuel Taurel - 2016-04-28

    Change bug category from Archiving to C++ API

     
  • Bourtembourg Reynald

    • Status: open --> closed
     

Log in to post a comment.