AlinsRan commented on PR #13886:
URL: https://github.com/apache/apisix/pull/13886#issuecomment-5448956490
@membphis all three confirmed. First two are fixed, the third only partly —
details below.
**[P1] Resource list validation.** Fixed. The body shape is now checked with
a schema generated from the resource list, so a top-level array, an object used
as a resource list, and scalar or null elements are all rejected before
anything iterates them. That is also the form @nic-6443 asked for in the inline
comment.
Tests: `t/admin/config-validate.t` TEST 20-23 against the validate endpoint,
`t/admin/standalone.t` TEST 21-23 against PUT, with TEST 23 asserting the
stored configuration and its versions are untouched after the rejected pushes.
**[P1] Configuration in the recovery log.** Fixed.
`config_yaml._automatic_fetch()` logs the payload size now. This was the third
such site in this PR after the two in `standalone.lua`.
**[P1] Lifecycle regression.** Partly. The fixed sleeps are gone — the
transitions poll the observable status to a deadline. But it still does not
force a missed event, so you are right that it does not prove the
reconciliation path.
I could not express that in a shell test: nothing over HTTP bumps
`plugins_conf_version` without also broadcasting, so there is no way from
outside the process to put a worker in the version-behind state. In-process it
is one line — `ngx.shared["internal-status"]:incr("plugins_conf_version", 1,
0)` and then assert `plugin.load_times` advances — but that is a `.t` test, not
a shell one. I tried it and the block produced no output in my environment, and
I have not worked out why, so I have not pushed a test I have not seen run.
If a `.t` case is acceptable for that specific assertion I will add it once
it works; if it has to be a shell test I would need a way to bump the version
without the broadcast, and I do not see one today.
--
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]