Repository navigation
Conversation
|
The attempt to merge branch
This PR is ready to be merged. |
There was a problem hiding this comment.
🟡 Changes recommended
The change still has two critical active issues: guest duplicate submissions remain possible because they lack server-side transaction state, and the locking approach is not atomic on supported non-transactional table engines.
2 open issues
What changed in this PR
This pull request addresses duplicate poll submissions by validating poll options and serializing registered-user vote updates.
Changes:
- Filters submitted vote IDs to valid poll options.
- Adds transactional locking and duplicate-vote detection for registered users.
- Adds a functional regression test and a duplicate-vote language string.
- Remaining issues affect guest submissions, non-transactional database engines, and concurrent-request test coverage.
| File | Summary |
|---|---|
tests/functional/posting_test.php |
Adds coverage for invalid options and repeated poll submissions, but does not exercise truly concurrent requests. |
phpBB/viewtopic.php |
Validates poll options and coordinates vote updates transactionally; guest requests and non-transactional engines still require handling. |
phpBB/language/en/viewtopic.php |
Adds the message displayed when a vote has already been cast. |
This pull request requires changes.
Review effort: Lite
There was a problem hiding this comment.
🟡 Changes recommended
A moderate active finding remains because the test does not reproduce the concurrent double-submit or exercise the transaction re-read branch, so it can pass against the old implementation.
1 open issue
2 resolved since last review
Review effort: Lite
There was a problem hiding this comment.
🔵 Needs a closer look
The fix depends on row-lock and transaction semantics across phpBB’s supported database drivers, and the race lacks automated concurrent coverage, so human validation across those engines is needed.
No open issues 🎉
1 resolved since last review
Review effort: Lite


PHPBB-17768
Checklist:
Tracker ticket:
https://tracker.phpbb.com/browse/PHPBB-17768