fix(schema): rename struct Data -> XceData to unshadow capnp builtin blob type
controller.capnp declared `struct Data $C.mapname("xce_data_t")` (an
OPCode_get query-result tagged union) at file scope, which shadows
Cap'n Proto's builtin Data blob type for every later `: Data` field in
the same file. This silently miscompiled 7 fields across 6 structs as
a struct-pointer type instead of a raw byte blob: UpgradeConfigRequest
.sha256/.bytes, ReplConfigReply.sha256/.bytes, ReplConfigPushRequest
.sha256/.bytes, ReplEnvelope.payload, SnapshotTransfer's chunk
payload, WalCatchupEntry.payload/.batchPayloads, and CtrlHelloRequest
.key. Production C code had already routed around it for years via
hand-rolled raw capn_ptr manipulation (see request.c's own comments);
nothing before now needed the generated codec/accessors to actually
work for these fields.
Renamed the local struct to XceData (capnp-level name only; the
$C.mapname("xce_data_t") C typedef is unchanged) and explicitly
repointed getdata/pushmsg at XceData by name, since those two fields
correctly want the local tagged union. Updated every derived
generated-identifier reference across 19 hand-written files spanning
controller, lib, scheduler, and the Go apiserver/xcecli CGo bindings.
Fixed 5 call sites in lib/request.c that had been typed against the
old workaround alias but now legitimately receive the correct
capn_data type (a pure type-name swap -- Data_ptr/XceData_ptr and
capn_data share the identical {capn_ptr p} layout).
Verified via full rebuild+test: lib (1/1), controller (3/3, incl. the
job-array push regression tests), scheduler (15/15), Go apiserver +
xcecli (all packages green), and a direct pycapnp round-trip proving
UpgradeConfigRequest.sha256/.bytes now encode/decode correctly.
Bug: bug-1461 (.wolf/buglog.json). Unblocks admin-config-tool task 3.3.
This commit is contained in:
parent
7ed3a3941f
commit
e53c086ec5
21 changed files with 144 additions and 144 deletions
|
|
@ -153,7 +153,7 @@ int xce_get(xce_ctx_t* ctx, int table, void*** data)
|
|||
|
||||
int xce_reslist(xce_ctx_t* ctx, xce_resource_t*** res)
|
||||
{
|
||||
int table = Data_data_resources;
|
||||
int table = XceData_data_resources;
|
||||
|
||||
return xce_get(ctx, table, (void***)res);
|
||||
}
|
||||
|
|
@ -174,11 +174,11 @@ int xce_resval(xce_ctx_t* ctx, char* host, char* res, xce_resval_t*** vals)
|
|||
}
|
||||
};
|
||||
xce_get_t get = {
|
||||
.table = Data_data_resvals,
|
||||
.table = XceData_data_resvals,
|
||||
.condition = &condition
|
||||
};
|
||||
dataset_t getreply = {
|
||||
.table = Data_data_resvals,
|
||||
.table = XceData_data_resvals,
|
||||
.nrows = 0,
|
||||
.rows = NULL
|
||||
};
|
||||
|
|
@ -244,7 +244,7 @@ int xce_join(xce_ctx_t* ctx, int role, hostattrs_t* attrs)
|
|||
|
||||
int xce_workerlist(xce_ctx_t* ctx, xce_worker_t*** workers)
|
||||
{
|
||||
int table = Data_data_workers;
|
||||
int table = XceData_data_workers;
|
||||
|
||||
return xce_get(ctx, table, (void***)workers);
|
||||
}
|
||||
|
|
@ -326,9 +326,9 @@ int xce_joblist_ex(xce_ctx_t* ctx, int sched, xce_job_t*** jobs)
|
|||
int table;
|
||||
|
||||
if (sched) {
|
||||
table = Data_data_schedjobs;
|
||||
table = XceData_data_schedjobs;
|
||||
} else {
|
||||
table = Data_data_jobs;
|
||||
table = XceData_data_jobs;
|
||||
}
|
||||
|
||||
return xce_get(ctx, table, (void***)jobs);
|
||||
|
|
@ -714,7 +714,7 @@ int xce_jobinfo(xce_ctx_t* ctx, uint64_t jobid, xce_job_t** job)
|
|||
}
|
||||
};
|
||||
xce_get_t get = {
|
||||
.table = Data_data_jobs,
|
||||
.table = XceData_data_jobs,
|
||||
.condition = &condition
|
||||
};
|
||||
/* clang-format on */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue