Skip to content

Segmentation Fault after a few minutes of running .... #333

@nvp152

Description

@nvp152

Hi,

I am experiencing segmentation faults every few minutes running the driver. I am really not sure where to go beyond the information i provided.

  • nodejs v18.20.1
  • msodbcsql18 version: 18.3.3.1-1
  • debian 11 (Darwin Kernel Version 22.6.0: Tue Nov 7 21:48:06 PST 2023; root:xnu-8796.141.3.702.9~2/RELEASE_X86_64 x86_64)
  • The application is running in a container in kubernetes.
  • Connecting to a MSSQL Server 2022 using Kerberos auth and an instance name.

I made sure to update to openssl 3.2.1 as per documentation. The lsof output confirms it when the application is running.

node    5996 root  mem       REG      0,379  6212984    1739188 /usr/local/ssl/lib64/libcrypto.so.3
node    5996 root  mem       REG      0,379  1143344    1739191 /usr/local/ssl/lib64/libssl.so.3
node    5996 root  mem       REG      0,379   473136    1746022 /usr/lib/x86_64-linux-gnu/libodbcinst.so.2.0.0
node    5996 root  mem       REG      0,379  2092656    1745998 /opt/microsoft/msodbcsql18/lib64/libmsodbcsql-18.3.so.3.1
node    5996 root  mem       REG      0,379  2351638    1746016 /usr/lib/x86_64-linux-gnu/libodbc.so.2.0.0
node    5996 root  mem       REG      0,379   100736    2624235 /lib/x86_64-linux-gnu/libgcc_s.so.1
node    5996 root  mem       REG      0,379  1870824    2625010 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28

I don't always get the exact same segfault but many times it seems related to memory type issues (malloc). When these memory type errors, it seems that a SELECT INTO FROM query is running.

Here is a stack trace

[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `node /usr/local/bin/cubejs server'.
Program terminated with signal SIGABRT, Aborted.
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50	../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
[Current thread is 1 (Thread 0x7f6161afa700 (LWP 6009))]
(gdb) set substitute-path . /opt/src/glibc-2.31/
(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007f6169612537 in __GI_abort () at abort.c:79
#2  0x00007f616966a3e8 in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7f6169788390 "%s\n") at ../sysdeps/posix/libc_fatal.c:155
#3  0x00007f61696716da in malloc_printerr (str=str@entry=0x7f616978a680 "corrupted size vs. prev_size in fastbins") at malloc.c:5347
#4  0x00007f616967258c in malloc_consolidate (av=av@entry=0x7f6144000020) at malloc.c:4493
#5  0x00007f61696743d5 in _int_malloc (av=av@entry=0x7f6144000020, bytes=bytes@entry=1096) at malloc.c:3699
#6  0x00007f6169675f19 in __GI___libc_malloc (bytes=bytes@entry=1096) at malloc.c:3066
#7  0x00007f6160060a7e in __post_internal_error_ex_w_noprefix (error_header=error_header@entry=0x7f6144069a88, 
    sqlstate=sqlstate@entry=0x7f6161af7670, native_error=851968, msg=msg@entry=0x7f6161af7e90, class_origin=class_origin@entry=0, 
    subclass_origin=subclass_origin@entry=0) at __info.c:4068
#8  0x00007f6160049891 in SQLDriverConnectW (hdbc=0x7f61440690b0, hwnd=<optimized out>, conn_str_in=<optimized out>, len_conn_str_in=172, 
    conn_str_out=0x0, conn_str_out_max=0, ptr_conn_str_out=0x0, driver_completion=0) at SQLDriverConnectW.c:844
#9  0x00007f61602ca033 in mssql::OdbcConnection::try_open(std::shared_ptr<std::vector<unsigned short, std::allocator<unsigned short> > >, int) ()
   from /cube/node_modules/msnodesqlv8/build/Release/sqlserverv8.node
#10 0x00007f61602dcfce in mssql::OpenOperation::TryInvokeOdbc() () from /cube/node_modules/msnodesqlv8/build/Release/sqlserverv8.node
#11 0x00007f61602cf15f in mssql::OdbcOperation::Execute() () from /cube/node_modules/msnodesqlv8/build/Release/sqlserverv8.node
#12 0x000000000166ebb4 in worker (arg=0x0) at ../deps/uv/src/threadpool.c:122
#13 0x00007f61697cbea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#14 0x00007f61696eba6f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Here is another. When this one happens, i see these errors [Microsoft][ODBC Driver 18 for SQL Server]SSPI Provider: Clock skew too great. In this situation, while it isn't ideal it really should not segfault anyhow.....

Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `node /usr/local/bin/cubejs server'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  __GI___libc_free (mem=0x120102033005a8) at malloc.c:3102
3102	malloc.c: No such file or directory.
[Current thread is 1 (Thread 0x7fba137fe700 (LWP 9367))]
(gdb) set substitute-path . /opt/src/glibc-2.31/
(gdb) bt
#0  __GI___libc_free (mem=0x120102033005a8) at malloc.c:3102
#1  0x0000000001870a96 in BIO_free_all ()
#2  0x00007fba02809e2c in ossl_ssl_connection_free () from /usr/local/ssl/lib64/libssl.so.3
#3  0x00007fba02808f7d in SSL_free () from /usr/local/ssl/lib64/libssl.so.3
#4  0x00007fba02d5bf3c in ?? () from /opt/microsoft/msodbcsql18/lib64/libmsodbcsql-18.3.so.3.1
#5  0x00007fba02d5eb9c in ?? () from /opt/microsoft/msodbcsql18/lib64/libmsodbcsql-18.3.so.3.1
#6  0x00007fba02d524e1 in ?? () from /opt/microsoft/msodbcsql18/lib64/libmsodbcsql-18.3.so.3.1
#7  0x00007fba02d551b3 in ?? () from /opt/microsoft/msodbcsql18/lib64/libmsodbcsql-18.3.so.3.1
#8  0x00007fba02d1b003 in ?? () from /opt/microsoft/msodbcsql18/lib64/libmsodbcsql-18.3.so.3.1
#9  0x00007fba02d1c0b4 in ?? () from /opt/microsoft/msodbcsql18/lib64/libmsodbcsql-18.3.so.3.1
#10 0x00007fba02d1cf14 in ?? () from /opt/microsoft/msodbcsql18/lib64/libmsodbcsql-18.3.so.3.1
#11 0x00007fba02c8b16c in ?? () from /opt/microsoft/msodbcsql18/lib64/libmsodbcsql-18.3.so.3.1
#12 0x00007fba02cbfe8e in ?? () from /opt/microsoft/msodbcsql18/lib64/libmsodbcsql-18.3.so.3.1
#13 0x00007fba02c89d2a in SQLDriverConnectW () from /opt/microsoft/msodbcsql18/lib64/libmsodbcsql-18.3.so.3.1
#14 0x00007fba0303530d in SQLDriverConnectW (hdbc=0x7fba080013c0, hwnd=0x0, conn_str_in=0x7fba28b7c320, len_conn_str_in=172, conn_str_out=0x0, 
    conn_str_out_max=0, ptr_conn_str_out=0x0, driver_completion=0) at SQLDriverConnectW.c:776
#15 0x00007fba100aa033 in mssql::OdbcConnection::try_open(std::shared_ptr<std::vector<unsigned short, std::allocator<unsigned short> > >, int) ()
   from /cube/node_modules/msnodesqlv8/build/Release/sqlserverv8.node
#16 0x00007fba100bcfce in mssql::OpenOperation::TryInvokeOdbc() () from /cube/node_modules/msnodesqlv8/build/Release/sqlserverv8.node
#17 0x00007fba100af15f in mssql::OdbcOperation::Execute() () from /cube/node_modules/msnodesqlv8/build/Release/sqlserverv8.node
#18 0x000000000166ebb4 in worker (arg=0x0) at ../deps/uv/src/threadpool.c:122
#19 0x00007fba2bc8aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#20 0x00007fba2bbaaa6f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions