Skip to content

fetch_df_batches() segfaults with fetch_decimals=True and repeated NUMBER values across batches #608

Description

@szymongalecki
  1. What versions are you using?
oracle database version: 19.31.0.0.0
thin mode: True
platform.platform: Linux-6.18.33.2-microsoft-standard-WSL2-x86_64-with-glibc2.39
sys.maxsize > 2**32: True
platform.python_version: 3.12.0
python-oracledb: 26.0.0
  1. Is it an error or a hang or a crash?
    Crash - Fatal Python error: Segmentation fault, exit code 139

  2. What error(s) or behavior you are seeing?
    Method Connection.fetch_df_batches() terminates the Python process with segmentation fault when: its parameter fetch_decimals=True AND a NUMBER value is repeated AND fetching continues into a second batch.

  3. Does your application call init_oracle_client()?
    No.

  4. Include a runnable Python script that shows the problem.

import faulthandler
import oracledb

faulthandler.enable()

query = """
select cast(0 as number(10, 0)) as n
from dual
connect by level <= 4
"""

with oracledb.connect(
    user="<user>",
    password="<password>",
    dsn="<dsn>",
) as connection:
    for index, batch in enumerate(
        connection.fetch_df_batches(
            statement=query,
            size=2,
            fetch_decimals=True,
        )
    ):
        print(index, batch.num_rows())

Expected output - both batches are fetched:

0 2
1 2

Actual output - only the first batch is returned:

0 2
Fatal Python error: Segmentation fault

Current thread 0x00007a1998319740 (most recent call first):
  File "/<user_path>/.venv/lib/python3.12/site-packages/oracledb/connection.py", line 1686 in fetch_df_batches
  File "/<user_path>/segfault.py", line 28 in <module>

Extension modules: oracledb.arrow_impl, oracledb.base_impl, oracledb.thick_impl, _cffi_backend, oracledb.thin_impl (total: 5)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions