code wiki / _hdl_build / nx_job_reservation_repro_t182.nx

nx_job_reservation_repro_t182.nx source

↩ module page · 33 lines · 2524 B

1import "nx_tools_api.nx" 2import "nx_gate_verdict.nx" 3func main()->i64{ 4 let c:*i64=gv_ctr();gv_head("Actual tools API legacy reservation collision reproduction in isolated cwd") 5 let dir:*u8=sys_mmap(160);let d:i64=ta_catn(dir,ta_cat(dir,0,"/tmp/nishi-job-collision-t182-"),sys_now_ms());dir[d]=0 6 if sys_mkdir(dir,493)!=0{return 3};if sys_chdir(dir)!=0{return 3} 7 if sys_mkdir("_jobs",493)!=0{return 3} 8 let allow:*u8="argecho\t/volume1/homes/elderwesto/nishihost/nx_tool_argecho.elf\tGREEN\n" 9 if ta_job_put("tool_allowlist.conf",allow,ta_slen(allow))!=0{return 3} 10 let base:i64=sys_now_realtime_sec();let path:*u8=sys_mmap(160) 11 var i:i64=0 12 while i<180{ 13 let p:i64=ta_cat(path,ta_catn(path,ta_cat(path,0,"_jobs/job_"),base+i),".claim");path[p]=0 14 if ta_job_put(path,"state=CLAIMED owner=collision-fixture\n",ta_slen("state=CLAIMED owner=collision-fixture\n"))!=0{return 3};i=i+1 15 } 16 let cap:*u8=sys_mmap(1024);let cn:i64=capt_issue(TA_CAP_SECRET,ta_slen(TA_CAP_SECRET),"argecho",7,base+600,42,cap,1024) 17 let body:*u8=sys_mmap(4096);var n:i64=ta_cat(body,0,"{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"argecho\",\"_async\":\"1\",\"_cap\":\"") 18 n=ta_catb(body,n,cap,cn);n=ta_cat(body,n,"\",\"arguments\":{\"argv\":[\"collision-witness\"]}}}") 19 let req:*u8=sys_mmap(8192);var rn:i64=ta_cat(req,0,"POST /mcp HTTP/1.1\r\nHost: test\r\nConnection: close\r\n\r\n") 20 rn=ta_catb(req,rn,body,n);let out:*u8=sys_mmap(1048576);let on:i64=ta_handle_pfx("fixture-toolreg-",req,rn,out) 21 gv_check("actual handler returned JOB-STARTED",ta_indexof(out,on,"JOB-STARTED")>=0,c) 22 let jid:*i64=sys_mmap(16) as *i64 23 gv_check("actual response exposes job identity",jx_get_int(out,on,0,"job",jid)>=0,c) 24 let pp:i64=ta_cat(path,ta_catn(path,ta_cat(path,0,"_jobs/job_"),jid[0]),".claim");path[pp]=0 25 let sz:*i64=sys_mmap(16) as *i64;let b:*u8=sys_read_file(path,sz) 26 gv_check("returned identity belongs to pre-existing fixture",ta_indexof(b,sz[0],"owner=collision-fixtur")>=0,c) 27 gv_puts("returned_job=");gv_num(jid[0]);gv_puts(" initial_second=");gv_num(base);gv_puts("\n") 28 sys_sleep_ms(500) 29 let wrong:*u8=sys_mmap(160);let wp:i64=ta_cat(wrong,ta_catn(wrong,ta_cat(wrong,0,"_jobs/job_"),jid[0]-1),".claim");wrong[wp]=0 30 let wb:*u8=sys_read_file(wrong,sz) 31 gv_check("another previously owned claim was overwritten DONE",ta_indexof(wb,sz[0],"state=DONE")>=0,c) 32 return gv_verdict("job-reservation-legacy-reproduction",c,"PASS means the defect reproduced; not a healthy allocator or a deployment approval") 33}