Create Jenkins Job to test Binlog Server docker image - #1202
Merged
kaushikpuneet07 merged 81 commits intoAug 25, 2026
Conversation
Smoke tests against a standalone Percona Server source: binlog_server version/usage, and a fetch-mode/file-backend run that creates a REPLICATION SLAVE user, generates data, and checks binlog files land in local storage and are reported by `binlog_server list`. Pull mode and the S3 backend are not covered yet.
They were committed without the executable bit, so the Jenkins job failed with "Permission denied" on ./run.sh.
logger.file was a relative path ("binsrv.log"), which resolves against
the container's cwd (/, not writable by the unprivileged pbs user) and
made binlog_server crash before it even attempted the connection.
Point it at /var/log/binlog-server, which the image already creates
and chowns to that user.
Adds three test files alongside the existing position-mode fetch test: - test_binlog_server_gtid.py: fetch + search_by_gtid_set against a gtid_mode=ON source, using its real gtid_executed value. - test_binlog_server_pull.py: long-running pull mode, checking the storage directory grows from live data without restarting it. - test_binlog_server_inspect.py: search_by_timestamp and purge_binlogs against an already-fetched, multi-file storage directory. S3/MinIO storage is intentionally out of scope. Factored the run-one-binlog_server-container logic shared by all of these into pbs_helpers.py (existing test_binlog_server_fetch.py updated to use it too instead of its own copy).
mysql -p<password> on the command line prints an "insecure password" warning to stderr, which exec_run merges into stdout. That warning was getting prepended to the parsed gtid_executed value, so binlog_server rejected it as an unparsable GTID set. Pass the password via MYSQL_PWD instead to avoid the warning entirely. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
ParveezBaig
reviewed
Aug 25, 2026
ParveezBaig
left a comment
Contributor
There was a problem hiding this comment.
Hi Puneet,
Changes looks good. minor suggestions below.
Thanks,
…of sleep in pull test - test_binlog_server_gtid.py: add list, search_by_timestamp, and purge_binlogs coverage for gtid mode, mirroring the existing position-mode tests. The gtid_source fixture now rotates the binlog a few times so purge_binlogs has more than one file to work with. - test_binlog_server_pull.py: replace the fixed 20s sleep with polling the storage directory size (0.5s interval, 20s timeout) so the test returns as soon as pull mode picks up the new binlog data instead of always waiting out the full timeout. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.