Using Example from docs in:
Building Console APP (.NET 4.6.1) with "prefer 32-bit" CHECKED, it works and the connection Open. But when I unchecked "prefer 32-bit" it throws exception in
_conn.Open();
Faulting application name: VerticaTest.exe, version: 1.0.0.0, time stamp: 0x595cfac6
Faulting module name: ntdll.dll, version: 6.3.9600.18696, time stamp: 0x5915ecd6
Exception code: 0xc0000374
Fault offset: 0x000e61f4
Faulting process id: 0x2a0c
Faulting application start time: 0x01d2f5a312570f3a
Faulting application path: C:\VerticaTest\VerticaTest.exe
Faulting module path: C:\Windows\SYSTEM32\ntdll.dll
Report Id: 502e9318-6196-11e7-80bf-005056c00008
Faulting package full name:
Faulting package-relative application ID:
I tried to debug the dumps but nothing extra revealed as Vertica don't ship debug symbols for the drivers.
Replicating this issue is very simple: just uncheck "prefer 32-bit" from project properties while testing any vertica example from the official docs.
Also in Windows Service Build, crash always occur with all build modes!
I compared MySQL .net connector which works well in all modes with Vertica Driver and CorFlags shows no difference!
C:\Program Files (x86)\Microsoft Visual Studio 14.0>corflags D:\Development\VS2015\Vertica.NET64-8.1.0.0\Vertica.Data.dll
Microsoft (R) .NET Framework CorFlags Conversion Tool. Version 4.6.1055.0
Copyright (c) Microsoft Corporation. All rights reserved.
Version : v2.0.50727
CLR Header: 2.5
PE : PE32
CorFlags : 0x9
ILONLY : 1
32BITREQ : 0
32BITPREF : 0
Signed : 1
C:\Program Files (x86)\Microsoft Visual Studio 14.0>corflags D:\Development\VS2015\mysql-connector-net-6.9.9-noinstall\v4.5\MySql.Data.dll
Microsoft (R) .NET Framework CorFlags Conversion Tool. Version 4.6.1055.0
Copyright (c) Microsoft Corporation. All rights reserved.
Version : v4.0.30319
CLR Header: 2.5
PE : PE32
CorFlags : 0x9
ILONLY : 1
32BITREQ : 0
32BITPREF : 0
Signed : 1
I enabled all logs but nothing being logged before the exception!
vConStrBuilder.PreloadLogging = true;
VerticaConnection verticaConn = new VerticaConnection(vConStrBuilder.ToString());
VerticaLogProperties.SetLogLevel(VerticaLogLevel.Trace, false);
VerticaLogProperties.SetLogPath("C:\\VerticaTest\\vlog.log", false);
VerticaLogProperties.SetLogNamespace("_verticaNS_", false);
Issue resolved in ADO.NET driver version 8.1.1.0 bundled in "VerticaSetup-8.1.1-0.exe":
VER-54851
Client Drivers - ADO Client Drivers - Misc
Due to a non-deterministic error, connecting to Vertica using the 8.1 ADO connector previously failed with heap corruption.
Ref: https://my.vertica.com/docs/ReleaseNotes/8.1.x/Vertica_8.1.x_Release_Notes.htm#8.1.0-5
User contributions licensed under CC BY-SA 3.0