我們在生產環境中運行pyodbc 4.0.1,並且突然開始面對內存錯誤。我不知道爲什麼它開始發生,因爲一切正常工作,直到那時......有沒有任何已知的根本原因的問題在服務器配置方面?當使用FreeTDS ODBC與pyodbc時,glibc檢測到損壞的雙鏈表
我們已經將我們的Pyodbc版本從4.0.1升級到了DEV和UAT中的4.0.16。不幸的是,這個問題仍然存在並且具有可重現性(見下面的跟蹤)。
[...]
*** glibc detected *** python: corrupted double-linked list: 0x0000000002644650 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x75f4e)[0x7f751c639f4e]
/lib64/libc.so.6(+0x79066)[0x7f751c63d066]
/usr/lib64/libtdsodbc.so.0(+0x1e2fd)[0x7f74fd2aa2fd]
/usr/lib64/libtdsodbc.so.0(+0x2095e)[0x7f74fd2ac95e]
/usr/lib64/libtdsodbc.so.0(+0x27de5)[0x7f74fd2b3de5]
/usr/lib64/libtdsodbc.so.0(+0x3729f)[0x7f74fd2c329f]
/usr/lib64/libtdsodbc.so.0(+0x11e15)[0x7f74fd29de15]
/usr/lib64/libtdsodbc.so.0(SQLGetTypeInfo+0x187)[0x7f74fd2a0547]
/opt/cloudera/parcels/Anaconda3-4.2.0-python-3.5/envs/ed/lib/libodbc.so.2(SQLGetTypeInfo+0x1e3)[0x7f75033c8c93]
/opt/cloudera/parcels/Anaconda3-4.2.0-python-3.5/envs/ed/lib/python3.5/site-packages/pyodbc.cpython-35m-x86_64-linux-gnu.so(_Z17GetConnectionInfoP7_objectP10Connection+0x42f)[0x7f75036297af]
/opt/cloudera/parcels/Anaconda3-4.2.0-python-3.5/envs/ed/lib/python3.5/site-packages/pyodbc.cpython-35m-x86_64-linux-gnu.so(_Z14Connection_NewP7_objectbblbS0_R6Object+0x6a9)[0x7f7503621249]
/opt/cloudera/parcels/Anaconda3-4.2.0-python-3.5/envs/ed/lib/python3.5/site-packages/pyodbc.cpython-35m-x86_64-linux-gnu.so(+0xb174)[0x7f7503622174]
/opt/cloudera/parcels/Anaconda3-4.2.0-python-3.5/envs/ed/bin/../lib/libpython3.5m.so.1.0(PyCFunction_Call+0x131)[0x7f751d4c4621]
/opt/cloudera/parcels/Anaconda3-4.2.0-python-3.5/envs/ed/bin/../lib/libpython3.5m.so.1.0(PyEval_EvalFrameEx+0x9017)[0x7f751d54bc37]
/opt/cloudera/parcels/Anaconda3-4.2.0-python-3.5/envs/ed/bin/../lib/libpython3.5m.so.1.0(PyEval_EvalFrameEx+0x9546)[0x7f751d54c166]
/opt/cloudera/parcels/Anaconda3-4.2.0-python-3.5/envs/ed/bin/../lib/libpython3.5m.so.1.0(PyEval_EvalFrameEx+0x9546)[0x7f751d54c166]
/opt/cloudera/parcels/Anaconda3-4.2.0-python-3.5/envs/ed/bin/../lib/libpython3.5m.so.1.0(PyEval_EvalFrameEx+0x9546)[0x7f751d54c166]
/opt/cloudera/parcels/Anaconda3-4.2.0-python-3.5/envs/ed/bin/../lib/libpython3.5m.so.1.0(+0x144b49)[0x7f751d54cb49]
/opt/cloudera/parcels/Anaconda3-4.2.0-python-3.5/envs/ed/bin/../lib/libpython3.5m.so.1.0(PyEval_EvalCodeEx+0x48)[0x7f751d54ccd8]
/opt/cloudera/parcels/Anaconda3-4.2.0-python-3.5/envs/ed/bin/../lib/libpython3.5m.so.1.0(PyEval_EvalCode+0x3b)[0x7f751d54cd1b]
/opt/cloudera/parcels/Anaconda3-4.2.0-python-3.5/envs/ed/bin/../lib/libpython3.5m.so.1.0(PyRun_FileExFlags+0x130)[0x7f751d572020]
/opt/cloudera/parcels/Anaconda3-4.2.0-python-3.5/envs/ed/bin/../lib/libpython3.5m.so.1.0(PyRun_SimpleFileExFlags+0x173)[0x7f751d573623]
/opt/cloudera/parcels/Anaconda3-4.2.0-python-3.5/envs/ed/bin/../lib/libpython3.5m.so.1.0(Py_Main+0xca7)[0x7f751d58e8c7]
python(main+0x15d)[0x400add]
/lib64/libc.so.6(__libc_start_main+0xfd)[0x7f751c5e2d5d]
python[0x4008b9]
======= Memory map: ========
00400000-00401000 r-xp 00000000 fd:05 11011012 /opt/cloudera/parcels/Anaconda3-4.2.0-python-3.5/envs/ed/bin/python3.5
00601000-00602000 rw-p 00001000 fd:05 11011012 /opt/cloudera/parcels/Anaconda3-4.2.0-python-3.5/envs/ed/bin/python3.5
01241000-02873000 rw-p 00000000 00:00 0 [heap]
7f74f8000000-7f74f8021000 rw-p 00000000 00:00 0
7f74f8021000-7f74fc000000 ---p 00000000 00:00 0
7f74fc354000-7f74fc356000 r-xp 00000000 fd:01 3837 /usr/lib64/gconv/CP1252.so
7f74fc356000-7f74fc555000 ---p 00002000 fd:01 3837 /usr/lib64/gconv/CP1252.so
7f74fc555000-7f74fc556000 r--p 00001000 fd:01 3837 /usr/lib64/gconv/CP1252.so
7f74fc556000-7f74fc557000 rw-p 00002000 fd:01 3837 /usr/lib64/gconv/CP1252.so
7f74fc557000-7f74fc558000 r-xp 00000000 fd:01 4029 /usr/lib64/gconv/ISO8859-1.so
7f74fc558000-7f74fc758000 ---p 00001000 fd:01 4029 /usr/lib64/gconv/ISO8859-1.so
7f74fc758000-7f74fc759000 r--p 00001000 fd:01 4029 /usr/lib64/gconv/ISO8859-1.so
7f74fc759000-7f74fc75a000 rw-p 00002000 fd:01 4029 /usr/lib64/gconv/ISO8859-1.so
7f74fc75a000-7f74fc75f000 r-xp 00000000 fd:01 3803 /lib64/libnss_dns-2.12.so
7f74fc75f000-7f74fc95e000 ---p 00005000 fd:01 3803 /lib64/libnss_dns-2.12.so
7f74fc95e000-7f74fc95f000 r--p 00004000 fd:01 3803 /lib64/libnss_dns-2.12.so
7f74fc95f000-7f74fc960000 rw-p 00005000 fd:01 3803 /lib64/libnss_dns-2.12.so
7f74fc960000-7f74fc963000 r-xp 00000000 fd:01 5388 /lib64/libgpg-error.so.0.5.0
7f74fc963000-7f74fcb62000 ---p 00003000 fd:01 5388 /lib64/libgpg-error.so.0.5.0
7f74fcb62000-7f74fcb63000 r--p 00002000 fd:01 5388 /lib64/libgpg-error.so.0.5.0
7f74fcb63000-7f74fcb64000 rw-p 00003000 fd:01 5388 /lib64/libgpg-error.so.0.5.0
7f74fcb64000-7f74fcb74000 r-xp 00000000 fd:01 6697 /usr/lib64/libtasn1.so.3.1.6
7f74fcb74000-7f74fcd73000 ---p 00010000 fd:01 6697 /usr/lib64/libtasn1.so.3.1.6
7f74fcd73000-7f74fcd74000 rw-p 0000f000 fd:01 6697 /usr/lib64/libtasn1.so.3.1.6
7f74fcd74000-7f74fcde6000 r-xp 00000000 fd:01 5401 /lib64/libgcrypt.so.11.5.3
7f74fcde6000-7f74fcfe5000 ---p 00072000 fd:01 5401 /lib64/libgcrypt.so.11.5.3
7f74fcfe5000-7f74fcfe6000 r--p 00071000 fd:01 5401 /lib64/libgcrypt.so.11.5.3
7f74fcfe6000-7f74fcfe9000 rw-p 00072000 fd:01 5401 /lib64/libgcrypt.so.11.5.3
7f74fcfe9000-7f74fd086000 r-xp 00000000 fd:01 13301 /usr/lib64/libgnutls.so.26.14.12
7f74fd086000-7f74fd285000 ---p 0009d000 fd:01 13301 /usr/lib64/libgnutls.so.26.14.12
7f74fd285000-7f74fd28c000 rw-p 0009c000 fd:01 13301 /usr/lib64/libgnutls.so.26.14.12
7f74fd28c000-7f74fd2ee000 r-xp 00000000 fd:01 52715 /usr/lib64/libtdsodbc.so.0.0.0
7f74fd2ee000-7f74fd4ed000 ---p 00062000 fd:01 52715 /usr/lib64/libtdsodbc.so.0.0.0
7f74fd4ed000-7f74fd4f1000 rw-p 00061000 fd:01 52715 /usr/lib64/libtdsodbc.so.0.0.0
7f74fd4f1000-7f74fd4f5000 r-xp 00000000 fd:05 7997029 /opt/cloudera/parcels/Anaconda3-4.2.0-python-3.5/pkgs/python-3.5.2-0/lib/python3.5/lib-dynload/termios.so
7f74fd4f5000-7f74fd6f5000 ---p 00004000 fd:05 7997029 /opt/cloudera/parcels/Anaconda3-4.2.0-python-3.5/pkgs/python-3.5.2-0/lib/python3.5/lib-dynload/termios.so
7f74fd6f5000-7f74fd6f7000 rw-p 00004000 fd:05 7997029 /opt/cloudera/parcels/Anaconda3-4.2.0-python-3.5/pkgs/python-3.5.2-0/lib/python3.5/lib-dynload/termios.so
7f74fd6f7000-7f74fd6fa000 r-xp 00000000 fd:05 7997070 /opt/cloudera/parcels/Anaconda3-4.2.0-python-3.5/pkgs/python-3.5.2-0/lib/python3.5/lib-dynload/fcntl.so
7f74fd6fa000-7f74fd8f9000 ---p 00003000 fd:05 7997070 /opt/cloudera/parcels/Anaconda3-4.2.0-python-3.5/pkgs/python-3.5.2-0/lib/python3.5/lib-dynload/fcntl.so
7f74fd8f9000-7f74fd8fb000 rw-p 00002000 fd:05 7997070 /opt/cloudera/parcels/Anaconda3-4.2.0-python-3.5/pkgs/python-3.5.2-0/lib/python3.5/lib-dynload/fcntl.so
7f74fd8fb000-7f74fd8fe000 r-xp 00000000 fd:05 10749483 /opt/cloudera/parcels/Anaconda3-4.2.0-python-3.5/pkgs/sqlalchemy-1.0.13-py35_0/lib/python3.5/site-packages/sqlalchemy/cresultproxy.so
7f74fd8fe000-7f74fdafe000 ---p 00003000 fd:05 10749483 /opt/cloudera/parcels/Anaconda3-4.2.0-python-3.5/pkgs/sqlalchemy-1.0.13-py35_0/lib/python3.5/site-packages/sqlalchemy/cresultproxy.so
7f74fdafe000-7f74fdaff000 rw-p 00003000 fd:05 10749483 /opt/cloudera/parcels/Anaconda3-4.2.0-python-3.5/pkgs/sqlalchemy-1.0.13-py35_0/lib/python3.5/site-packages/sqlalchemy/cresultproxy.so
7f74fdaff000-7f74fdb00000 r-xp 00000000 fd:05 10749167 /opt/cloudera/parcels/Anaconda3-4.2.0-python-3.5/pkgs/sqlalchemy-1.0.13-py35_0/lib/python3.5/site-packages/sqlalchemy/cutils.so
7f74fdb00000-7f74fdd00000 ---p 00001000 fd:05 10749167 /opt/cloudera/parcels/Anaconda3-4.2.0-python-3.5/pkgs/sqlalchemy-1.0.13-py35_0/lib/python3.5/site-packages/sqlalchemy/cutils.so
7f74fdd00000-7f74fdd01000 rw-p 00001000 fd:05 10749167 /opt/cloudera/parcels/Anaconda3-4.2.0-python-3.5/pkgs/sqlalchemy-1.0.13-py35_0/lib/python3.5/site-packages/sqlalchemy/cutils.so
7f74fdd01000-7f74fdd41000 rw-p 00000000 00:00 0
7f74fdec1000-7f74fdf01000 rw-p 00000000 00:00 0
7f74fdf41000-7f74fdf44000 r-xp 00000000 fd:05 10749471 /opt/cloudera/parcels/Anaconda3-4.2.0-python-3.5/pkgs/sqlalchemy-1.0.13-py35_0/lib/python3.5/site-packages/sqlalchemy/cprocessors.so
7f74fdf44000-7f74fe143000 ---p 00003000 fd:05 10749471 /opt/cloudera/parcels/Anaconda3-4.2.0-python-3.5/pkgs/sqlalchemy-1.0.13-py35_0/lib/python3.5/site-packages/sqlalchemy/cprocessors.so
7f74fe143000-7f74fe144000 rw-p 00002000 fd:05 10749471 /opt/cloudera/parcels/Anaconda3-4.2.0-python-3.5/pkgs/sqlalchemy-1.0.13-py35_0/lib/python3.5/site-packages/sqlalchemy/cprocessors.soAborted
在對我們的目標做了一些更多的測試後,連接到Microsoft SQL Server數據庫時出現問題。我們使用下面的連接字符串連接dsn-less。這就是說,我不知道內存問題何時發生(連接之前/期間/之後)......問題似乎是隨機觸發的。
[...]
pyodbc.pooling=False
oConnexion = pyodbc.connect(Driver="{FreeTDS};Server=xxx;Port=1433;TDS_Version=7.0;UID=xxx;PWD=xxx;", autocommit=True)
oConnexion.setdecoding(pyodbc.SQL_CHAR, encoding='utf-8')
oConnexion.setdecoding(pyodbc.SQL_WCHAR, encoding='utf-8')
oConnexion.setdecoding(pyodbc.SQL_WMETADATA, encoding='utf-8')
oConnexion.setencoding(encoding='utf-8')
[...]
配置:
- 的Python 3.5.2
- 阿納康達4.2.0(64位)
- 在Linux紅帽4.4.7-1
- Pyodbc 4.0.16
^你認真嗎?我一直在尋找這個,這完全是不明智的,只是因爲你無法回答這個問題!爲什麼不把它重新映射到服務器故障或什麼? – pythonian29033
我很好重新打開這個問題。但是你有什麼建議呢? –
我在Gord Thompson實際上發表了我的評論,但我認爲大多數開發人員並不是100%確定這是配置/依賴問題,並且問題仍然存在,因此您無需執行任何操作。謝謝 – pythonian29033