oceanbase / oceanbase/seekdb

Fix segmentation fault in pylibseekdb when executing dbms_vector.refresh_index/rebuild_index SQL

Open
#745 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

dima type: bug
Dominant language
C++
Stars
2.9k
Forks
339
Avg merge
1d 19h
Merged PRs (30d)
52

Description

Environment

  • pylibseekdb Version: 2026.5.12.dev1
  • pyseekdb Version: 1.2.0.post2
  • Python Version: 3.11
  • Is this an RD-provided temporary version? No

Description

When executing SQL related to dbms_vector.refresh_index or dbms_vector.rebuild_index in the test case test_cases/vector_function_mysql_sqlqa/test_refresh_index_mysql.py::TestVectorRefresh::test_vector_refresh_functionality, the process encounters a Segmentation fault.

Steps to Reproduce

  1. Activate the virtual environment: /data/1/liteembeddedtest/LiteEmbeddedTest/myenv_work
  2. Run the minimal reproduction command:
    python3.11 -X faulthandler -m pytest test_cases/vector_function_mysql_sqlqa/test_refresh_index_mysql.py::TestVectorRefresh::test_vector_refresh_functionality -v -s
    

Note: The issue can also be reproduced by running the Jenkins job at http://:9090/jenkins/job/wentian_test/208/.

Additional Context

  • Reproducibility: Consistently reproducible (必现).
  • Machine: work 398tF0wqByZeQki5
  • Core File: /data/1/core-python3.11-1884164-1778601004
  • GDB Backtrace: /data/1/gdb-bt-core-python3.11-1884164-1778601004.txt
  • Related Issue: This may be related to the issue "【Lite】嵌入式,pyseekdb [embedded],fork collection和更新索引都报超时,之前可行" (Embedded pyseekdb reports timeouts on fork collection and index updates, previously worked).

Logs & Diagnostics

  • The process previously terminated with a Segmentation fault.
  • Core dump and GDB backtrace files are available at the paths listed above.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Run test_cases/vector_function_mysql_sqlqa/test_refresh_index_mysql.py::TestVectorRefresh::test_vector_refresh_functionality with the provided Python command to reproduce the fault. Start by examining the listed core file and GDB backtrace, then trace the dbms_vector.refresh_index and rebuild_index execution paths. Done means the test completes without a segmentation fault.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, python, sql
Domain
databases
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.