feat(job-array-one-based-index): classify every job submission first (task 2.1)
handle_jobsubmit classifies (first_jobid, array_size) before the field checks, the before-event hook and any registry access: a tagged array starting at index 0 is answered with the new E_XCE_ARRAY_START0 and an ERROR log asking for the client to be upgraded (7.1, wins per 7.9); size 0, tags 2/3, untagged multi-element submissions and arrays whose last element exceeds 32767 (checked without addition) get -EINVAL. Nothing is stored for a rejected submission. This also closes a crash: a size-0 submission used to reach payload building and overflow calloc. Existing array tests move to tagged block|1 first IDs. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
ef728435d4
commit
e6c484a0e7
11 changed files with 574 additions and 19 deletions
|
|
@ -25,7 +25,7 @@
|
|||
- _Boundary: IdgenArray_
|
||||
|
||||
- [ ] 2. Controller: array admission and collision detection
|
||||
- [ ] 2.1 Classify every submission before any other check
|
||||
- [x] 2.1 Classify every submission before any other check
|
||||
- Add the distinct "array numbering starts at 1" error status and its message text to the shared error table
|
||||
- Classify a submission from its first ID and 64-bit size only: start-at-0 array first; then size 0, an unknown marking, an unmarked multi-element submission, and a last element above 32767 (computed without addition so no size can wrap)
|
||||
- Run the classification as the first step after the reply is initialised, before the existing field checks and the before-event hook; answer start-at-0 with the new status plus an ERROR log saying numbering starts at 1 and the client must be upgraded, and the other classes with invalid-argument; store nothing
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue