Deadlock in Devart.Common.DbConnectionPool.GetObject()
-
- Devart Team
- Posts: 2420
- Joined: Wed 02 Nov 2011 09:44
Re: Deadlock in Devart.Common.DbConnectionPool.GetObject()
We plan to create and send the build to you at the beginning of the next week.
Re: Deadlock in Devart.Common.DbConnectionPool.GetObject()
Thank you. Please provide some insight into the nature of the fix once it is made so that we can properly scope our testing effort.
-
- Devart Team
- Posts: 2420
- Joined: Wed 02 Nov 2011 09:44
Re: Deadlock in Devart.Common.DbConnectionPool.GetObject()
We have answered you via e-mail.
Re: Deadlock in Devart.Common.DbConnectionPool.GetObject()
Our client has been testing the patch for over a month now. They continue to have the same deadlock issue as I originally reported. The patch does not appear to have corrected the issue. Please advise.
Re: Deadlock in Devart.Common.DbConnectionPool.GetObject()
Here is a snippet of the deadlock reported by windbg:
CLR thread 0x56 holds the lock on SyncBlock 000000000ebc07e8 OBJ:00000003028aca78[Devart.Data.Oracle.OracleInternalConnection]
...and is waiting for the lock on SyncBlock 000000000e88a0d8 OBJ:00000001804dbbf0[System.Collections.ArrayList]
CLR thread 0x27 holds the lock on SyncBlock 000000000e88a0d8 OBJ:00000001804dbbf0[System.Collections.ArrayList]
...and is waiting for the lock on SyncBlock 000000000ebc07e8 OBJ:00000003028aca78[Devart.Data.Oracle.OracleInternalConnection]
CLR Thread 0x56 is waiting at Devart.Common.DbConnectionPool.RemoveObject(System.Object)(+0x8 IL,+0x31 Native) CLR Thread 0x27 is waiting at Devart.Common.DbConnectionPoolGroup.a(Devart.Common.DbConnectionPool)(+0x25 IL,+0xa2 Native)
CLR thread 0x56 holds the lock on SyncBlock 000000000ebc07e8 OBJ:00000003028aca78[Devart.Data.Oracle.OracleInternalConnection]
...and is waiting for the lock on SyncBlock 000000000e88a0d8 OBJ:00000001804dbbf0[System.Collections.ArrayList]
CLR thread 0x27 holds the lock on SyncBlock 000000000e88a0d8 OBJ:00000001804dbbf0[System.Collections.ArrayList]
...and is waiting for the lock on SyncBlock 000000000ebc07e8 OBJ:00000003028aca78[Devart.Data.Oracle.OracleInternalConnection]
CLR Thread 0x56 is waiting at Devart.Common.DbConnectionPool.RemoveObject(System.Object)(+0x8 IL,+0x31 Native) CLR Thread 0x27 is waiting at Devart.Common.DbConnectionPoolGroup.a(Devart.Common.DbConnectionPool)(+0x25 IL,+0xa2 Native)
-
- Devart Team
- Posts: 2420
- Joined: Wed 02 Nov 2011 09:44
Re: Deadlock in Devart.Common.DbConnectionPool.GetObject()
Sorry for the late response. Without a test project, which can consistently reproduce the issue we can make fixes only like "shooting in the dark". We have found a place that potentially can cause a deadlock and fixed it. We have sent you internal assemblies with the fix. We are studying our pooling code and cannot find other places that potentially can cause a deadlock.
Please make sure that your application on your client computer uses the Devart assemblies with these changes at runtime.
Please make sure that your application on your client computer uses the Devart assemblies with these changes at runtime.