Hmm. Ok. So we'll try using the OTL_DESTRUCTORS_DO_NOT_THROW flag and remove the call to std::uncaught_exception and will let you know if it does resolve our issue. However, it may take around a week or more for us to know the outcome. Thanks for your time Sergei. Will get back to you. Ahsan
We can give a go to OTL_DESTRUCTORS_DO_NOT_THROW as well.
But the destructor of otl_tmpl_out_stream also sets the in_destruct_flag to 1 which is checked inside the flush function. So that case is already handled. Correct me if I'm wrong. Thanks.
But the destructor of otl_tmpl_out_stream also sets the in_destruct_flag to 1 which is checked inside the flush function. So that case is already handled. Correct me if I'm wrong. Thanks.
Hi Sergei, Thanks for getting in touch. Actually our build system is quite old. We are using GCC version 4.7.2 with C++11. We do not have any resource that says particularly about the thread safety of std::uncaught_exception on Solaris OS but there are other resources like this https://cplusplus.github.io/LWG/issue1368 that indicate that this can be an issue. Also why we think that it can be an issue due to an exception in some other thread is because the OTL library doesn't return any exception...
Hi, We are using the latest OTL version (v4.0.455) on a Solaris OS (v10). We are using the OTL library to connect with an Oracle server ORA11GR2 and have been able to perform select and procedure calls. However, on our production machines, the procedure call randomly fails and doesn't send the call to the Oracle server. On enabling logging inside the OTL library and adding more log lines we were able to narrow down the issue and what we observed was that the otl_tmpl_out_stream::flush function was...