-
Notifications
You must be signed in to change notification settings - Fork 175
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
Incomplete ranks shown while CAD is running #9569
Comments
Interesting... Taking a complete shot in the dark here but would wrapping the whole CAD process into a transaction help? |
We already update each table in a transaction, so it should be atomic: worldcubeassociation.org/lib/auxiliary_data_computation.rb Lines 15 to 19 in 1e83c26
Just looking at the code I don't have any reasonable idea, unless the queries skip the transaction somehow. One option to test would be to add rollback after the delete and see if that works as expected. |
#9742 is an example of a fix for this issue which would help us determine if the issue is indeed the in-progress table being read while CAD is running. The other approach was to increase the isolation level of the CAD transactions, but that seems like a very bad idea because it can lead to database locks etc. |
I believe we can close this now, thanks @dunkOnIT :) |
We have the manually-triggered background job for computing ranks information (CAD). For each of the ranks tables, it removes all rows, then computes and inserts fresh rows. While the computation is running, the ranks tables have missing information, which surfaces in the UI and API.
Here are a few screenshots while running CAD on the staging, where it can be seen how CAD progresses:
Screenshots
The same issue affects API endpoints that rely on ranks (records, WCIF personal bests), and that is a bigger problem, because API users definitely don't expect records to suddenly have no entries.
For more context, I believe this is the underlying issue behind a few strange false-positive record tags we've seen on WCA Live thewca/wca-live#145.
Note that some of the pages/endpoints are cached, so keep that in mind when reproducing.
The text was updated successfully, but these errors were encountered: