Logging thread stack overflow

Hello,

I am having an issue with Zephyr, it constantly reboots the system because of stack overflow.

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
00> [00:05:36.447,265] <err> os: r0/a1: 0x00000002 r1/a2: 0x20004d60 r2/a3: 0xf0f0f0f0
00> [00:05:36.447,296] <err> os: r3/a4: 0x2000e700 r12/ip: 0x2000a5e4 r14/lr: 0x00058045[0m
00> [00:05:36.447,326] <err> os: xpsr: 0x41070000
00> [00:05:36.447,326] <err> os: r4/v1: 0x00000000 r5/v2: 0xffffffff r6/v3: 0xffffffff
00> [00:05:36.447,357] <err> os: r7/v4: 0x00000000 r8/v5: 0x00000001 r9/v6: 0x00000000
00> [00:05:36.447,357] <err> os: r10/v7: 0x00000001 r11/v8: 0x20001a00 psp: 0x20026d28
00> [00:05:36.447,357] <err> os: EXC_RETURN: 0x0
00> [00:05:36.447,387] <err> os: Faulting instruction address (r15/pc): 0x00046704
00> [00:05:36.447,418] <err> os: >>> ZEPHYR FATAL ERROR 2: Stack overflow on CPU 0
00> [00:05:36.447,418] <err> os: Current thread: 0x20004d60 (logging)
00> [00:05:36.780,670] <err> fatal_error: Resetting system
....
[03:04:16.903,503] <err> os: r0/a1: 0x00000002 r1/a2: 0xe000ed04 r2/a3: 0xf0f0f0f0
00> [03:04:16.903,533] <err> os: r3/a4: 0x2000e700 r12/ip: 0x00000000 r14/lr: 0x0003235d
00> [03:04:16.903,533] <err> os: xpsr: 0x410f0021
00> [03:04:16.903,564] <err> os: r4/v1: 0x20003890 r5/v2: 0x0005a3a3 r6/v3: 0x00000007
00> [03:04:16.903,564] <err> os: r7/v4: 0x000000c6 r8/v5: 0x20003888 r9/v6: 0x00030f79
00> [03:04:16.903,594] <err> os: r10/v7: 0x00058b54 r11/v8: 0x00000000 psp: 0x20026c10
00> [03:04:16.903,594] <err> os: EXC_RETURN: 0x0
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Sometimes in these faults, it says "Fault during interrupt handling".

The code line for the faulting address is:

Fullscreen
1
2
arm-none-eabi-addr2line.exe -e build\zephyr\zephyr.elf 0x00046704
ncs/v2.1.0/zephyr/kernel/thread.c:380
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

It is actually in reference to the SENTINEL mechanism:

I am using the following CONFIG options for logging, and even with absurd values of stack it still fails:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# -- Lora
# -- BLE
# -- MCUBoot
...
# -- Logs
CONFIG_UART_CONSOLE=n
CONFIG_USE_SEGGER_RTT=y
CONFIG_RTT_CONSOLE=y
CONFIG_LOG_BACKEND_RTT=y
CONFIG_LOG=y
CONFIG_LOG_PROCESS_THREAD=y
CONFIG_LOG_DEFAULT_LEVEL=4
CONFIG_LOG_BUFFER_SIZE=8192
CONFIG_PRINTK=n
CONFIG_LOG_PRINTK=n
CONFIG_NEWLIB_LIBC=y
CONFIG_CBPRINTF_FULL_INTEGRAL=y
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Is the problem really the logging thread? Any suggestions?