Repository navigation
Conversation
|
@kevinlzw could you please review this PR? |
|
The owner token does not make the release generation-safe because dict:get() and dict:delete() are separate shared-dict operations.
|
|
I think cache-miss coalescing should remain a transparent optimization. At the moment, if lock acquisition times out, this returns an error without attempting introspection. With the default five-second timeout, a temporarily slow IdP can therefore turn otherwise valid tokens into authentication failures for all waiting requests. |
|
The generation-scoped temporary-result relay is doing a lot of work to share endpoint failures and non-cacheable responses. It adds a fairly complex state machine around a cache-miss optimization and also changes failure/retry behavior. |
|
For the temporary-result relay, the motivating APISIX case is an overloaded introspection endpoint returning 503. Limiting coordination to cacheable successes means every waiter eventually retries introspection, so the overload scenario remains unresolved. Would you be open to retaining in-flight sharing for failed and non-cacheable results after the lease and fallback changes, or would you prefer this PR to address only cacheable successes and defer that behavior? |
|
Thanks for the update. The fallback change addresses my main compatibility concern. Your explanation makes sense: limiting coordination to cacheable successes would leave the original 503 overload scenario unresolved, so I’m happy to retain in-flight sharing for failed and non-cacheable results. A few focused changes would still help:
I’m comfortable treating coalescing as a best-effort optimization with these limitations documented. Happy to discuss the trade-offs further. |
|
Implemented all three follow-ups in 7784c0e:
Validation:
|
|
@kevinlzw do you have any further comments? |
|
@shreemaan-abhishek |
kevinlzw
left a comment
There was a problem hiding this comment.
Thanks for addressing the follow-ups. The latest changes address my concerns within the agreed best-effort coalescing model, with direct introspection as the fallback when coordination fails. LGTM.
|
Hi @shreemaan-abhishek , I need to get a new api key to release in luarocks, so please wait for sometime. Thank you! |
|
Hi @shreemaan-abhishek , |
Summary
introspection_cache_ignorebehaviorCloses #573.
Checklist
docker build -f tests/Dockerfile . -t lua-resty-openidc/testdocker run -t --rm lua-resty-openidc/test:latestChangeLogis updated for behavior changes, bug fixes, features, or user-visible documentation changes