Vertica 8.1 ADO.NET X64 driver throws exception in x64 Build

0

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);
ado.net
vertica

1 Answer

0

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

answered on Stack Overflow Jul 24, 2017 by Jawad Al Shaikh

User contributions licensed under CC BY-SA 3.0