locked
Critical Bug in Access Database Engine 2010 RRS feed

  • Question

  • Hi,

    Although I don't expect Microsoft take immediate action on this, I just hope they will fix it.

    It's hard for me to explain what happens, just if you are using Microsoft Access Data Connectivity Components 2010 in your application to read data from mdb access files, you might get unexpected exceptions and your application will crash!

    To reproduce this behavior the best way is to run my sample application which will allow you to see the bug directly in no time.

    This behavior may occur at any time, any where, but I found if you use Application.DoEvents, you increase the chance to run your application to crash.

    To reproduce ::

    1. You should not have any Office version installed on your system (I am using Windows 7 x64).

     

    2. Please install the Microsoft Access Database Engine 2010 x86 (or x64 and you'll have to set your project to x64).

    http://www.microsoft.com/downloads/details.aspx?familyid=C06B8369-60DD-4B64-A44B-84B371EDE16D&displaylang=en

     

    3. Download and run my sample application in VB.NT 2010, and press the button, you will get it :(

    http://www.usvpn.org/WindowsApplication1.zip

     

    Where is Microsoft going, do you think?

    Should I hope to receive an official response?

    Tuesday, August 3, 2010 2:53 PM

Answers

  • As a suggestion...

    Instead of inviting responders to download and run unknown software on their computers, why not provide the details of what happens in your post?

    Please post any error messages you get when your application fails, and other details to support your allegation of bugs in Microsoft Access Data Connectivity Components 2010.

    The information you provide will allow others to suggest possible solutions to the problen(s) in your application. I have created numerous VB applications in VS 2010 that access data stored in MDB files, and have not encountered any issues such as those you describe. That suggests that your issue is not generic.

    One thing you mention jumps out: using Application.DoEvents. Not a recommended technique. Instead, consider implementing proper multithreading in you application using:

    http://msdn.microsoft.com/en-us/library/ck8bc5c6.aspx

    For an "official response"...

    If, after further investigation, you are convinced it is a bug in Visual Studio or the .NET Framework, submit a report here:

    https://connect.microsoft.com/VisualStudio

     

    • Proposed as answer by Cor Ligthert Tuesday, August 3, 2010 3:53 PM
    • Marked as answer by Paul Ishak Tuesday, January 29, 2013 2:46 AM
    Tuesday, August 3, 2010 3:30 PM

All replies

  • Can you provide more info about the crash. What is the app doing at the time of the crash? Is there an exception generated?

    DoEvents is potentially dangerous since it can allow for code re-entrancy. Perhaps that is what is causing your app to crash and it's not really related to the ACE Provider.


    Paul ~~~~ Microsoft MVP (Visual Basic)
    Tuesday, August 3, 2010 3:10 PM
  • As a suggestion...

    Instead of inviting responders to download and run unknown software on their computers, why not provide the details of what happens in your post?

    Please post any error messages you get when your application fails, and other details to support your allegation of bugs in Microsoft Access Data Connectivity Components 2010.

    The information you provide will allow others to suggest possible solutions to the problen(s) in your application. I have created numerous VB applications in VS 2010 that access data stored in MDB files, and have not encountered any issues such as those you describe. That suggests that your issue is not generic.

    One thing you mention jumps out: using Application.DoEvents. Not a recommended technique. Instead, consider implementing proper multithreading in you application using:

    http://msdn.microsoft.com/en-us/library/ck8bc5c6.aspx

    For an "official response"...

    If, after further investigation, you are convinced it is a bug in Visual Studio or the .NET Framework, submit a report here:

    https://connect.microsoft.com/VisualStudio

     

    • Proposed as answer by Cor Ligthert Tuesday, August 3, 2010 3:53 PM
    • Marked as answer by Paul Ishak Tuesday, January 29, 2013 2:46 AM
    Tuesday, August 3, 2010 3:30 PM
  • Can you provide more info about the crash. What is the app doing at the time of the crash? Is there an exception generated?

    DoEvents is potentially dangerous since it can allow for code re-entrancy. Perhaps that is what is causing your app to crash and it's not really related to the ACE Provider.


    Paul ~~~~ Microsoft MVP (Visual Basic)

    Hello and thank you for your help.

    If it's not related to the ACE, why this only occurs for Access Database Engine 2010 and not for 2007 version?!

    There is not an exception in a specific line, general exceptions like access protected memory exception or like that...

    The behaviour is that application just hangs, can I ask you please try to reproduce it by downloading and running my sample?

    I really need help.

    Tuesday, August 3, 2010 5:16 PM
  • As a suggestion...

    Instead of inviting responders to download and run unknown software on their computers, why not provide the details of what happens in your post?

    Please post any error messages you get when your application fails, and other details to support your allegation of bugs in Microsoft Access Data Connectivity Components 2010.

    The information you provide will allow others to suggest possible solutions to the problen(s) in your application. I have created numerous VB applications in VS 2010 that access data stored in MDB files, and have not encountered any issues such as those you describe. That suggests that your issue is not generic.

    One thing you mention jumps out: using Application.DoEvents. Not a recommended technique. Instead, consider implementing proper multithreading in you application using:

    http://msdn.microsoft.com/en-us/library/ck8bc5c6.aspx

    For an "official response"...

    If, after further investigation, you are convinced it is a bug in Visual Studio or the .NET Framework, submit a report here:

    https://connect.microsoft.com/VisualStudio

     

    You know I am not inviting people to download and run unknown software! Microsoft Access Database Engine 2010 from Microsoft is clear and my sample project is zipped and in Visual Studio Solution format without any executable/binary file included.

    This but is probably is not in Visual Studio but in Access Data Components 2010, because the same code works great with Access Data Components 2007.

    For your info, it's around 1 month that I am contacting their support to ask why such a company should release such a package WITHOUT a DIGITAL SIGNATURE and I received no response to date!

    Just take a look at those downloads here: not digitally signed:

    http://www.microsoft.com/downloads/details.aspx?familyid=C06B8369-60DD-4B64-A44B-84B371EDE16D&displaylang=en

    Tuesday, August 3, 2010 5:23 PM
  • PvdM has given you all the information we can give in this forum.

    I know that it is frustrating, but that is probably all we can do for you.

    (Or you should have logged on with a MSDN subscription logon ID and maybe an MSFT can do something more for you)

    Connect is created for this kind of message (see the link in Peter's reply)


    Success
    Cor
    Tuesday, August 3, 2010 6:31 PM
  • Hello and thank you for your help.

    If it's not related to the ACE, why this only occurs for Access Database Engine 2010 and not for 2007 version?!

    There is not an exception in a specific line, general exceptions like access protected memory exception or like that...

    The behaviour is that application just hangs, can I ask you please try to reproduce it by downloading and running my sample?

    I really need help.

    Unfortunately I have Office 2007 installed on this particular machine so I can't test your exact scenario. I was able to run the app up the OpenFileDialog command but didn't encounter any issues.

    Paul ~~~~ Microsoft MVP (Visual Basic)
    Tuesday, August 3, 2010 7:20 PM
  • Hello and thank you for your help.

    If it's not related to the ACE, why this only occurs for Access Database Engine 2010 and not for 2007 version?!

    There is not an exception in a specific line, general exceptions like access protected memory exception or like that...

    The behaviour is that application just hangs, can I ask you please try to reproduce it by downloading and running my sample?

    I really need help.

    Unfortunately I have Office 2007 installed on this particular machine so I can't test your exact scenario. I was able to run the app up the OpenFileDialog command but didn't encounter any issues.

    Paul ~~~~ Microsoft MVP (Visual Basic)
    Yes, having Office 2007 will cause this not to occur, if you un-install it and just install Access Data Components you will run to this problem as well, only if you have access to the original Office installation media so you can re-install later.
    Wednesday, August 4, 2010 3:18 AM
  • Hi,

    Did you ever get anywhere with this issue. I have exactly the same problem with our product. I did actually report it to Microsoft ages ago during the Office 2010 beta program (or whatever they call it) but nothing ever happened.

    All we can do for our users is advise them to install the 2007 Access driver.

    Cheers

    Rob

     

    Tuesday, September 7, 2010 10:09 PM
  • I got this problem too, application crashes on forms that have bindingsources and tableadapters combined with Office 2010 libraries to use a .ACCDB file (instead of MDB cause access 2010 don't support that anymore). Now i got to downgrade to office 2007 that allows MDB design alterations.

    Please mr Gates, fix this ____ fast. I want to be able to use Access 2010 and Visual Studio 2010 without crashes.

     

    This is fun, switching to MDB won't work, 64 bit machine doesn't support oledb 4 even when I build to 32 bits. This sucks bigtime, anyone any tips I want to use ACCDB or MDB without crashes on my 64 bit win 7 vs 2010. The target platform is 64 bit Win 2008 r2. I'm getting totally mad of all this time it costs, shitty error messages with trace ____ that don't mean anything. Compared to VB 6 from 1998 this new vb.net enviroment sucks for rapid application development. It really does, someone needs to get fired. And the VS 2010 is very slow too. Microsoft, please fire the manager responsible for all these problems.
    Tuesday, January 11, 2011 9:28 AM
  • Take a look at:

    https://connect.microsoft.com/VisualStudio/feedback/details/624503/oledb-operations-cause-accessviolationexception-during-savefiledialog?wa=wsignin1.0

    And please vote for a fix - using the I can reproduce this bug and the green tick button

    Monday, January 17, 2011 1:41 PM
  • Just Download it and install, it has worked for me.
    Thursday, February 24, 2011 5:31 AM
  • The precious time wasted so far.

    After around 1 year of working with Microsoft professional!!! support, they finally found the bug.
    They released a hot-fix for Access Database Engine 2010, without that this driver is almost useless!
    This is the technical details:

    The root cause has somehow to do with the ACE provider but will be caused by a different component owned by office, that is getting loaded by ACE. This DLL (MSO.DLL) is destroying data owned by a thread belonging to a different component. This will later on in the call stack result to the issue you have seen in your application. With this information in mind we could identify an existing HotFix request created by another engineer for a different issue.

    This is the hot-fix they released: KB2516475

    http://support.microsoft.com/kb/2516475

    If you install this hot-fix after installing the Access Database Engine 2010 everything will be OK.

    But what's the problem?

    Microsoft released Access Database Engine 2010 SP1, but didn't include KB2516475!!!
    This means that the driver is still useless!
    It's OK if you embed the Access Database Engine Driver and KB2516475 in your installer.
    But unfortunately, if user already installed Access Database Engine 2010 SP1, KB2516475 WILL NOT INSTALL.
    The same applies to the Office 2010 SP1.

    Conclusion: Microsoft really doesn't want it's developers use this driver in their applications or want to make real problems for them, but why wasted the time? It's really disappointing...
    Friday, July 8, 2011 4:52 PM
  • Hello,

        I met a similar problem in the sense that after debugging several days I found out Microsoft Access Database Engine 2010 causes my application to crash.

        What happens is, the Database Engine (original version and SP1) would call many times TlsRelease on a certain TlsIndex (which would often contain data from other parts of the application) and this would lead to a crash. I am also able to reproduce the problem with a very simple code sample which goes something like:

    open a database connection, 

    close database connections

    call a few times TlsAlloc, set data there

    open a database connection, 

    close database connections

    try to retrieve data previousely set in the Tls => crash.

        One sad news also is that the problem can only reproduce easily on 3 of 10 computers...

        Good news is that I tried the hotfix described above and it seems to solve the problem, but my question is:

        What should I do with several thousands customers who randomly meet this problem and they (and we) do not recognize the problem as the crash happens in random parts of our application? (those unlucky parts which use the TlsIndexes MS frees without owning).

        And even after we do recognize the problem how do we explain to the users that there is a hotfix which is complicated to obtain and impossible to install over SP1 Database Engine?

        Shouldn't Microsoft have fixed this via Windows Update or something?

      

    Thursday, October 25, 2012 12:46 PM
  • Mihai,

    I understand your frustration, but it gives no solution to tell this in this forum.

    This is an enduser forum, which is also used by those having an MSDN subscribtion and then Microsoft MSFT are helping them doing their job. 

    Also those MSFT do moderator work in these forums, and they are contributors to these forums.

    However, they do not represent Microsoft in questions like yours. Contact for that the local office of Microsoft.

    http://www.microsoft.com/worldwide/


    Success
    Cor


    Thursday, October 25, 2012 1:07 PM