Skip to content

New connection authentication timeout (error 2013) and PALF/transaction log commit stalls under PS5 hybrid workload #1280

Description

@cms-cms

Environment

  • Version: OceanBase seekdb
  • Revision: 1-f84169fbd80d020887d038cdb0892703e28833f3
  • Build Branch: HEAD
  • Build Time: Aug 10 2026 10:45:34
  • Build Flags: RelWithDebInfo
  • Database Version: 5.7.25-OceanBase seekdb-v
  • Machine: obrde.32c.v72-tag49-n1
  • User: work
  • Connection String: mysql -h [INTERNAL_IP] -P2834 -uroot@sys
  • Observer PID: 13820

Startup Parameters:

datafile_size=100G
log_disk_size=30G
cpu_count=8
memory_limit=30G
enable_syslog_recycle=true
max_syslog_file_count=100

Test Context:

  • Pipeline: 189961
  • Job: ps5_lite_linux / 919133
  • Job URL: [INTERNAL_URL]
  • Test Code SHA: a1a3df9543b0a778bad60a0e4574d522fc473c4e
  • Observer Revision: f84169fbd80d020887d038cdb0892703e28833f3

Description

During a PS5 hybrid workload test (obmonster + sqlsmith), new client connections to the database timed out during the authentication phase, returning MySQL error 2013. Concurrently, the database exhibited severe unmanaged memory overrun, PALF log submission failures (error -4023/OB_EAGAIN), transaction commit log failures, and memtable flush failures. The observer process remained alive and the SQL port (2834) was still listening, indicating the issue was internal resource/thread starvation rather than a process crash.

The watchdog health check correctly identified the 2013 error and terminated the workload. After the workload stopped, the database gradually recovered and subsequent queries succeeded.

Steps to Reproduce

  1. Use observer revision: f84169fbd80d020887d038cdb0892703e28833f3.
  2. Use seekdb_test SHA: a1a3df9543b0a778bad60a0e4574d522fc473c4e.
  3. Start observer with the parameters listed above, port 2834.
  4. Run singlejob/ps5_lite/run.sh, specifying the existing database endpoint, with effective runtime set to 14400 seconds.
  5. Wait for the first two phases to complete.
  6. Enter Phase 3: obmonster + sqlsmith with 90 schemas and 128 available tables.
  7. Observe watchdog, new connection attempts, and database logs after approximately 120–140 seconds.

Timeline:

20:45:00 Enter obmonster + sqlsmith hybrid pressure stage
20:47:12 Has persisted for about 120 seconds
20:47:27 watchdog detects database connection anomaly and terminates test

Impact

The database became temporarily unresponsive to new connections under a specific hybrid workload, causing health checks to fail and workload termination. This indicates a potential stability issue under high concurrent load, where internal resource pressure (memory, log submission) cascades into connection handling failures.

Observed Behavior & Evidence

Client Error:

ERROR 2013 (HY000): Lost connection to MySQL server at 'reading authorization packet', system error: 110

Pipeline Final Record:

[WATCHDOG][FAIL] 2026-08-10 20:47:27 CST
SQL health check reported fatal MySQL disconnect error 2006/2013

Concurrent Database Logs:

  1. Severe Unmanaged Memory Overrun:
    EDIAG [SHARE.CONFIG] check_limit
    

errcode=-4080
unmanaged_memory_size is over the limit
unmanaged_memory_size=26584080384
UNMANAGED_MEMORY_LIMIT=2147483648
```
Unmanaged memory grew to ~24.8 GiB (later to ~49 GiB), far exceeding the internal 2 GiB limit, despite memory_limit=30G.

  1. PALF Log Submission Failure:
    EDIAG [PALF] submit_log
    

errcode=-4023
cannot submit new log now, try again
ret=-4023
```
Trace ID: YB427F000001-000658B0069387EF-0-0

  1. Transaction Commit Log Failure:
    EDIAG [STORAGE.TRANS] submit_commit_log_
    

errcode=-4023
submit log to clog adapter failed
ret="OB_EAGAIN"
```
Trace ID: YB427F000001-000658B006E387DC-0-0

  1. Checkpoint/Memtable Flush Failure:
    WDIAG [STORAGE] traversal_flush_
    

memtable flush failed
tmp_ret=-4023
```
Trace ID: YB427F000001-000658AFFE438F5E-0-0

Error `-6268` also appeared in transaction end phases.

Expected Behavior

Under the obmonster + sqlsmith hybrid workload:

  1. Observer should keep SQL login and simple health checks available.
  2. PALF or transaction commit pressure should result in bounded backoff.
  3. Unmanaged memory should not grow unboundedly under memory_limit=30G.
  4. New connections should not stall at the authorization packet stage (error 2013) while the process is alive and the port is listening.

Site Preservation

The database instance is preserved and was still connectable after the incident.

Connection: mysql -h [INTERNAL_IP] -P2834 -uroot@sys

Full Directory Structure:

Database logs: /data/1/seekdb-gitlab/ps5_lite/log/pipeline-189961-job-919133

work: /data/1/seekdb-gitlab/ps5_lite/work/pipeline-189961-job-919133

data: /data/1/seekdb-gitlab/ps5_lite/data/pipeline-189961-job-919133

clog: /data/1/seekdb-gitlab/ps5_lite/clog/pipeline-189961-job-919133

workload/run: /data/1/seekdb-gitlab/ps5_lite/runs/pipeline-189961-job-919133

sqlsmith output: /data/1/seekdb-gitlab/ps5_lite/runs/pipeline-189961-job-919133/scenario/singlejob/ps5_lite/sqlsmith.out

Current Disk Usage:

data   101G
log     25G
clog   257M
runs    83M
work   1.1G

Proposed Investigation

Developers are advised to investigate:

  1. Why unmanaged memory grew to 26–49 GiB under memory_limit=30G.
  2. Whether PALF OB_EAGAIN/-4023 errors caused transaction callback or worker thread accumulation.
  3. Whether the login authentication thread was starved by transaction, compaction, flush, or log commit pressure.
  4. The database recovered automatically after the workload stopped, suggesting internal queue backlog rather than a genuine network fault.
  5. Whether error -6268 is a subsequent symptom or a key link in the chain causing connection unresponsiveness.

Priority

High. The issue causes service unavailability for new connections under a specific, reproducible workload.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions