pussuw commented on code in PR #10857:
URL: https://github.com/apache/nuttx/pull/10857#discussion_r1346195434
##########
sched/task/task_exithook.c:
##########
@@ -465,7 +465,15 @@ void nxtask_exithook(FAR struct tcb_s *tcb, int status)
* status (no zombies here!)
*/
- group_leave(tcb);
+ if (group_leave(tcb) == 0)
+ {
+ /* Group is dead now, PANIC() if this is the init task */
+
+ if (nxsched_is_inittask(tcb))
Review Comment:
```
ville@workpc:~/wpc_toolchain/workspace/nuttx-bare/nuttx$ qemu-system-riscv64
-semihosting -M virt,aclint=on -cpu rv64 -smp 8 -bios none -kernel nuttx
-nographic
ABC
NuttShell (NSH) NuttX-10.4.0
nsh> exit
[ 1.640000] riscv_exception: EXCEPTION: Load access fault. MCAUSE:
0000000000000005, EPC: 000000008000531a, MTVAL: 0000000000000008
[ 1.640000] riscv_exception: PANIC!!! Exception = 0000000000000005
[ 1.640000] _assert: Current Version: NuttX 10.4.0 3b71bad8c7 Oct 4
2023 19:56:45 risc-v
[ 1.640000] _assert: Assertion failed panic: at file:
common/riscv_exception.c:85 task: /system/bin/init 0xc000004a
[ 1.640000] up_dump_register: EPC: 000000008000531a
[ 1.640000] up_dump_register: A0: 0000000080209650 A1: 0000000080209460
A2: 00000000802095c0 A3: 0000000000000000
[ 1.640000] up_dump_register: A4: 0000000000007fff A5: 0000000000000000
A6: 0000000080206c38 A7: fffffffffffffff8
[ 1.640000] up_dump_register: T0: 0000000080006c34 T1: 0000000000000007
T2: 00000000000001ff T3: 0000000080209838
[ 1.640000] up_dump_register: T4: 0000000080209830 T5: 0000000000000009
T6: 000000000000002a
[ 1.640000] up_dump_register: S0: 0000000080209650 S1: 0000000080209470
S2: 00000000802094a0 S3: 0000000000000000
[ 1.640000] up_dump_register: S4: 0000000000000000 S5: 0000000000000000
S6: ffffffffffffffff S7: 000000000000000b
[ 1.640000] up_dump_register: S8: 000000000000000a S9: 0000000000000000
S10: 0000000000000000 S11: 0000000000000000
[ 1.640000] up_dump_register: SP: 00000000802091f0 FP: 0000000080209650
TP: 0000000000000000 RA: 0000000080005130
[ 1.640000] dump_stack: Kernel Stack:
[ 1.640000] dump_stack: base: 0x80208860
[ 1.640000] dump_stack: size: 00003072
[ 1.640000] dump_stack: sp: 0x802091f0
[ 1.640000] stack_dump: 0x802091e0: 80209650 00000000 800050c0 00000000
00000001 00000000 80209650 00000000
[ 1.640000] stack_dump: 0x80209200: 00000000 00000000 8000450a 00000000
c02002e8 00000000 c0200858 00000000
[ 1.640000] stack_dump: 0x80209220: 00000000 00000000 80006c40 00000000
c0202b40 00000000 800013a4 00000000
[ 1.640000] stack_dump: 0x80209240: c0000d16 00000000 8000019a 00000000
8000138c 00000000 c0000d16 00000000
[ 1.640000] stack_dump: 0x80209260: 80209250 00000000 00000000 00000000
00000000 00000000 800072da 00000000
[ 1.640000] stack_dump: 0x80209280: c00011a6 00000000 000001ff 00000000
00000000 00000000 c0200858 00000000
[ 1.640000] stack_dump: 0x802092a0: 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000
[ 1.640000] stack_dump: 0x802092c0: 00007fff 00000000 00000001 00000000
c0200118 00000000 fffffff8 ffffffff
[ 1.640000] stack_dump: 0x802092e0: 00000001 00000000 00000000 00000000
00000000 00000000 00000000 00000000
[ 1.640000] stack_dump: 0x80209300: ffffffff ffffffff 0000000b 00000000
0000000a 00000000 00000000 00000000
[ 1.640000] stack_dump: 0x80209320: 00000000 00000000 00000000 00000000
802090e0 00000000 802090d8 00000000
[ 1.640000] stack_dump: 0x80209340: 00000009 00000000 0000002a 00000000
00042120 00000000 00000000 00000000
[ 1.640000] stack_dump: 0x80209360: 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000
[ 1.640000] stack_dump: 0x80209380: 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000
[ 1.640000] stack_dump: 0x802093a0: 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000
[ 1.640000] stack_dump: 0x802093c0: 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000
[ 1.640000] stack_dump: 0x802093e0: 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000
[ 1.640000] stack_dump: 0x80209400: 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000
[ 1.640000] stack_dump: 0x80209420: 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000
[ 1.640000] stack_dump: 0x80209440: 00000000 00000000 800044c8 00000000
00000000 00000000 00000000 00000000
[ 1.640000] dump_tasks: PID GROUP PRI POLICY TYPE NPX STATE
EVENT SIGMASK STACKBASE STACKSIZE USED FILLED COMMAND
[ 1.640000] dump_tasks: ---- --- --- -------- ------- --- -------
---------- ---------------- 0x802002b0 2048 2040 99.6%! irq
[ 1.640000] dump_task: 0 0 0 FIFO Kthread N-- Ready
0000000000000000 0x80206010 3056 1520 49.7% Idle_Task
[ 1.640000] dump_task: 1 1 100 RR Kthread --- Waiting
Semaphore 0000000000000000 0x8020a050 1968 704 35.7% lpwork
0x802015f0 0x80201618
[ 1.640000] dump_task: 2 -1 100 RR Task N-- Running
0000000000000000 0xc0202040 3008 768 25.5%
/system/bin/init
```
Just tried it, and the system crashes at once. Perhaps there is some bug
that needs to be fixed. IRQ stack usage seems a bit high but that can be due to
the assert dump.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]