Teradata / PyTd

A Python Module to make it easy to script powerful interactions with Teradata Database in a DevOps friendly way.
MIT License
108 stars 43 forks source link

'select ?;' crashed with segmentation fault #77

Open entong opened 7 years ago

entong commented 7 years ago

'select ?;' crashed with seg fault with both Teradata 15.10 and 16.0 ODBC drivers. This can be reproduced on OS X as well as CentOS.

Script to reproduce:

import teradata

udaExec = teradata.UdaExec(appName="my utility", version="1.0", logConsole=False)
tdc_session = udaExec.connect(method="odbc", system="tdexp14", username="tduser", password="tduser", TDMSTPortNumber=1025)

rows = tdc_session.execute('select ?;')

Output:

Segmentation fault: 11

Stack trace on OS X:

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   tdata.dylib                     0x000000010d7d1b5c DESCREC::GetConciseType() const + 12
1   tdata.dylib                     0x000000010d7d15ca DESC::GetConciseType(int) const + 42
2   tdata.dylib                     0x000000010d8d2d31 STMT::ExecDirect(CString2, int) + 4593
3   tdata.dylib                     0x000000010d8f1191 internal_SQLExecDirect + 7537
4   tdata.dylib                     0x000000010d8f1b73 SQLExecDirect + 163
5   tdata.dylib                     0x000000010d96cd1c SQLExecDirectW + 556
6   libiodbc.dylib                  0x000000010d6d9547 SQLExecDirect_Internal + 323
7   libiodbc.dylib                  0x000000010d6d99bd SQLExecDirectW + 227
8   libffi.dylib                    0x00007fff9166cf44 ffi_call_unix64 + 76
9   libffi.dylib                    0x00007fff9166d781 ffi_call + 853
10  _ctypes.so                      0x000000010d40a716 _ctypes_callproc + 874
11  _ctypes.so                      0x000000010d404b5a 0x10d402000 + 11098
12  org.python.python               0x000000010cdd450a PyObject_Call + 99
13  org.python.python               0x000000010ce51399 PyEval_EvalFrameEx + 11795
14  org.python.python               0x000000010ce4e352 PyEval_EvalCodeEx + 1409
15  org.python.python               0x000000010cdf25de 0x10cdca000 + 165342
16  org.python.python               0x000000010cdd450a PyObject_Call + 99
17  org.python.python               0x000000010ce50f82 PyEval_EvalFrameEx + 10748
18  org.python.python               0x000000010ce4e352 PyEval_EvalCodeEx + 1409
19  org.python.python               0x000000010cdf25de 0x10cdca000 + 165342
20  org.python.python               0x000000010cdd450a PyObject_Call + 99
21  org.python.python               0x000000010ce50f82 PyEval_EvalFrameEx + 10748
22  org.python.python               0x000000010ce4e352 PyEval_EvalCodeEx + 1409
23  org.python.python               0x000000010cdf25de 0x10cdca000 + 165342
24  org.python.python               0x000000010cdd450a PyObject_Call + 99
25  org.python.python               0x000000010ce50f82 PyEval_EvalFrameEx + 10748
26  org.python.python               0x000000010ce4e352 PyEval_EvalCodeEx + 1409
27  org.python.python               0x000000010ce54bf1 0x10cdca000 + 568305
28  org.python.python               0x000000010ce519a6 PyEval_EvalFrameEx + 13344
29  org.python.python               0x000000010ce4e352 PyEval_EvalCodeEx + 1409
30  org.python.python               0x000000010ce4ddcb PyEval_EvalCode + 54
31  org.python.python               0x000000010ce6e00e 0x10cdca000 + 671758
32  org.python.python               0x000000010ce6e0b1 PyRun_FileExFlags + 133
33  org.python.python               0x000000010ce6dc4e PyRun_SimpleFileExFlags + 769
34  org.python.python               0x000000010ce7f437 Py_Main + 3051
35  libdyld.dylib                   0x00007fff92a1b5c9 start + 1