oxidecomputer / oxidecomputer/omicron

Wicket crash in `wicket::runner::RunnerCore::new`

Open
#5,927 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

wicket
Dominant language
Rust
Stars
572
Forks
97
Avg merge
2d 12h
Merged PRs (30d)
96

Description

Ended up with a core dump on dogfood

> ::stack
libc.so.1`_lwp_kill+0xa()
libc.so.1`raise+0x22(6)
libc.so.1`abort+0x58()
0x1b0fa29()
0x1b0fa19()
rust_panic+0xd()
_ZN3std9panicking20rust_panic_with_hook17h83507dc0eaa37bc0E+0x302()
_ZN3std9panicking19begin_panic_handler28_$u7b$$u7b$closure$u7d$$u7d$17h3154d00dc41726bdE+0xa4()
0x1af5869()
0x1af7e36()
0x1b3e175()
0x1b3e7b5()
0xc7fe43()
_ZN6wicket6runner6Runner3new17h4407e078b3d8dc96E+0x246()
_ZN6wicket8dispatch4exec17h8a2e5aaa60724887E+0x123()
_ZN3std10sys_common9backtrace28__rust_begin_short_backtrace17h38fda0017fc71b9dE+6()
_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h00875c8d00d697cdE+0x11()
_ZN3std2rt19lang_start_internal17h16a6f35fda36f8b5E+0x2d3()
main+0x2c()
_start_crt+0x87()
_start+0x18()
> 0xc7fe3f::whatis
c7fe3f is wicket::runner::RunnerCore::new::h6ed3e6e431a19713+0x4bf, in /opt/oxide/wicket/bin/wicket [400000,1e10000)
> 0x1b3e7b1::whatis
1b3e7b1 is core::result::unwrap_failed::hde36021d185658ce+0x71, in /opt/oxide/wicket/bin/wicket [400000,1e10000)

Which looks like it maps to

    pub fn new(log: Logger) -> Self {
        Self {
            screen: Screen::new(&log),
            state: State::new(),
            terminal: Terminal::new(CrosstermBackend::new(stdout())).unwrap(),
            log,
            log_throttler: EventReportLogThrottler::default(),
        }
    }

Unclear what triggered the crash as I don't recall actually seeing wicket crash. I may have been resizing the window which is known to trigger crashes.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at wicket:🏃:RunnerCore::new and inspect the stack trace around the unwrap failure in the shown constructor. Run wicket and investigate whether resizing the window reproduces the dogfood crash; done means identifying the trigger and preventing the crash with coverage for the failing case.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cli
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.