duckdb / duckdb-java

DuckDB JDBC Driver
https://duckdb.org/docs/api/java.html
MIT License
42 stars 23 forks source link

SIGSEGV in TemplatedMatch #93

Closed wdroste closed 1 month ago

wdroste commented 1 month ago

What happens?

We've been unable to isolate the particular query that is causing this crash, however here's the stack.

We're getting a SIGSEV on TemplateMatch code. Attached will be the hs_err file coming from Java.

Version: v0.10.0 OS: Linux Ubuntu 22.04.5

To Reproduce

We've not been able to isolate the query that causes this, basically it seemed to happen under load.

OS:

Linux Ubuntu 22.04.5

DuckDB Version:

0.10.0

DuckDB Client:

Java Zulu JDK 11

Hardware:

Intel

Full Name:

Will Droste

Affiliation:

Brinqa

What is the latest build you tested with? If possible, we recommend testing with the latest nightly build.

I have tested with a stable release

Did you include all relevant data sets for reproducing the issue?

No - I cannot share the data sets because they are confidential

Did you include all code required to reproduce the issue?

Did you include all relevant configuration (e.g., CPU architecture, Python version, Linux distribution) to reproduce the issue?

Tishj commented 1 month ago

There is no mention of TemplateMatch in the duckdb source code as far as I can tell, are you sure you're raising this in the right repository, perhaps an extension you're using on top of duckdb?

I imagine you have a stack trace of the crash that you're extrapolating this from?

wdroste commented 1 month ago

Here's the stack

Current thread is native thread

Stack: [0x0000732c0ce01000,0x0000732c0d601000],  sp=0x0000732c0d5ff820,  free space=8186k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [libduckdb_java237195936317272500.so+0x12cfc06]  unsigned long duckdb::TemplatedMatch<true, duckdb::string_t, duckdb::NotDistinctFrom>(duckdb::Vector&, duckdb::TupleDataVectorFormat const&, duckdb::SelectionVector&, unsigned long, duckdb::TupleDataLayout const&, duckdb::Vector&, unsigned long, duckdb::vector<duckdb::MatchFunction, true> const&, duckdb::SelectionVector*, unsigned long&)+0x126

siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x00007336e5f655c0

Register to memory mapping:

RAX=0x0 is NULL
RBX=
[error occurred during error reporting (printing register info), id 0xb, SIGSEGV (0xb) at pc=0x0000735e8a02c888]

Registers:
RAX=0x0000000000000000, RBX=0x000000000000001d, RCX=0x0000000000000000, RDX=0x00000000000003da
RSP=0x0000732c0d5ff820, RBP=0x00000000000003da, RSI=0x00000000000006e8, RDI=0x00007336e5f655c0
R8 =0x0000000000000005, R9 =0x0000734419619d80, R10=0x00000000000001be, R11=0x0000000000000000
R12=0x0000734419943a90, R13=0x000073441942ae70, R14=0x0000000000000000, R15=0x0000000000000000
RIP=0x00007344ba6cfc06, EFLAGS=0x0000000000010246, CSGSFS=0x002b000000000033, ERR=0x0000000000000004
  TRAPNO=0x000000000000000e
Tishj commented 1 month ago

I see, so TemplatedMatch is the name Perhaps related to https://github.com/duckdb/duckdb/pull/8979 then

wdroste commented 1 month ago

We upgraded to v1.1.1 and haven't seen this issue since, thank you for looking into it. @Tishj