You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I ran cext-review-toolkit on duckdb-python and got a report with some issues:
The primary risks are: (1) Python API calls without GIL in the parallel numpy scan path (data corruption/crash), (2) PyTuple_Pack reference leak in map.cpp (~11 KB/call), (3) unchecked PyNumber_Rshift NULL in 128-bit integer conversion (segfault), (4) PyErr_PrintEx clobbering exceptions in map and filesystem, and (5) UDF exception handling that optionally swallows MemoryError/KeyboardInterrupt.
Thanks. On the 2.0 branch the int conversion no longer calls a subclass's __rshift__, return_null forwards MemoryError and KeyboardInterrupt, the map.cpp tuple leak is gone and the pandas string scan holds the GIL. I verified the first two against 1.5.6 and the current dev build. One finding is still open: rel.map prints the traceback and raises a generic InvalidInputException instead of chaining your exception. I will track that one separately.
Activity
Fix python error propagation (duckdb#679)
evertlammerts commentedon Oct 19, 2026
Thanks. On the 2.0 branch the int conversion no longer calls a subclass's
__rshift__,return_nullforwardsMemoryErrorandKeyboardInterrupt,the map.cpp tuple leak is gone and the pandas string scan holds the GIL. I verified the first two against 1.5.6 and the current dev build. One finding is still open:rel.mapprints the traceback and raises a genericInvalidInputExceptioninstead of chaining your exception. I will track that one separately.