Skip to content

Synchronize MySQL sysbench database population across roles - #792

Merged
Nirjan Chapagain (nchapagain001) merged 3 commits into
mainfrom
users/evellanoweth/mysql-8.0.46-sysbench-fix
Aug 20, 2026
Merged

Synchronize MySQL sysbench database population across roles#792
Nirjan Chapagain (nchapagain001) merged 3 commits into
mainfrom
users/evellanoweth/mysql-8.0.46-sysbench-fix

Conversation

@ericavella

@ericavella Erica Vellanoweth (ericavella) commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Prevent the first client-side database population step from racing MySQL server configuration and remote-user creation by waiting for the server API heartbeat.
  • Detect sysbench FATAL output during database population even when sysbench returns exit code 0.
  • Update the OLTP and TPCC profiles to use mysql-server-8.0.46-v1.zip.
  • Upgrade SSH.NET and the PR workflow actions to supported versions so repository CI can restore and run.
  • The MySQL package is uploaded to virtualclientinternal/packages.

Root cause

The thread-sweep profile performs database population as a client-role action, while MySQL user creation is a server-role dependency. The first 8-thread population could reach MySQL after it started listening but before setup-database.py created sbtest@10.0.1.0, producing MySQL error 1130. Later thread counts succeeded because server configuration had completed.

The observed FATAL: error 1130 lines were from the pre-fix reproduction. They are not expected after synchronization. The explicit FATAL detection remains as a safety net because sysbench returned exit code 0 for that failure; without it, VirtualClient could falsely mark database population successful.

Validation

  • All 10 SysbenchConfigurationTests pass, including regressions that verify the server heartbeat is confirmed before remote population starts and that fatal sysbench output fails the action.
  • All 21 SshClientProxyTests pass with SSH.NET 2026.0.0.
  • Direct pre-fix VM reproduction produced repeated FATAL connection errors with SYSBENCH_EXIT_CODE=0.
  • VM experiment 85c95316-8775-46ea-9895-2bc3e6a229dc passed targeted oltp_read_write with exit code 0 and no fatal connection error.
  • VM experiment 27093927-fa27-421f-b3ad-10a30eefc94a passed with MySQL 8.0.46-0ubuntu0.24.04.3: 8,303.22 transactions/sec, 166,064.44 queries/sec, 0 ignored errors, and 0 reconnects.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 92224b9d-2c89-489f-aff7-a16fae94d4cf
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

Wait for the server API heartbeat before a client-role population step. The API server starts after MySQL configuration and user creation, preventing the first thread-sweep scenario from racing the remote user grant.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 92224b9d-2c89-489f-aff7-a16fae94d4cf
@ericavella

Copy link
Copy Markdown
Contributor Author

Added commit 6a4ad88 to prevent MySQL error 1130 rather than only surfacing it. Client-role database population now waits for the server API heartbeat, which is started after MySQL configuration and remote-user creation complete.

Upgrade SSH.NET to the secure release and adapt SCP path handling to the new API. Refresh GitHub Actions versions so the PR workflows run on supported action releases.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: f93cb371-279e-4917-ab3b-beed90f7f78d
@ericavella

Copy link
Copy Markdown
Contributor Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
No pipelines were found matching this branch/path.

@ericavella Erica Vellanoweth (ericavella) changed the title Fix MySQL sysbench population failures Synchronize MySQL sysbench database population across roles Aug 20, 2026
@nchapagain001
Nirjan Chapagain (nchapagain001) merged commit 637edc1 into main Aug 20, 2026
5 checks passed
@nchapagain001
Nirjan Chapagain (nchapagain001) deleted the users/evellanoweth/mysql-8.0.46-sysbench-fix branch August 20, 2026 18:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants