Coder Social home page Coder Social logo

Comments (8)

vrogier avatar vrogier commented on June 8, 2024

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.

rajeshm9 avatar rajeshm9 commented on June 8, 2024

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.

rajeshm9 avatar rajeshm9 commented on June 8, 2024

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.

vrogier avatar vrogier commented on June 8, 2024

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.

rajeshm9 avatar rajeshm9 commented on June 8, 2024

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.

vrogier avatar vrogier commented on June 8, 2024

I meant to combine your flags with 0x08

like: OCI_ENV_DEFAULT | OCI_ENV_THREADED | OCI_ENV_CONTEXT | 0x08

from ocilib.

rajeshm9 avatar rajeshm9 commented on June 8, 2024

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

gdbfull4.1.1.txt

from ocilib.

vrogier avatar vrogier commented on June 8, 2024

Closing the issue as not reproduced and merely an issue with oracle client code.

from ocilib.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.