Deadlock in Devart.Common.DbConnectionPool.GetObject()

Re: Deadlock in Devart.Common.DbConnectionPool.GetObject()

Postby Pinturiccio » Tue 25 Jul 2017 14:36

At the moment we could not reproduce the issue. If you create and send us a small test project with corresponding DDL/DML scripts which reproduces the issue, it would great help in the issue research.

If your project has a size of several megabytes or more, you can archive your project and upload it to our ftp server ( ftp://ftp.devart.com/ , credentials: anonymous/anonymous ) or to any file exchange server so that we could download it from there. You can send us the password to the archive via our contact form.
Pinturiccio
Devart Team
 
Posts: 2060
Joined: Wed 02 Nov 2011 09:44

Re: Deadlock in Devart.Common.DbConnectionPool.GetObject()

Postby dabensys » Fri 22 Dec 2017 16:19

We are also having this issue at one of our client sites. We have not been able to successfully reproduce the issue in-house.

Is there any update on the status of this issue or its causes?
dabensys
 
Posts: 4
Joined: Fri 22 Dec 2017 16:16

Re: Deadlock in Devart.Common.DbConnectionPool.GetObject()

Postby Pinturiccio » Tue 02 Jan 2018 15:21

Unfortunately, the situation is not changed. Without an example that consistently reproduces the issue we cannot move forward and find out the reason of the issue.
Pinturiccio
Devart Team
 
Posts: 2060
Joined: Wed 02 Nov 2011 09:44


Re: Deadlock in Devart.Common.DbConnectionPool.GetObject()

Postby dabensys » Fri 05 Jan 2018 14:50

We have already reviewed the IIS settings related to concurrent connections. Doubling those settings only delays the time before the deadlock (i.e. freezing of the web server) occurs.

We have traced the root of the issue down to the DevArt driver and need assistance from your engineering team to troubleshoot the issue at our client site.
dabensys
 
Posts: 4
Joined: Fri 22 Dec 2017 16:16

Re: Deadlock in Devart.Common.DbConnectionPool.GetObject()

Postby dabensys » Fri 05 Jan 2018 20:23

We believe that connections in the pool are somehow becoming corrupted or invalid. Is there a way we can monitor or look into the connection pool and inspect the transactions?

We do not currently have the option of validating the connection before use because that causes a significant degradation in performance.
dabensys
 
Posts: 4
Joined: Fri 22 Dec 2017 16:16

Re: Deadlock in Devart.Common.DbConnectionPool.GetObject()

Postby Pinturiccio » Wed 10 Jan 2018 15:36

As mentioned in this topic previously, the issue is reproduced only when IIS is used. It means that the freeze occurs not because of some error in pooling implementation, but because IIS has such behavior with threads. https://forums.iis.net/t/1216179.aspx - IIS has an issue with .NET Lock. We are using .NET Lock in our pooling, and IIS has an issue with .NET Lock.
Pinturiccio
Devart Team
 
Posts: 2060
Joined: Wed 02 Nov 2011 09:44

Re: Deadlock in Devart.Common.DbConnectionPool.GetObject()

Postby dabensys » Tue 16 Jan 2018 14:58

Thank you for the information.

We recently upgraded the Devart dotConnect driver in our software from version 6.80.350.0 to 9.3.230.0. Once we deployed the latest version of our software to our client, they started to see the server freezes with regular frequency, with some web servers freezing multiple times in a day.

Were there significant changes related to how pooling is done between these 2 versions of the software? Could there be some configuration that, while working against 6.8 would cause issues against 9.2?

We will look further into this ourselves while we await your next response.
dabensys
 
Posts: 4
Joined: Fri 22 Dec 2017 16:16

Previous

Return to dotConnect for Oracle