chore(wolf): checkpoint buglog.json (880 bugs)
This commit is contained in:
parent
ff87986950
commit
9e15161228
1 changed files with 154 additions and 0 deletions
|
|
@ -15643,6 +15643,160 @@
|
|||
"related_bugs": [],
|
||||
"occurrences": 1,
|
||||
"last_seen": "2026-08-13T03:02:32.434Z"
|
||||
},
|
||||
{
|
||||
"id": "bug-872",
|
||||
"timestamp": "2026-08-13T07:20:20.800Z",
|
||||
"error_message": "Significant refactor of ",
|
||||
"file": "src/xceadmin/src/xcecommon/mapping.py",
|
||||
"root_cause": "7 lines replaced/restructured",
|
||||
"fix": "Rewrote 8\u219214 lines (7 removed)",
|
||||
"tags": [
|
||||
"auto-detected",
|
||||
"refactor",
|
||||
"py"
|
||||
],
|
||||
"related_bugs": [],
|
||||
"occurrences": 1,
|
||||
"last_seen": "2026-08-13T07:20:20.800Z"
|
||||
},
|
||||
{
|
||||
"id": "bug-873",
|
||||
"timestamp": "2026-08-13T07:20:42.831Z",
|
||||
"error_message": "Significant refactor of ",
|
||||
"file": "src/xceadmin/tests/test_mapping.py",
|
||||
"root_cause": "3 lines replaced/restructured",
|
||||
"fix": "Rewrote 3\u21925 lines (3 removed)",
|
||||
"tags": [
|
||||
"auto-detected",
|
||||
"refactor",
|
||||
"py"
|
||||
],
|
||||
"related_bugs": [],
|
||||
"occurrences": 1,
|
||||
"last_seen": "2026-08-13T07:20:42.831Z"
|
||||
},
|
||||
{
|
||||
"id": "bug-874",
|
||||
"timestamp": "2026-08-13T07:25:51.662Z",
|
||||
"error_message": "Missing error handling in unknown",
|
||||
"file": "src/controller/testsuite/test_worker_join.c",
|
||||
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
|
||||
"fix": "Added try/catch block",
|
||||
"tags": [
|
||||
"auto-detected",
|
||||
"error-handling",
|
||||
"c"
|
||||
],
|
||||
"related_bugs": [],
|
||||
"occurrences": 1,
|
||||
"last_seen": "2026-08-13T07:25:51.662Z"
|
||||
},
|
||||
{
|
||||
"id": "bug-875",
|
||||
"timestamp": "2026-08-13T07:27:23.041Z",
|
||||
"error_message": "Significant refactor of ",
|
||||
"file": "src/controller/worker.c",
|
||||
"root_cause": "3 lines replaced/restructured",
|
||||
"fix": "Rewrote 49\u219267 lines (3 removed)",
|
||||
"tags": [
|
||||
"auto-detected",
|
||||
"refactor",
|
||||
"c"
|
||||
],
|
||||
"related_bugs": [],
|
||||
"occurrences": 1,
|
||||
"last_seen": "2026-08-13T07:27:23.041Z"
|
||||
},
|
||||
{
|
||||
"id": "bug-1553",
|
||||
"timestamp": "2026-08-13T07:35:00Z",
|
||||
"error_message": "controller_unit_test (combined 1095-test Unity binary) segfaults intermittently (~1 in 3 full runs observed) somewhere between test_drive_async_config.c and the next testsuite file (test_configcompare.c/test_slowlane.c area) -- no assertion failure, no ASAN report captured before the crash, process just dies (exit 139/SIGSEGV)",
|
||||
"file": "src/controller/testsuite/ (combined binary, crash site not yet isolated -- occurs after test_drive_async_config.c's liveness_reserved_* tests)",
|
||||
"root_cause": "Not yet investigated. Reproduced 1/3 runs both BEFORE and AFTER an unrelated worker.c change (update_resval PERROR->rc logging fix) confirming this is pre-existing and unrelated to that fix -- likely order-dependent shared-process state leakage across Unity tests (global fixtures, xstring table, or ASAN heap state) rather than a bug in any specific test file. Two of three runs completed cleanly with 0 failures each time.",
|
||||
"fix": "Not fixed -- out of scope for the update_resval/mxj-auto-detect bugfix session that surfaced it. Needs isolation: bisect which specific test pair triggers it (likely by running testsuite files in smaller batches or under gdb with a core dump), then root-cause the actual memory-safety issue.",
|
||||
"tags": [
|
||||
"flaky",
|
||||
"segfault",
|
||||
"controller_unit_test",
|
||||
"order-dependent",
|
||||
"unity",
|
||||
"not-fixed"
|
||||
],
|
||||
"related_bugs": [],
|
||||
"occurrences": 1,
|
||||
"last_seen": "2026-08-13T07:35:00Z"
|
||||
},
|
||||
{
|
||||
"id": "bug-1554",
|
||||
"timestamp": "2026-08-13T07:36:00Z",
|
||||
"error_message": "workerlist / resval show maxswap=1024 and maxtmp=2048 for every host regardless of actual hardware, unless overridden by a per-host config resource entry",
|
||||
"file": "src/worker/src/xcecd.c",
|
||||
"root_cause": "init_host_attrs() hardcodes host_attrs.maxswap = 1024 and host_attrs.maxtmp = 2048 as placeholder constants (lines ~349-350) -- unlike maxcpus/maxmem, which come from real hardware_monitor_* detection, these two fields have no real detection implemented yet. Confirmed live: a deploy's maxtmp showed exactly 2048 (the hardcoded stub) while maxswap showed 10000 (a per-host config override in hosts.yaml resource list, taking precedence via apply_join_state's mark_host_res loop -- proves the stub IS reachable/live whenever no override exists).",
|
||||
"fix": "Not fixed -- user explicitly deferred this (2026-08-13): real swap/tmp-disk detection is a bigger feature (needs actual sysinfo swap totals + statvfs on the configured tmp path) worth discussing design for, not a one-line fix. Flagging only per user's request.",
|
||||
"tags": [
|
||||
"worker",
|
||||
"hardware-detection",
|
||||
"stub",
|
||||
"not-fixed",
|
||||
"maxswap",
|
||||
"maxtmp"
|
||||
],
|
||||
"related_bugs": [],
|
||||
"occurrences": 1,
|
||||
"last_seen": "2026-08-13T07:36:00Z"
|
||||
},
|
||||
{
|
||||
"id": "bug-878",
|
||||
"timestamp": "2026-08-13T08:06:37.286Z",
|
||||
"error_message": "Significant refactor of ",
|
||||
"file": "src/controller/testsuite/test.c",
|
||||
"root_cause": "2 lines replaced/restructured",
|
||||
"fix": "Rewrote 30\u219241 lines (2 removed)",
|
||||
"tags": [
|
||||
"auto-detected",
|
||||
"refactor",
|
||||
"c"
|
||||
],
|
||||
"related_bugs": [],
|
||||
"occurrences": 1,
|
||||
"last_seen": "2026-08-13T08:06:37.286Z"
|
||||
},
|
||||
{
|
||||
"id": "bug-1555",
|
||||
"timestamp": "2026-08-13T07:40:00Z",
|
||||
"error_message": "controller log spammed with '[ERROR] update_resval: Success' / 'update_resval: Resource temporarily unavailable' -- misleading, the real failure reason is never logged",
|
||||
"file": "src/controller/worker.c",
|
||||
"root_cause": "update_resvals()/update_resval_list() called PERROR(\"update_resval\") on rc<0, but PERROR (xce_perror -> xce_perror_) formats the process-global errno, not rc. update_resval()'s failure paths (key_find/zarray_put) return raw negative codes directly and never touch errno, so the logged message reflected whatever errno happened to be left over from an unrelated earlier syscall in the same event-loop iteration -- 0 (\"Success\") if nothing had touched it, or a stray EAGAIN if something had. The real reason (e.g. -ENOENT from an unregistered resource name) was silently discarded. Also fixed a second instance of the same errno-vs-rc bug in update_resval()'s r==NULL branch (was `return -errno;`, now `return -ENOENT;`, matching the identical branch in the sibling function mark_host_res()).",
|
||||
"fix": "Replaced PERROR with a local log_update_resval_failure() helper that decodes the actual rc via xce_strerror_r(-rc, ...) and includes the resource name in the message. Regression test: test_update_resvals_logs_actual_rc_not_stale_errno (test_worker_join.c) sets errno=EAGAIN before the call and asserts the captured log contains neither \"Success\" nor \"Resource temporarily unavailable\", contains the resource name, and contains the real ENOENT string -- verified genuine RED (failed against the reverted old code with the exact reported symptom) before GREEN.",
|
||||
"tags": [
|
||||
"controller",
|
||||
"logging",
|
||||
"errno",
|
||||
"fixed"
|
||||
],
|
||||
"related_bugs": [],
|
||||
"occurrences": 1,
|
||||
"last_seen": "2026-08-13T07:40:00Z"
|
||||
},
|
||||
{
|
||||
"id": "bug-1556",
|
||||
"timestamp": "2026-08-13T07:41:00Z",
|
||||
"error_message": "Every host using the documented hosts.yaml default (no max_slot, meaning 'auto-detect from CPU count') gets 0 scheduling slots -- permanently blocks the scheduler from placing any job on that host",
|
||||
"file": "src/xceadmin/src/xcecommon/mapping.py",
|
||||
"root_cause": "hosts.schema.json documents max_slot: -1 as the 'auto-detect' sentinel, but HostConfig.mxj is UInt32 on the wire and cannot represent -1 (pycapnp raises capnp.KjException for a negative assignment). mapping.py's _build_host_config() worked around this by leaving mxj unset when max_slot was absent/negative, which capnp defaults to 0. worker.c's apply_join_state() then does `nslots = hconfig->mxj; if (nslots < 0) nslots = maxcpus;` -- but 0 is never < 0, so the auto-detect fallback never fires, and the host is explicitly configured with 0 slots. Confirmed live via a real deploy: resval -n slots showed value: 0.000000 for the default host. An existing test (test_mapping.py) even asserted this broken behavior as correct (`assert h.mxj == 0`).",
|
||||
"fix": "mapping.py now sets mxj = HOSTCONFIG_MXJ_AUTO_DETECT (0xFFFFFFFF) instead of leaving it unset. The controller's `int mxj` field receives this via capn_read32()'s implicit uint32_t->int conversion, which reinterprets it back to -1 on this project's two's-complement target platforms -- no capnp schema change or C-side change needed, apply_join_state()'s existing `nslots<0` fallback already handles a genuine -1 correctly (now proven by a new C regression test, test_apply_join_state_mxj_negative_one_falls_back_to_maxcpus, since no existing test exercised that branch with a negative mxj before). Updated the stale test assertion, added a new test for the absent-max_slot production case, and regenerated the xceadmin golden fixture (tests/fixtures/full/expected.bin) whose wire bytes changed as a result.",
|
||||
"tags": [
|
||||
"xceadmin",
|
||||
"config",
|
||||
"scheduling",
|
||||
"wire-encoding",
|
||||
"fixed",
|
||||
"high-severity"
|
||||
],
|
||||
"related_bugs": [],
|
||||
"occurrences": 1,
|
||||
"last_seen": "2026-08-13T07:41:00Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue