Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Fixed
-
None
-
None
Description
Have an C program that uses ODBC to perform various operations.
Below: Test 1 is a unique insert. Test 6 is an insert using ODBC arrays. R indicates row arrays, C indicates column arrays.
NC indicates to use UPSERT instead of INSERT.
UL indicates to use USING LOAD.
/home/squser2/guy/ODBCAtomics> ./ODBCatomics SpinelTraf user pass TBL500 500 1 N 500 30 NC UL
Loops: 9500 for 30.883 seconds for test IUSN0500.
– Loops: 9500 for 30.883 seconds for for test IUSN0500.
/home/squser2/guy/ODBCAtomics> ./ODBCatomics SpinelTraf user pass TBL500 500 1 N -500 30 NC UL
Loops: 9500 for 30.808 seconds for test IUSN0500.
– Loops: 9500 for 30.808 seconds for for test IUSN0500.
/home/squser2/guy/ODBCAtomics> ./ODBCatomics SpinelTraf user pass TBL500 500 6 R 500 30
Loops: 18000 for 29.913 seconds for test IRSN0500.
– Loops: 18000 for 29.913 seconds for for test IRSN0500.
/home/squser2/guy/ODBCAtomics> ./ODBCatomics SpinelTraf user pass TBL500 500 6 C 500 30
Loops: 15000 for 29.879 seconds for test ICSN0500.
– Loops: 15000 for 29.879 seconds for for test ICSN0500.
/home/squser2/guy/ODBCAtomics> ./ODBCatomics SpinelTraf user pass TBL500 500 6 C -500 30 UL
Loops: 16500 for 30.251 seconds for test ICSN0500.
– Loops: 16500 for 30.251 seconds for for test ICSN0500.
/home/squser2/guy/ODBCAtomics> ./ODBCatomics SpinelTraf user pass TBL500 500 6 R -500 30 UL
Loops: 18000 for 29.939 seconds for test IRSN0500.
– Loops: 18000 for 29.939 seconds for for test IRSN0500.
/home/squser2/guy/ODBCAtomics> ./ODBCatomics SpinelTraf squser2 redhat06 TBL500 500 6 R -500 30 UL NC
Segmentation fault (core dumped)
Above is showing that UPSERTS works with single inserts but fails using arrays.
/home/squser2/guy/ODBCAtomics> ls /local/cores/$UID
core.1418942238.spinel-hn1.16244.ODBCatomics core.1418942596.spinel-hn1.26295.ODBCatomics
/home/squser2/guy/ODBCAtomics>
Core was generated by `./ODBCatomics SpinelTraf user pass TBL500 500 6 R -500 30 UL NC'.
Program terminated with signal 11, Segmentation fault.
#0 0x00007ffff61d6857 in memcpy () from /lib64/libc.so.6
Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.107.el6.x86_64 libgcc-4.4.6-4.el6.x86_64 libstdc++-4.4.6-4.el6.x86_64 nss-pam-ldapd-0.7.5-14.el6_2.1.x86_64 zlib-1.2.3-29.el6.x86_64
(gdb) bt
#0 0x00007ffff61d6857 in memcpy () from /lib64/libc.so.6
#1 0x00007ffff789fd19 in odbc_SQLDrvr_Execute_pst_ () from /home/squser2/guy/ODBCAtomics/odbc/lib64/libtrafodbc_l64.so
#2 0x00007ffff78dc722 in SQLEXECUTE_ () from /home/squser2/guy/ODBCAtomics/odbc/lib64/libtrafodbc_l64.so
#3 0x00007ffff78d741c in ThreadControlProc(void*) () from /home/squser2/guy/ODBCAtomics/odbc/lib64/libtrafodbc_l64.so
#4 0x00007ffff78c235c in CStmt::SendExecute(int) () from /home/squser2/guy/ODBCAtomics/odbc/lib64/libtrafodbc_l64.so
#5 0x00007ffff78c24ba in CStmt::Execute() () from /home/squser2/guy/ODBCAtomics/odbc/lib64/libtrafodbc_l64.so
#6 0x00007ffff78e79fe in ODBC::Execute(void*) () from /home/squser2/guy/ODBCAtomics/odbc/lib64/libtrafodbc_l64.so
#7 0x00007ffff78e4762 in NeoExecute(void*) () from /home/squser2/guy/ODBCAtomics/odbc/lib64/libtrafodbc_l64.so
#8 0x00007ffff792bf38 in SQLExecute () from /home/squser2/guy/ODBCAtomics/odbc/lib64/libtrafodbc_l64.so
#9 0x00000000004048d4 in insert_with_rowsets (wantRandom=0) at ODBCatomics.c:1090
#10 0x000000000040daa8 in main (argc=12, argv=0x7fffffff85c8) at ODBCatomics.c:3784
(gdb)