Initialize binlog event scalar members - #732
Open
SeojunKim-pumisj wants to merge 2 commits into
Open
Conversation
Run untrusted pull request builds with restricted permissions against validated revisions, and publish statuses and labels only from trusted workflows that revalidate the repository, workflow run, PR head, and ordering. Replace the custom review client with the pinned OpenAI Codex Action, bound its input to a validated PR diff, pin third-party actions, and add dependency maintenance for GitHub Actions. Retry a failed or empty Codex review once after a delay with a configurable fallback model while preserving the same read-only isolation boundary and structured output contract. Publish structured Codex findings as one commit-bound GitHub review. Validate each file and right-side line range against the current diff, keep unanchored findings in the summary, prevent duplicate reviews, and revalidate both reviewed revisions before posting. Warm trusted Boost and ccache entries, align the MTR compiler cache with the GCC build, shard MTR suites across runners, run tests in parallel with bounded retries, and retain diagnostics. Safely reset head-scoped CI state, standardize labels, and remove the obsolete OCA checkbox. Require both the OCA Verified label and a current trusted approval before adding Integrate. Revalidate both conditions around label publication and remove Integrate if either condition no longer holds. Temporarily disable parallel-run failures tracked by Bug#39882117 and restore the required restart and expected output for the buffer-pool-load MTR. Change-Id: I7393e75cab3afa172a99237337c26e3974f955fa
|
Thank you for your pull request and welcome to our community! To contribute, please sign the Oracle Contributor Agreement (OCA).
To sign the OCA, please create an Oracle account and sign the OCA in Oracle's Contributor Agreement Application. When signing the OCA, please provide your GitHub username. After signing the OCA and getting an OCA approval from Oracle, this PR will be automatically updated. If you are an Oracle employee, please make sure that you are a member of the main Oracle GitHub organization, and your membership in this organization is public. |
Initialize Log_event_header and Rows_event scalar fields in every constructor path. This prevents GCC 15 from diagnosing potentially uninitialized reads in Rows_log_event and also gives malformed-event early returns deterministic state.
SeojunKim-pumisj
force-pushed
the
fix-706-log-event-initialization
branch
from
August 25, 2026 07:36
598c159 to
9f0cd25
Compare
SeojunKim-pumisj
marked this pull request as ready for review
August 29, 2026 14:41
SeojunKim-pumisj
requested review from
gopshank and
seemasundara
as code owners
August 29, 2026 14:41
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.
What does this change do?
Initializes all scalar members of
Log_event_headerand the previously omitted scalar members ofRows_eventin their construction paths. This keeps malformed-event early returns in a deterministic state and addresses GCC 15 uninitialized-use diagnostics.Fixes #706.
Why is it needed?
Some parsing constructors can return early for malformed input before every scalar member has been assigned. Later cleanup or diagnostic paths may then observe indeterminate values, and GCC 15 reports potential uninitialized uses. Default initialization makes these objects safe and deterministic on every construction path.
How was it tested?
mysql-test/scripts/ci/mtr.shpasses locallyAdded gunit coverage under
unittest/gunit/binlogevents/for:Log_event_headerconstruction defaultsRows_eventstate after malformed input causes an early returnDocker validation using GCC 15.3.0 on Debian 13:
-Werror)event_initialization-t, includingbinlog_event.cppandrows_event.cppctest --test-dir /build -R '^event_initialization$' --output-on-failure: 1/1 passedsql/log_event.ccwith-O2 -Werror=uninitialized -Werror=maybe-uninitialized: passed with no diagnosticsAdditional checks:
clang-formatapplied using the repository stylegit diff --checkMTR was not added because this change does not alter SQL behavior; the constructor gunit and optimized GCC 15 compilation directly exercise the affected initialization and diagnostic paths. A full server build and MTR suite were not run locally.
Contributor checklist
scripts/ci/format.sh)AI assistance
AI assistance was provided by OpenAI Codex for issue analysis, patch and test generation, Docker-based GCC 15 validation, and diff review. The resulting diff and repository state were inspected, and the checks listed above were run; a full server build and MTR suite have not been completed locally.
Areas touched
Replication, binary logging, binlog event parsing, and binlog event gunit tests.