google-nomulus/java/google/registry
guyben aee4f7acc2 Remove queueing from Lock
It was buggy (didn't work) and was never actually used.

Why never actually used: for it to be used executeWithLock has to be called
with different requesters on the same lockId. That never happend in the code.

How it was buggy: Logically, the queue is deleted on release of the lock (meaning it was
meaningless the only time it mattered - when the lock isn't taken). In
addition, a different bug meant that having items in the queue prevented the
lock from being released forcing all other tasks to have to wait for lock
timeout even if the task that acquired the lock is long done.

Alternative: fix the queue. This would mean we don't want to delete the lock on release (since we want to keep the queue). Instead, we resave the same lock with expiration date being START_OF_TIME. In addition - we need to fix the .equals used to determine if the lock the same as the acquired lock - instead use some isSame function that ignores the queue.

Note: the queue is dangerous! An item (calling class / action) in the first place of a queue means no other calling class can get that lock. Everything is waiting for the first calling class to be re-run - but that might take a long time (depending on that action's rerun policy) and even might never happen (if for some reason that action decided it was no longer needed without acquiring the lock) - causing all other actions to stall forever!

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=163705463
2017-08-01 17:06:20 -04:00
..
backup Add sanity check on commit log deletion 2017-08-01 16:46:50 -04:00
batch Change @Auth to an AutoValue, and created a set of predefined Auths 2017-08-01 16:33:10 -04:00
bigquery Change BigQuery call from update to patch 2017-02-06 16:45:23 -05:00
braintree Update copyright year on all license headers 2017-02-02 16:27:22 -05:00
builddefs Add build rules for "nocron" deployments 2017-04-26 10:53:16 -04:00
config Fix checkApiServletClientId placeholder in production config sample 2017-08-01 16:48:09 -04:00
cron Change @Auth to an AutoValue, and created a set of predefined Auths 2017-08-01 16:33:10 -04:00
dns Remove queueing from Lock 2017-08-01 17:06:20 -04:00
eclipse Add Cloud KMS as dependency of eclipse package 2017-03-21 15:17:04 -04:00
env Create ICANN report upload action 2017-07-10 11:27:58 -04:00
export Remove queueing from Lock 2017-08-01 17:06:20 -04:00
flows Make Registrar load methods return Optionals instead of Nullables 2017-08-01 16:58:59 -04:00
gcs Update copyright year on all license headers 2017-02-02 16:27:22 -05:00
groups Update copyright year on all license headers 2017-02-02 16:27:22 -05:00
idn Run buildifier on codebase to format BUILD files 2016-11-28 18:15:21 -05:00
keyring Set KmsKeyring as the default Keyring 2017-07-10 11:40:02 -04:00
loadtest Change @Auth to an AutoValue, and created a set of predefined Auths 2017-08-01 16:33:10 -04:00
mapreduce Add MapReduce Input for CommitLogManifest 2017-07-10 11:13:23 -04:00
model Remove queueing from Lock 2017-08-01 17:06:20 -04:00
module Set KmsKeyring as the default Keyring 2017-07-10 11:40:02 -04:00
monitoring Change @Auth to an AutoValue, and created a set of predefined Auths 2017-08-01 16:33:10 -04:00
pricing Update copyright year on all license headers 2017-02-02 16:27:22 -05:00
rdap Change @Auth to an AutoValue, and created a set of predefined Auths 2017-08-01 16:33:10 -04:00
rde Remove queueing from Lock 2017-08-01 17:06:20 -04:00
reporting Upgrade activity reporting queries to StandardSQL 2017-08-01 16:56:12 -04:00
request Make dry run parameter documentation more understandable 2017-08-01 16:42:42 -04:00
security Remove XsrfTokenManager fallback for validating legacy tokens 2017-03-21 15:36:31 -04:00
storage/drive Update copyright year on all license headers 2017-02-02 16:27:22 -05:00
tldconfig/idn Update copyright year on all license headers 2017-02-02 16:27:22 -05:00
tmch Make Registrar load methods return Optionals instead of Nullables 2017-08-01 16:58:59 -04:00
tools Make Registrar load methods return Optionals instead of Nullables 2017-08-01 16:58:59 -04:00
ui Make Registrar load methods return Optionals instead of Nullables 2017-08-01 16:58:59 -04:00
util Add logging statement for # of tasks in DNS queue 2017-08-01 17:02:00 -04:00
whois Make Registrar load methods return Optionals instead of Nullables 2017-08-01 16:58:59 -04:00
xjc Fix the build on MacOS 2017-07-12 11:03:50 -04:00
xml Add the ability to generate RDE deposits in lenient mode 2017-05-17 12:22:49 -04:00
BUILD Document procedural changes to restore 2017-05-03 10:43:25 -04:00
repositories.bzl Migrate TestVerb.withFailureMessage to use withMessage instead 2017-08-01 16:30:24 -04:00