Skip to content

Ion crashes after pressing `enter` key frequently

bug: Ion crashes after pressing enter key frequently

expect: Ion runs normally after pkg exiting abnormally

code: input

user:/usr/bin# pkg list vim
* Requesting https://static.redox-os.org/pkg/x86_64-unknown-redox/vim.sig
126 B / 126 B [===========================================] 100.00 % 12.11 KB/s
* Requesting https://static.redox-os.org/pkg/x86_64-unknown-redox/vim.tar.gz
smolnetd::scheme: poll error: dropped by socket
smolnetd::scheme: poll error: dropped by socket
560.00 KB / 11.54 MB [=>-------------------------------] 4.74 % 292.13 KB/s 39s ion: pipeline execution error: process (112) ended by signal SIGINT
user:/usr/bin#

user:/usr/bin#

# ... 

user:/usr/bin# cat /sys:context
PID   PGID  PPID  RUID  RGID  RNS   EUID  EGID  ENS   STAT  CPU   TICKS   MEM     NAME
1     1     0     0     0     0     0     0     0     RR    0     00:19:48 512 B
2     2     0     0     0     0     0     0     0     RR+   3     00:00:00 512 B
3     3     0     0     0     0     0     0     0     RR+   1     00:00:00 512 B
4     4     0     0     0     0     0     0     0     RR+   2     00:00:00 512 B
5     5     0     0     0     0     0     0     0     UB    0     00:00:00 2 MB    initfs:bin/init
6     5     5     0     0     1     0     0     1     UB    0     00:00:00 12 MB   bootstrap
8     5     5     0     0     0     0     0     0     UB    0     00:00:00 1 MB    /bin/nulld
10    5     5     0     0     0     0     0     0     UB    0     00:00:00 1 MB    /bin/zerod
12    5     5     0     0     0     0     0     0     UB    0     00:00:00 2 MB    /bin/randd
15    5     5     0     0     0     0     0     0     UB    0     00:00:00 1 MB    /bin/logd
19    5     5     0     0     0     0     0     0     UB    0     00:00:03 2 MB    /bin/ramfs
21    5     5     0     0     0     0     0     0     UB    0     00:00:01 2 MB    /bin/acpid
25    5     5     0     0     0     0     0     0     UB    0     00:00:05 2 MB    /bin/ahcid
27    5     5     0     0     0     0     0     0     UB    0     00:00:04 35 MB   /bin/redoxfs
29    5     5     0     0     0     0     0     0     UB    0     00:00:00 1 MB    file:/bin/ipcd
31    5     5     0     0     0     0     0     0     UB    0     00:00:06 2 MB    file:/bin/ptyd
34    5     5     0     0     1     0     0     1     UB    0     00:00:00 7 MB    file:/bin/pcid
35    5     5     0     0     0     0     0     0     UR    0     00:02:02 2 MB    file:/bin/ihdad
38    5     5     0     0     0     0     0     0     UB    0     00:00:02 1 MB    file:/bin/e1000d
40    5     5     0     0     1     0     0     1     UB    0     00:00:00 2 MB    file:/bin/escalated
42    5     5     0     0     0     0     0     0     UB    0     00:00:06 3 MB    file:/bin/smolnetd
44    5     5     0     0     0     0     0     0     UB    0     00:00:00 2 MB    file:/bin/dnsd
48    5     5     0     0     0     0     0     0     UR    0     00:02:27 4 MB    file:/bin/audiod
49    5     48    0     0     0     0     0     0     UB    0     00:02:10 4 MB    file:/bin/audiod
54    5     5     0     0     1     0     0     1     UB    0     00:00:02 2 MB    file:/bin/getty
55    5     54    0     0     1     0     0     1     UB    0     00:00:00 2 MB    file:/bin/login
56    56    55    1000  1000  1     1000  1000  1     UB    0     00:00:02 4 MB    file:/bin/ion
122   122   56    1000  1000  1     1000  1000  1     UR+   0     00:00:00 8 MB    file:/bin/cat
user:/usr/bin#
user:/usr/bin# smolnetd::scheme: poll error: unaddressable destination
user:/usr/bin#
user:/usr/bin#

user:/usr/bin#


thread 'main' panicked at 'wait() should either return Ok or panic', library/std/src/sys/unix/process/process_unix.rs:117:21
Invalid opcode fault
RFLAG: 0000000000000206
CS:    0000000000000033
RIP:   000000000061647e
RSP:   00007fffffff8730
SS:    000000000000002b
FSBASE  0000000000005000
GSBASE  0000000000000000
KGSBASE fffffd8000000050
RAX:   0000000000000000
RCX:   00000000006348a3
RDX:   000000000000000f
RDI:   0000000000000002
RSI:   0000000000684bcb
R8:    00007fffffff8640
R9:    0000000000000002
R10:   00007fffffff8488
R11:   0000000000000202
RBX:   0000000000000001
RBP:   00000000008c1130
R12:   0000000000000001
R13:   00000000008bb598
R14:   0000000000000000
R15:   00007fffffff8860
TRACE: FFFFFE80006532C0
  FFFFFE80006532C0: FFFFFF000008B867
    FFFFFF000008B730+0137
    kernel::arch::x86_64::interrupt::exception::invalid_opcode::inner
  FFFFFE8000653350: FFFFFF00000896CD
    FFFFFF00000896A0+002D
    kernel::arch::x86_64::interrupt::exception::invalid_opcode
 00000000008C1130: EMPTY RETURN
kernel:INFO -- SIGNAL 4, CPU 0, PID ContextId(56)
kernel:INFO -- NAME file:/bin/ion
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
abort() called

########## Redox OS ##########
# Login with the following:  #
# `user`                     #
# `root`:`password`          #
##############################

redox login:

redox login:

redox login:

redox login: smolnetd::scheme: poll error: unaddressable destination
smolnetd::scheme: poll error: unaddressable destination
redox login:

redox login:

redox login: smolnetd::scheme: poll error: unaddressable destination
smolnetd::scheme: poll error: unaddressable destination
smolnetd::scheme: poll error: unaddressable destination
redox login:

redox login: user
Welcome to Redox OS!

For details, see the test.log

expect: output

result

kernel: redox git rev-parse HEAD == e5c3be86cd2febcf4292ad4170943d4d3330f278

version:

user:~# ion --version
ion 1.0.0-alpha (x86_64-unknown-redox)
rev 3bb8966fc99ba223033e1e02b0a6d50fc25cbef4

interaction:

    1. Press enter frequently
    1. Shell crashes.

context: run redox without GUI make qemu kvm=no vga=no

Edited by Ivan Tan