rob05c opened a new issue #5025:
URL: https://github.com/apache/trafficcontrol/issues/5025


   Currently, there's no way to set the Server Update Pending and Reval Pending 
flags, without a race condition.
   
   1. ORT/Config Generation checks the flag, sees that a Reval is needed
   2. ORT generates config with the reval
   3. Someone issues a new Invalidation Job, which sets the Reval Pending flag 
(which was already set)
   4. ORT unsets the Reval Pending flag.
   
   We need some kind of mechanism in the API to say "unset the Reval/Update 
Pending, but only if it hasn't changed since this time."
   
   There are several ways to accomplish this.
   
   We're planning to add If-Unmodified-Since. But, the check and set endpoints 
are different (`GET /update_status` vs `POST /update`), so it would effectively 
require an IUS that applies to a _different_ endpoint. We could add something 
custom. But I think the best solution would be to make new endpoint(s) that 
have GET+POST+/PUT for the same endpoint, so a proper IUS can be used.
   
   ## I'm submitting a ...
   -  bug report
   
   ## Traffic Control components affected ...
   -  Traffic Ops
   
   ## Current behavior:
   Impossible to set update or reval flags without risking someone having 
issued a new update and overwriting that.
   
   ## Expected / new behavior:
   Possible to set update or reval flags without risking someone having issued 
a new update and overwriting that.
   
   ## Minimal reproduction of the problem with instructions:
   1. ORT/Config Generation checks the flag, sees that a Reval is needed
   2. ORT generates config with the reval
   3. Someone issues a new Invalidation Job, which sets the Reval Pending flag 
(which was already set)
   4. ORT unsets the Reval Pending flag.
   
   
   ## Anything else:


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to