dongjoon-hyun commented on PR #861:
URL: 
https://github.com/apache/spark-kubernetes-operator/pull/861#issuecomment-5778311639

   Thanks for the careful review, @peter-toth. I reproduced all four probes and 
the boundary is exactly where you put it. Addressed in 1669b5b.
   
   **1. Fixed.** You are right on both counts: the rule contradicted the 
shipped default, and `ceil(I/R)*R < I + R` is the bound that matters. I 
brute-forced the largest safe `I` for both emit intervals and it lands exactly 
on `TTL - R`, so the bound is tight rather than merely sufficient:
   
   ```
   R=120   largest safe I = 3480   TTL-R = 3480
   R=1800  largest safe I = 1800   TTL-R = 1800
   ```
   
   The docs now state that limit with the concrete numbers, and note that the 
default of 300 leaves plenty of room. Corrected in `docs/configuration.md`, in 
the option description, and in the regenerated `docs/config_properties.md`.
   
   I also corrected the reciprocal clause on 
`SUSPEND_HOLD_REQUEUE_INTERVAL_SECONDS`, which you were willing to leave as is. 
`I <= R` only coincides with the real bound because `TTL - R == R` at the 
default of 1800; at `suspendHoldRequeueIntervalSeconds=600` the real limit is 
3000, not 600. All four places now state the same rule.
   
   **2. Adopted the idea, with `15` rather than `5`.** At `I=5, R=10` the 
effective period is `ceil(5/10)*10 = 10`, so every repeat publishes and the 
drop path never executes — the positive-interval path runs, but the interval 
comparison never returns true:
   
   ```
   I=5   publishes=[0, 10, 20, 30, ...]  count>1 at t=10s  drops in 120s = 0
   I=15  publishes=[0, 20, 40, 60, ...]  count>1 at t=20s  drops in 120s = 6
   ```
   
   At `15` six repeats are actually dropped inside the 120s assert window while 
the `count` still rises every 20 seconds, six times inside the timeout. Your 
point about the real `uid` holds either way, and a slower cluster only makes 
the assert safer, since any reconcile gap above 15 seconds publishes every 
repeat.
   
   **3. Added, using your test as written.** I confirmed it pins the branch 
rather than just covering it: mutating `seconds == null ? 0L` to fall back to 
the default instead makes `treatsAMalformedMinIntervalOverrideAsNoLimit` fail.
   
   `gradle build -x test` and `gradle :spark-operator:test` are green.
   


-- 
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.

To unsubscribe, e-mail: [email protected]

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


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to