fix(ci): correct EXCEPTION_POINTERS pointer kind and ExceptionCode cast in crashlog #4
No reviewers
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
hex/zeno-rmm!4
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/ci-crashlog-exception-type"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Restores the Windows CI Test job, which has been failing repeatedly on main with two compile errors in
crates/zeno-agent/src/crashlog.rs:SetUnhandledExceptionFilter(Some(handler))—LPTOP_LEVEL_EXCEPTION_FILTERexpects a function pointer with*const EXCEPTION_POINTERS, but our handler was declared with*mut.record.ExceptionCode.0 as u32—ExceptionCodeis a type alias fori32(NTSTATUS), not a tuple struct, so.0is illegal.Evidence
Last failed run: https://github.com/HexC0d3rz/zeno-rmm/actions/runs/27619667030 (job: Test, conclusion: failure)
The same error has caused at least 7 consecutive Test job failures across multiple pushes to main (runs #125, #128, #130, #135, #136, #137, #138).
Fix
*const EXCEPTION_POINTERS(matchesLPTOP_LEVEL_EXCEPTION_FILTERdefinition inwindows-sys 0.61).ExceptionCodedirectly tou32(it ispub type NTSTATUS = i32).as_ref()calls inunsafe { }blocks since the compiler now requires them in anunsafe externfn.Test Plan
cargo check --workspace --all-targetspasses locally (Linux target; Windows-only code is#[cfg(windows)]).@HexC0d3rz — please merge to unblock the queue (3 runs currently queued behind the broken in_progress #138 on the self-hosted runner).
Superseded by #6. PR #4 contained only the crashlog
EXCEPTION_POINTERS/ExceptionCodefix, but on its own it was blocked by the-D warningsdead-code errors incrates/zeno-installer/src/payload.rsandcrates/zeno-server/src/state.rsthat this branch inherits frommain. #6 merges both the crashlog fix and the dead-code#[allow(dead_code)]attributes from #5 into a single branch, so all CI checks can pass together. Closing in favor of #6.Pull request closed