-
-
Notifications
You must be signed in to change notification settings - Fork 84
Make vote-shop debits atomic before granting rewards #1600
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
BenCodez
wants to merge
51
commits into
master
Choose a base branch
from
security/atomic-vote-shop
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
51 commits
Select commit
Hold shift + click to select a range
6b69462
Make vote shop debit atomic
BenCodez 4b12ebf
Test concurrent vote shop debits
BenCodez 1d44c4b
Use stable purchase locks and async persistence
BenCodez 70fe42f
Use stable purchase locks and async persistence
BenCodez a199326
Keep purchase locks stable across reloads
BenCodez e335aec
Keep purchase locks stable across reloads
BenCodez 9c176fd
Address review feedback with regression coverage
BenCodez dd3a770
Address review feedback with regression coverage
BenCodez 6a5cd23
Address latest review feedback
BenCodez ebfbc55
Make concurrent debit regression deterministic
BenCodez b8b695e
Merge remote-tracking branch 'origin/master' into security/pr-1600-local
BenCodez ca4471d
fix: make shared vote shop purchases atomic
BenCodez 38ae0d6
Preserve synchronous shared point updates
BenCodez e07be21
Preserve purchase and transfer semantics
BenCodez c5ddb3c
Reserve shared transfer points before hooks
BenCodez ca387d7
Release shared transfer hooks before callbacks
BenCodez dc25f95
Close shared point mutation consistency gaps
BenCodez 520aa14
Journal shared vote shop purchases
BenCodez 4d3f404
Recover shared transfers and bound journal names
BenCodez 8d07e5a
Make shared MySQL purchases failure-safe
BenCodez 0a4913e
Harden shared MySQL point completion and recovery
BenCodez 58c5d0d
Close shared point settlement edge cases
BenCodez 4928b10
Close shared point settlement edge cases
BenCodez bdd471b
Preserve shared point mutation state
BenCodez e1aa435
Merge remote-tracking branch 'origin/master' into security/pr-1600-local
BenCodez a52a1ec
Keep rejected transfer recovery off Bukkit
BenCodez 6fe7db7
Reconcile caches after recovery refunds
BenCodez a2e0112
Avoid stale shared purchase cache writes
BenCodez 1bfde24
Fix shared vote shop recovery races
BenCodez a58168c
Close shared vote shop recovery races
BenCodez cb73334
Bound shared point and purchase recovery work
BenCodez f3141f2
Wait for shared point reward persistence
BenCodez 35f3ac2
Handle rejected shared point submissions
BenCodez e7fb241
Keep shared shop validation off GUI lanes
BenCodez b35abf4
Recover rejected shared point operations
BenCodez 6b87b9f
Avoid blocking vote shop placeholder reads
BenCodez 87de933
Fix shared vote shop recovery and cache refresh
BenCodez c687cbf
Handle rejected transfer settlement and cache races
BenCodez 21ac3f9
Harden shared point settlement and callback recovery
BenCodez c94842e
Harden vote shop recovery paths
BenCodez e8e9316
Exclude optimistic points from cache dumps
BenCodez 3c049f4
Align weekly reset generation with configured period
BenCodez 367f941
Complete atomic point transfer safeguards
BenCodez 96c8504
Harden shared MySQL purchase completion
BenCodez 7ed6948
Await durable shared point rewards
BenCodez adcfa27
Make shared point rewards retry safe
BenCodez 68976d5
Harden indeterminate shared point operations
BenCodez 0647d07
Fence shared vote shop resets from cache dumps
BenCodez 8bc2e1c
Fence all shared MySQL cache dumps
BenCodez 36a5979
Document shared limit cache contract
BenCodez 64a983b
Track epochs for every limited purchase
BenCodez File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
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
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
282 changes: 164 additions & 118 deletions
282
VotingPlugin/src/main/java/com/bencodez/votingplugin/commands/CommandLoader.java
Large diffs are not rendered by default.
Oops, something went wrong.
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
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
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
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
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
10 changes: 10 additions & 0 deletions
10
VotingPlugin/src/main/java/com/bencodez/votingplugin/user/PointTransferResult.java
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| package com.bencodez.votingplugin.user; | ||
|
|
||
| /** The externally observable outcome of a point transfer. */ | ||
| public enum PointTransferResult { | ||
| SUCCESS, | ||
| INSUFFICIENT_POINTS, | ||
| CANCELLED, | ||
| PENDING_CONFIRMATION, | ||
| UNAVAILABLE | ||
| } |
Oops, something went wrong.
Oops, something went wrong.
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.