oceanbase / oceanbase/seekdb

DBA_OB_CCL_RULES table shows unexpected state after creating SQL concurrency control rule and running same SQL from multiple terminals

Open
#807 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 Information:

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 / Steps to Reproduce

After creating a SQL concurrency control (CCL) rule, running the same SQL from multiple terminals results in unexpected data when querying the DBA_OB_CCL_RULES table.

Background/Expected Behavior:

  • The maximum number of concurrent executions for a single SQL statement is jointly managed by the CCL rule and the concurrency limit specified in the outline.
  • In the test case:
    1. Connection 1 "occupies a slot" by running a query that sleeps for 5 seconds.
    2. Connection 2 then attempts to run the same SQL and should be blocked.
    3. Immediately query a monitoring table (rule name + current occupied count + limit). The observed table state is unexpected.

Reproduction Steps (from mysqltest):

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=ccl.ccl_many_rule_mysql

Additional Context

Test execution output

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 the ccl.ccl_many_rule_mysql mysqltest case and reproduce it using the provided obd test commands. Inspect the DBA_OB_CCL_RULES query during concurrent execution and compare its rule name, occupied count, and limit with the expected CCL behavior; done means the table reports the correct state while one connection is blocked.

Written by the indexing model from the issue text.

Assessment

Tech stack
mysql, sql
Domain
databases, testing-qa
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.