Closed paumayr closed 8 months ago
@paumayr Are you testing against a 23c DB, either the beta or dev release version?
The 23c DB is the only DB version that supports pipelining.
Yes, select BANNER_FULL from v$version gives me
Oracle Database 23c Free, Release 23.0.0.0.0 - Developer-Release Version 23.2.0.0.0
@paumayr We have fixed this bug. We're going to try to squeeze it in for the ODP.NET 23.3 release.
If you have an SR open for this issue, you can request a validation fix to verify whether the issue is fixed in your specific use case prior to the 23.3 release. If you do have a SR, let me know the number so that I can route the fix to the SR.
Not sure if this is the correct place to report issues with ODP.net, but I'll try anyhow:
I am trying to execute table inserts asynchronously with transactions and pipelining. The part of our application uses Oracle purely as a data sink (other parts would read from here).
During evaluation of the pipelining feature (which we are extremely excited about!) we eventually end up with the thread blocking in a recv in the following stack:
I originally got this issue when using Dapper, but could reproduce it by accessing the conn.State property before creating a new command. The following snippet produces this lock. It works with Pipelining disabled. Note that it requires a transaction to be present to work.
Please note that it does require a few "pending" tasks to happen. I set the number to 200 here, which allowed me to consistently reproduce the issue on my local machine.
Oracle.ManagedDataAccess.Core 23.2.0-dev .Net 7