Open carlintj opened 2 years ago
I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label.
Tagging subscribers to this area: @roji, @ajcvickers See info in area-owners.md if you want to be subscribed.
Author: | carlintj |
---|---|
Assignees: | - |
Labels: | `untriaged`, `area-System.Data.OleDB` |
Milestone: | - |
Possibly related to https://github.com/dotnet/runtime/issues/76054
The fact that this doesn't happen in .NET Framework 4.8 may indeed indicate a bug in .NET Core's System.Data.OleDb... And agreed that this could be the same bug as in #76054.
Note that a recent ACE update may make this go away (or it may hide a bug still present in System.Data.OleDb), see https://github.com/dotnet/runtime/issues/76054#issuecomment-1270753718.
Description
We're having an issue where our .Net 6 WinForms application will not exit after we open a connection to an Access database due to an exception being thrown outside of our code. I've been able to recreate the same fault with the code below. No exception is thrown during running, only when the application is exiting. Even more strangely is that we run into this even if the Access database specified in the connection string doesn't exist. What seems to be happening is that an access violation exception is thrown on exit, the application tries to exit, and then another exception is thrown which is causing an endless loop.
Reproduction Steps
Create a .Net 6 console application and use the following for the main body
Expected behavior
Application exits without error
Actual behavior
Application hangs on exit using 100% of a CPU core.
Regression?
This works without error in .Net Framework 4.8
Known Workarounds
No response
Configuration
.Net 6, Windows 10 Business 21H2. Office version installed is Microsoft 365 MSO (Version 2209 Build 16.0.15629.20152) 64-bit
Other information
We have seen this behavior across multiple different machines and have tried many different versions of the access runtimes without any change in behavior.