| Bug #119161 | ODBC Connector 9.4.0 Access Violation | ||
|---|---|---|---|
| Submitted: | 15 Oct 2025 11:03 | Modified: | 5 Jan 8:25 |
| Reporter: | Michael Forshaw | Email Updates: | |
| Status: | Open | Impact on me: | |
| Category: | Connector / ODBC | Severity: | S2 (Serious) |
| Version: | 9.4.0 | OS: | Windows (Server 2016, 2022) |
| Assigned to: | CPU Architecture: | x86 (x86-64) | |
[15 Oct 2025 11:03]
Michael Forshaw
[5 Jan 8:25]
Michael Forshaw
InterSystems have analysed full crash dumps and know what is causing the crash. They have asked me to add the following information and evidence. We can provide the full crash dumps if required (very large files). I have changed the severity to S2 as per the definitions - this is causing serious issues for our customers. - We are experiencing an intermittent access violation in applications using MySQL ODBC Driver 9 (Unicode) on Windows. Crash dumps show instruction execution occurring inside myodbc9w.dll after the DLL has already been unloaded, consistent with a use-after-unload / stale pointer defect inside the driver. - The crash is timing-dependent and does not occur on every execution, which is consistent with this class of bug. Crash Evidence (From Full Memory Dumps): 1. Instruction Pointer Inside an Unloaded Module From WinDbg analysis: ExceptionAddress: 00007ffd1336c963 (<Unloaded_myodbc9w.dll>+0x6c963) ExceptionCode: c0000005 (Access violation) Attempt to read from address 000002ac2877c808 WinDbg explicitly identifies the faulting instruction as belonging to myodbc9w.dll that has already been unloaded. 2. Module Was Unloaded Before the Crash Loaded / unloaded module list at time of crash: Unloaded modules: 00007ffd`13300000 00007ffd`1432b000 myodbc9w.dll Despite being unloaded, execution later resumes at: <Unloaded_myodbc9w.dll>+0x6c963 This indicates control flow entered code belonging to the driver after DLL teardown. 3. Access Violation on Heap Address Attempt to read from address 000002ac2877c808 Address lies in user heap space Heap extension (!heap -x) cannot resolve it Consistent with memory whose lifetime has ended 4. Stack Trace Cannot Be Unwound kpn # Child-SP RetAddr Call Site 00 000000a9`aa6fec10 00000000`00000000 <Unloaded_myodbc9w.dll>+0x6c963 Return address is NULL No unwind metadata available Typical when executing code from an unloaded module
