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]

Reply via email to