oceanbase / oceanbase/seekdb

Fix missing PlJii module entries in oceanbase.__all_virtual_memory_info on Android/macOS

Open
#571 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

dima type: bug
Dominant language
C++
Stars
2.9k
Forks
342
Avg merge
2d 14h
Merged PRs (30d)
53

Description

Environment

  • Version: seekdb (OceanBase seekdb)
  • Build Info:
Starting seekdb (OceanBase seekdb) source revision 1-210636544cac7e10193998a38d7ce8e36cd031ad.
seekdb (OceanBase seekdb)

REVISION: 1-210636544cac7e10193998a38d7ce8e36cd031ad
BUILD_BRANCH: master
BUILD_TIME: Mar 27 2026 02:11:59
BUILD_FLAGS: RelWithDebInfo
BUILD_INFO:

Copyright (c) 2011-present OceanBase Inc.

Description

When querying the oceanbase.__all_virtual_memory_info table for the PlJit and PlCodeGen modules, the results are empty on Android/macOS seekdb deployments. This behavior is inconsistent with the results from a Linux seekdb deployment, where these module entries are present.

Steps to Reproduce

  1. Deploy and start the Android seekdb instance using the provided script.
cd /Users/admin/jingtu/macbranch/oceanbase-lite/tools/deploy
source activate_obd.sh

sh deploy_android_seekdb.sh

export OCEANBASE_HOME=/Users/admin/jingtu/macbranch/oceanbase-lite

obd test mysqltest android_seekdb \
  --mysqltest-bin=${OCEANBASE_HOME}/deps/3rd/u01/obclient/bin/mysqltest \
  --obclient-bin=${OCEANBASE_HOME}/deps/3rd/u01/obclient/bin/obclient \
  --init-only \
  --init-sql-dir=${OCEANBASE_HOME}/tools/deploy \
  --init-sql-files='init.sql,init_user.sql|root@sys|test'

obd test mysqltest android_seekdb \
  --mysqltest-bin=${OCEANBASE_HOME}/deps/3rd/u01/obclient/bin/mysqltest \
  --obclient-bin=${OCEANBASE_HOME}/deps/3rd/u01/obclient/bin/obclient \
  --disable-reboot \
  --test-set=pl.pl_bug_54806294_mysql
  1. Execute the following SQL query:
select * from oceanbase.__all_virtual_memory_info where mod_name in ('PlJit', 'PlCodeGen');
  1. Observed Result (Android/macOS): The query returns an empty set.
    Android/macOS result

  2. Expected Result (ARM Linux): The query returns entries for the PlJit and PlCodeGen modules.
    ARM Linux result

Impact

The missing module information in the virtual table may affect monitoring, debugging, or management tools that rely on consistent memory usage reporting across different platforms.

Additional Context

This issue was identified while running the mysqltest suite (pl.pl_bug_54806294_mysql). The system's internal memory accounting for PL/SQL JIT-related modules appears to be incomplete or incorrectly reported on non-Linux platforms (Android/macOS).

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

Start with tools/deploy/deploy_android_seekdb.sh and reproduce the query against oceanbase.__all_virtual_memory_info on Android or macOS, then compare it with ARM Linux. Use the mysqltest case pl.pl_bug_54806294_mysql as the initial test entry point and trace where the PlJit and PlCodeGen entries are reported. Done means both module rows are present consistently on the affected platforms and the test passes.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, sql
Domain
databases, operating-systems
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.