fix(controller): CtrlHelloRequest.key Data field crashed HA leader election (bug-1835)
CtrlHelloRequest.key was declared `Data` in controller.capnp. This project's capnp-c backend silently no-ops encoding of Data-typed fields without zero-initializing the caller's local struct, leaving an uninitialized capn_ptr that write_CtrlHelloRequest unconditionally wrote to the wire -- SIGSEGV in capn_setp/copy_ptr. Hit live: ctrl-1 won its Raft election and crashed calling ha_send_ctrlhello_to_all_standbys(). Same bug class as bug-1504/bug-1505, both already fixed by switching the field from Data to List(UInt8); bug-1505's own writeup had flagged CtrlHelloRequest.key as a known-but-unfixed instance. Applied the identical fix here: Data -> List(UInt8) + keyLen companion in the schema, uint8_t*/key_len in typemap.h. The field is unused in production (always NULL), so no consumer code changed. Added a round-trip regression test covering both the NULL-key production shape and real key content. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
1e43345b2e
commit
cd9ecb4159
7 changed files with 197 additions and 21 deletions
|
|
@ -5524,3 +5524,12 @@
|
|||
| 04:53 | Edited src/lib/testsuite/test_limit.c | added 2 condition(s) | ~1989 |
|
||||
| 04:53 | Edited src/lib/testsuite/test_limit.c | expanded (+8 lines) | ~135 |
|
||||
| 06:14 | Created reports/sep13-sep19-2026.md | — | ~3659 |
|
||||
|
||||
## Session: 2026-09-21 20:31
|
||||
|
||||
| Time | Action | File(s) | Outcome | ~Tokens |
|
||||
|------|--------|---------|---------|--------|
|
||||
| 20:38 | Edited src/schema/controller.capnp | modified mapname() | ~329 |
|
||||
| 20:38 | Edited src/include/typemap.h | 7→10 lines | ~151 |
|
||||
| 20:39 | Edited src/controller/testsuite/test_e2e_capnp.c | modified test_ctrl_hello_request_key_round_trip() | ~1131 |
|
||||
| 20:39 | Edited src/controller/testsuite/test_e2e_capnp.c | 2→3 lines | ~46 |
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue