nuttx-apps/system
Felipe Moura 34ca2a5ed8 system/uorb: bump listener stack when float print extension is on
uorb_listener's %pB debug printing (orb_info() -> lib_bsprintf()) does
real floating-point-to-string conversion synchronously, in the
listener's own task -- not a lightweight pointer dump. With
CONFIG_LIBC_PRINT_EXTENSION off, %pB just prints a raw pointer and the
default CONFIG_UORB_STACKSIZE (DEFAULT_TASK_STACKSIZE, 2048 on most
configs) is plenty. With it on, decoding a topic's float fields through
this path silently overflows a 2048-byte stack -- confirmed on real
hardware (ESP32-S3, one push every ~10-20ms from two subscribed
topics): uorb_listener hangs completely after printing only a partial
topic name, no panic, no stack dump, nothing -- because
CONFIG_SCHED_STACKGUARD/CONFIG_STACK_COLORATION aren't on by default
either, so there's no guard to catch the overflow before it corrupts
adjacent memory.

Raising the default only when CONFIG_LIBC_PRINT_EXTENSION is set (not
unconditionally, and not keyed off CONFIG_DEBUG_UORB specifically,
since anything else that selects the same libc extension hits the same
path) keeps the common case -- raw pointer output, small stack --
exactly as before, and only pays for the extra stack when the feature
that needs it is actually enabled.

4096 was verified sufficient (tested against 2048, which reproduces
the hang, and 8192, which also works but wastes RAM); reproduced
cleanly across multiple fresh boots.

Note: this default only applies when CONFIG_UORB_STACKSIZE has never
been explicitly recorded in .config. Like any Kconfig int default,
flipping CONFIG_LIBC_PRINT_EXTENSION on in an existing .config that
already has an explicit CONFIG_UORB_STACKSIZE value won't retroactively
raise it; the value has to be re-picked (e.g. via a fresh olddefconfig
after removing the stale line, or manually).

Signed-off-by: Felipe Moura <moura.fmo@gmail.com>
2026-09-22 14:44:19 +08:00
..
adb fs: rename PSEUDOFS_SOFTLINKS to FS_LINKS 2026-08-27 13:31:34 +08:00
adcscope apps/system/adcscope: nxstyle fix Relative files path 2026-08-08 16:56:29 -03:00
argtable3 cmake: Use NUTTX(_DIR/_BINARY_DIR) instead of CMAKE(_SOURCE_DIR/BINARY_DIR) 2026-08-09 10:43:01 -03:00
batterydump
cdcacm include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
cfgdata mtd/nvs: modify config name to MTD_CONFIG_NVS part1 2026-02-02 11:01:19 +08:00
cle include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
composite include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
conntrack
coredump !apps: drop redundant casts on tv_sec/tv_nsec and fix printf formats 2026-05-22 13:38:25 +08:00
cpuload
critmon
cu include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
curl system/curl: add a small curl-like HTTP client command 2026-07-20 10:21:57 +02:00
dd apps: Fix O_ACCMODE bitmask checks after Linux flag alignment 2026-06-30 12:19:58 -04:00
debugpoint
dhcp6c include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
dhcpc
dumpstack
expat system/expat: add reusable XML parser package 2026-08-21 20:09:58 +08:00
fastboot system/fastboot: fix pre-existing nxstyle warnings 2026-09-16 00:09:34 +08:00
fdt apps: add missing module metadata for executable tools 2026-06-22 22:27:07 +08:00
flash_eraseall
flatbuffers system: Fix Kconfig style 2026-08-11 15:38:46 -04:00
gcov gcov: Output mode judgment is implemented in the kernel layer 2025-06-26 23:48:01 +08:00
gdbstub system/gdbstub: Add depends of LIB_GDBSTUB 2025-07-18 22:42:03 +08:00
gprof
grep system/grep: Add grep command with regex support 2026-09-09 10:34:10 +08:00
hex2bin
hexed
hostname
i2c include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
iptables iptables: add file lock to prevent concurrent overwrite 2026-01-15 17:20:03 +08:00
irtest system/irtest: Set irtest command line size to CONFIG_LINE_MAX 2026-04-24 14:58:05 +02:00
kbd system/kbd: inject keys into a uinput keyboard 2026-08-02 18:36:37 +08:00
libffi system/libffi: Add libffi package integration 2026-05-22 21:51:31 +08:00
libuv cmake: Use NUTTX(_DIR/_BINARY_DIR) instead of CMAKE(_SOURCE_DIR/BINARY_DIR) 2026-08-09 10:43:01 -03:00
lm75
lsan testing: add missing header files 2026-01-26 19:32:27 +08:00
lzf system/lzf: Fix missing space in Kconfig help text. 2026-05-28 21:27:01 +02:00
mdio
microros system/microros: Add UDP and serial custom transport backends. 2026-06-02 00:15:25 +08:00
netdb
nsh
ntpc system/ntpc: update ntpc messages 2025-09-05 23:47:36 +02:00
nxcamera apps: Fix codespell warnings. 2026-05-22 13:39:04 +08:00
nxcodec
nxdiag cmake: Use NUTTX(_DIR/_BINARY_DIR) instead of CMAKE(_SOURCE_DIR/BINARY_DIR) 2026-08-09 10:43:01 -03:00
nxinit system/nxinit: add fallback option to resolve preset service conflict 2026-09-16 00:08:45 +08:00
nxlooper include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
nxmbclient modbus: add nxmodbus 2026-04-20 12:45:17 -03:00
nxpkg system/nxstore: add an LVGL app-store front end 2026-08-18 15:23:15 -03:00
nxplayer nxplayer: add tone cmd implementation 2026-08-05 12:35:26 +02:00
nxrecorder system: audio: parse command filenames with PATH_MAX 2026-07-11 12:40:07 -03:00
nxstore system/nxstore: add an LVGL app-store front end 2026-08-18 15:23:15 -03:00
ofloader !apps: Simplify NuttX initialization 2026-05-06 13:27:05 +08:00
ping system/ping: Fix a segmentation fault when using ping 2026-07-09 09:42:30 +08:00
ping6 system/ping: Fix a segmentation fault when using ping 2026-07-09 09:42:30 +08:00
popen apps: Fix O_ACCMODE bitmask checks after Linux flag alignment 2026-06-30 12:19:58 -04:00
psmq
ptpd netutils/ptpd: fix drift divergence and post-jump bootstrap 2026-09-15 09:09:00 -03:00
readline system/readline: add caller-selectable control handling 2026-08-24 22:15:31 +08:00
resmonitor system: resmonitor: check CPU load reads 2026-07-06 16:31:38 +08:00
sched_note
sensorscope system/sensorscope: support for fixe16 data 2026-05-06 08:54:32 +02:00
sensortest system/sensortest: Put a blank line after the declarations. 2026-09-20 09:24:47 -04:00
setlogmask
settings system/settings: Bound storage string handling 2026-05-28 14:35:54 +02:00
smf system: Fix Kconfig style 2026-08-11 15:38:46 -04:00
spi include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
stackmonitor
stty system: Add stty utility for terminal control 2026-08-14 07:51:00 -03:00
sudo system/sudo: add setuid privilege helper 2026-08-17 09:06:13 -03:00
syslogd system/syslogd: Initial implementation 2025-06-17 20:43:58 +08:00
system include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
taskset
tcpdump pkt: Set sll_protocol for raw socket to ETH_P_ALL 2026-01-04 21:41:21 +08:00
tee include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
telnet apps: Fix unchecked strdup()/asprintf() as requested in #1727 2026-05-23 16:30:52 -04:00
telnetd
termcurses include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
toybox system/toybox: Add toybox a tool box similar to busybox 2026-08-15 22:28:49 +02:00
trace apps/system/trace: support binary dump of noteram 2026-01-26 19:32:42 +08:00
ubloxmodem include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
uniqueid
uorb system/uorb: bump listener stack when float print extension is on 2026-09-22 14:44:19 +08:00
usbmsc apps: Fix O_ACCMODE bitmask checks after Linux flag alignment 2026-06-30 12:19:58 -04:00
vi include/debug.h: Use <nuttx/debug.h> in apps 2026-04-11 10:39:27 -03:00
vncviewer system/vncviewer: Drain truncated desktop names 2026-07-09 09:28:13 +08:00
xipfs system/xipfs: Add a command to compact a xipfs volume and report it. 2026-07-28 16:47:49 +08:00
xrcedds system/xrcedds: add eProsima Micro XRCE-DDS 2026-09-15 09:14:39 -03:00
ymodem apps/system/ymodem: Optimized ymodem for burn during bootloader 2026-02-02 11:00:19 +08:00
zbus system/zbus: Port the Zephyr zbus message bus to NuttX 2026-09-21 18:46:31 -03:00
zlib cmake: Use NUTTX(_DIR/_BINARY_DIR) instead of CMAKE(_SOURCE_DIR/BINARY_DIR) 2026-08-09 10:43:01 -03:00
zmodem !apps: replace sclock_t with clock_t and drop redundant time_t/off_t casts 2026-05-11 17:38:32 +08:00
.gitignore
CMakeLists.txt
Make.defs
Makefile