Comments (8)
Hi,
Have you tried with lastest release version of ocilib ?
Oracle mutexes are non reentrant.
Your gdb output shows some thread waiting for the pool mutex to be released.
Thread 1 is waiting on another internal oracle mutex after that ocilib has acquired its own pool mutex.
Thus other threads are waiting for the pool mutex to get released. But thread 1 which acquired it is waiting for oracle to release a connection.
Is it a forked instance ?
It is not clear if the deadlock is in ocilib or if it is oracle client that hangs....
Regards,
Vincent
from ocilib.
Thanks for reply.
This is not forked process and its one process having multiple thread.
We will use latest version and let you know if same issue is coming or not.
from ocilib.
Dear Vincent
After updating the process with updated library libocilib.so.4.2.1. Similar issue occur i.e deadlock happens.
One more thing here process is handling approx 90 transaction par seconds.
Oracle Client Version: 11.2.0
Linux Version: RHEL 6.7
Please find attached gdb traces,lsof ,pmap,strace of process.
gdbfull4.1.txt
from ocilib.
Hi,
Can you try to combine the flag value 0x08 to the environment mode passed to OCI_Initialize() and run the code again ?
Thanks
Vincent
from ocilib.
Hi,
I have changed OCI_Initialize as below
//if (!OCI_Initialize(NULL, NULL, OCI_ENV_DEFAULT | OCI_ENV_THREADED|OCI_ENV_CONTEXT))
if (!OCI_Initialize(NULL, NULL, 0x08))
Now code is not hanging but it make my application non threaded and it is unable to handle the required transactions. Please suggest the way forward or we need to use OCI_POOL_CONNECTION
Thanks
Rajesh
from ocilib.
I meant to combine your flags with 0x08
like: OCI_ENV_DEFAULT | OCI_ENV_THREADED | OCI_ENV_CONTEXT | 0x08
from ocilib.
Hi
Using below statement of oci initializing. There are no effect.Process again getting hanged.
if (!OCI_Initialize(NULL, NULL, OCI_ENV_DEFAULT | OCI_ENV_THREADED|OCI_ENV_CONTEXT|0x08))
Please find attached logs
from ocilib.
Closing the issue as not reproduced and merely an issue with oracle client code.
from ocilib.
Related Issues (20)
- OCI_GetTimeout() always returns 0 since v4.7.0 HOT 11
- OCI_GetSqlIdentifier() returns invalid values for Scrollable Statements when called more than once HOT 8
- Strange behaviour with XMLTYPE HOT 23
- OCI_TypeInfoGet() : In case of failure, newly created OCI_TypeInfo object is not removed from OCI_Connection internal cache
- OCI_GetServerMajorVersion() returns wrong values for Oracle Server version < 18.1 HOT 1
- OCI_RefToText() return garbage when charset is OCI_CHARSET_WIDE HOT 1
- Error occurred at OcilibEnvironmentInitialize: Cannot load OCI shared library (oci.dll) HOT 4
- Error occurred at OcilibResultsetFetchFirst: A null Resultset handle has been provided HOT 5
- Regarding the use of connection pool to obtain links, will it be automatically recycled by connection pool? HOT 1
- I don't know why I suddenly reported this error: ocilib\include\ocilibcpp\detail\exception.hpp(92): error C2061: syntax error: identifier 'nothrow' HOT 1
- Regarding using ocilib::Pool to get links ,what happens if the maximum link is reached? HOT 1
- symbol not found in flat namespace '_OCIAQDeq' (macOS arm64) HOT 3
- Wrapper for OCINlsGetInfo() HOT 1
- On connection pool problem HOT 6
- On the limitation of the number of preprocessing bindings? HOT 1
- Why does ocilib::Resultset restrict the default construct? HOT 1
- crash with using change notification HOT 1
- Free memory after dequeue HOT 1
- DCN getObjectName display mess code HOT 1
- Invalid problem of batch std::vector<ocilib::Date > date display. HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ocilib.