-
Notifications
You must be signed in to change notification settings - Fork 80
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
core dumps generated in libclntsh when timeouts are configured #165
Comments
|
We used pooled connection where during startup of the application, it would create some connections with the following pool creation params:
We needed constant amount of connection available at all times. Then we added the pool wait time to operate in a NON-BLOCKING mode . If there is a timeout then it would result in a failure which is okay sometimes. It rarely happens though in our scenario. We have seen we were getting more than 300k request per hour where ~70 reqs were not getting any connection. This is okay at out current deployment.
But when there is a space issue in DB, then the procedure execution would fail after 2s per connection and give the error
|
now we are getting this,
sqlnet.log
We had exactly this issue before adding DIAG_* params in sqlnet.ora file. Here is a stackoverflow thread which suggested DIAG_*'s addition. |
Maybe poolCreateParams.sessionIncrement = 1; Would be more real-world (what libclntsh writers awaited for)? |
from doc here dpiPoolCreateParams.timeout
dpiPoolCreateParams.sessionIncrement
I need a constant number of connections available at all time. so I added,
Both have the same value assigned. I don't want to terminate idle connections ,so there will be no cost of creating one when needed. It can fail if there is none available within the pool timeout time. So I decided to assign session increment to zero. As there is no termination, max and min has same value assigned to the maxSessions param. |
@cjbj, Should we consider updating instant client to 19.12? Where should we go from here? Changing DB version is not an option right now. I am getting the feeling that these tools work better with relatively new versions of oracle DB. But to be honest, this timeout feature is too basic to fail this way. So, I am not sure why it is not working as it should. Is there any other info needed for you guys to understand it better? |
I cannot unsee the similarity with godror/godror#192 (comment) - we se SIGSEGVs when the pool is full (timeouts set), and acquiring new connections concurrently and fast enough. Limiting the number of sessions on the call side (Go) evades this. |
The Go issue could be unrelated, so let's treat the issues separately for now. I just finished a discussion with the OCI developers. They want to know what's going but, but as expected, a testcase would help diagnose the problem. We could look at trace. Overall it would be best if you could create an Oracle support request for the problem so "sensitive" files like traces can be shared; I don't know whether you can do this since you have 11.2 DB? It would be channelled through the OCI support team. |
@quidstone if you're unable to createa support request (I wonder what your support status of 11.2 is?), I am happy to have a call with you to gather information. Send me email (see my profile). |
hi @cjbj , I have already created a support request through our db-admin at out company. I admit that things are moving slow. This is more of our problem than anyone else's. We have to provide oracle support team traces from both servers(DB, client) when there is an issue. This is taking more time than it should. Unless I share those traces, I can't really tell what's next. We can talk about it a bit though. I will send you an email. thanks. |
the version is
4.2.1
Red Hat Enterprise Linux Server release 7.9
gcc (GCC)
4.8.5
19.11, I installed it as an rpm. installed location is
/usr/lib/oracle/19.11/client64
11.2
PATH
environment variable (on Windows) orLD_LIBRARY_PATH
(on Linux) set to?LD_LIBRARY_PATH
is set to the odpi-c lib locationapplication is running as a service.
We have added timeouts is sqlnet.ora as we face db space issue for a partitioned table quite a lot. After adding that whenever the issue occurs, every time we get few core dumps. I am sharing both core dump backtrace and sqlnet.ora file entry.
backtrace:(some of the stack is omitted)
sqlnet.ora file contents:
no
The text was updated successfully, but these errors were encountered: