linguini1 opened a new issue, #19253:
URL: https://github.com/apache/nuttx/issues/19253
### Description / Steps to reproduce the issue
Discovered while running tests against v13.0.0 RC0:
raspberrypi-pico, raspberrypi-pico-w and seeed-xiao-rp2040 all fail OSTest:
Here raspberrypi-pico:usbnsh failing by hanging:
```console
NuttShell (NSH) NuttX-13.0.0
nsh> help
help usage: help [-v] [<cmd>]
. cp exit mkrd rmdir set
truncate
? dirname false mv kill uname
alias date fdinfo pidof pkill umount
basename dmesg help ps usleep uptime
break echo hexdump pwd source watch
cat env ls reboot test xd
cd exec mkdir rm time wait
Builtin Apps:
dd getprime hello nsh ostest sh
nsh> ostest
stdio_test: write fd=1
stdio_test: Standard I/O Check: printf
rite fdstdio_test: Standard I/O Check: fprintf to stderr
ostest_main: putenv(Variable1=BadValue3)
ostest_main: setenv(Variable1, GoodValue1, TRUE)
ostest_main: setenv(Variable2, BadValue1, FALSE)
ostest_main: setenv(Variable2, GoodValue2, TRUE)
ostest_main: setenv(Variable3, GoodValue3, FALSE)
ostest_main: setenv(Variable3, BadValue2, FALSE)
show_variable: Variable=Variable1 has value=GoodValue1
show_variable: Variable=Variable2 has value=GoodValue2
show_variable: Variable=Variable3 has value=GoodValue3
ostest_main: Started user_main at PID=4
user_main: Begin argument test
user_main: Started with argc=5
user_main: argv[0]="ostest"
user_main: argv[1]="Arg1"
user_main: argv[2]="Arg2"
user_main: argv[3]="Arg3"
user_main: argv[4]="Arg4"
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 3f960 3f960
ordblks 1 1
mxordblk 3a988 3a988
uordblks 4fd8 4fd8
fordblks 3a988 3a988
```
Here is raspberrypi-pico-w:usbnsh failing (gets stuck at waitpid):
```console
NuttShell (NSH) NuttX-13.0.0
nsh>
nsh> ls
/:
dev/
proc/
nsh> help
help usage: help [-v] [<cmd>]
. cp exit mkrd rmdir truncate
kill uname
alias date fdinfo pidof pkill umount
unalias df free printf sleep unset
basename dmesg help ps usleep uptime
break echo hexdump pwd source watch
cat env ls reboot test xd
cd exec mkdir rm time wait
Builtin Apps:
dd getprime hello nsh ostest sh
nsh> ostest
stdio_test: write fd=1
stdio_test: Standard I/O Check: printf
fd=2
stdio_test: Standard I/O Check: fprintf to stderr
ostest_main: putenv(Variable1=BadValue3)
ostest_main: setenv(Variable1, GoodValue1, TRUE)
ostest_main: setenv(Variable2, BadValue1, FALSE)
ostest_main: setenv(Variable2, GoodValue2, TRUE)
ostest_main: setenv(Variable3, GoodValue3, FALSE)
ostest_main: setenv(Variable3, BadValue2, FALSE)
show_variable: Variable=Variable1 has value=GoodValue1
show_variable: Variable=Variable2 has value=GoodValue2
show_variable: Variable=Variable3 has value=GoodValue3
ostest_main: Started user_main at PID=4
user_main: Begin argument test
user_main: Started with argc=5
user_main: argv[0]="ostest"
user_main: argv[1]="Arg1"
user_main: argv[2]="Arg2"
user_main: argv[3]="Arg3"
user_main: argv[4]="Arg4"
age:
VARIABLE BEFORE AFTER
======== ======== ========
arena 3f960 3f960
ordblks 1 1
mxordblk 3a988 3a988
uordblks 4fd8 4fd8
fordblks 3a988 3a988
user_main: getopt() test
getopt(): Simple test
getopt(): Invalid argument
getopt(): Missing optional argument
getopt_long(): Simple test
getopt_long(): No short options
getopt_long(): Argument for --option=argument
getopt_long(): Invalid long option
getopt_long(): Mixed long and short options
getopt_long(): Invalid short option
getopt_long(): Missing optional arguments
getopt_long_only(): Mixed long and short options
getopt_long_only(): Single hyphen long options
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 3f960 3f960
ordblks 1 1
mxordblk 3a988 3a988
uordblks 4fd8 4fd8
fordblks 3a988 3a988
user_main: libc tests
test memory usage:
LE BEFORE======== ======== ========
arena 3f960 3f960
ordblks 1 1
mxordblk 3a988 3a988
uordblks 4fd8 4fd8
fordblks 3a988 3a988
show_variable: Variable=Variable1 has value=GoodValue1
show_variable: Variable=Variable2 has value=GoodValue2
show_variable: Variable=Variable3 has value=GoodValue3
show_variable: Variable=Variable1 has no value
show_variable: Variable=Variable2 has value=GoodValue2
show_variable: Variable=Variable3 has value=GoodValue3
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 3f960 3f960
ordblks 1 2
mxordblk 3a988 3a988
uordblks 4fd8 4fb8
fordblks 3a988 3a9a8
show_variable: Variable=Variable1 has no value
show_variable: Variable=Variable2 has no value
show_variable: Variable=Variable3 has no value
End of test memory usage:
VARIABLE BEFORE AFTER
arena 3f960 3f960
ordblks 2 2
mxordblk 3a988 3a988
uordblks 4fb8 4f40
fordblks 3a9a8 3aa20
user_main: setvbuf test
setvbuf_test: Test NO buffering
setvbuf_test: Using NO buffering
setvbuf_test: Test default FULL buffering
setvbuf_test: Using default FULL buffering
setvbuf_test: Test FULL buffering, buffer size 64
setvbuf_test: Using FULL buffering, buffer size 64
setvbuf_test: Test FULL buffering, pre-allocated buffer
setvbuf_test: Using FULL buffering, pre-allocated buffer
setvbuf_test: Test LINE buffering, buffer size 64
setvbuf_test: Using LINE buffering, buffer size 64
setvbuf_test: Test FULL buffering, pre-allocated buffer
setvbuf_test: Using FULL buffering, pre-allocated buffer
End of test memory usage:
VARIABLE BEFORE AFTER
====
arena 3f960 3f960
ordblks 2 2
mxordblk 3a988 3a988
uordblks 4f40 4f40
fordblks 3aa20 3aa20
user_main: /dev/null test
dev_null: Read 0 bytes from /dev/null
dev_null: Wrote 1024 bytes to /dev/null
End of test memory usage:
VARIABLE BEFORE AFTER
== ======== ========
arena 3f960 3f960
ordblks 2 2
mxordblk 3a988 3a988
uordblks 4f40 4f40
fordblks 3aa20 3aa20
user_main: task_restart test
Test task_restart()
restart_main: setenv(VarName, VarValue, TRUE)
restart_main: Started restart_main at PID=5
restart_main: Started with argc=4
restart_main: argv[0]="ostest"
restart_main: argv[1]="This is argument 1"
restart_main: argv[2]="Argument 2 here"
restart_main: argv[3]="Lastly, the 3rd argument"
restart_main: Variable=VarName has value=VarValue
restart_main: I am still here
restart_main: I am still here
restart_main: Started restart_main at PID=5
restart_main: Started with argc=4
restart_main: argv[0]="ostest"
restart_main: argv[1]="This is argument 1"
restart_main: argv[2]="Argument 2 here"
restart_main: argv[3]="Lastly, the 3rd argument"
restart_main: Variable=VarName has value=VarValue
restart_main: Started with argc=4
restart_main: argv[0]="ostest"
restart_main: argv[1]="This is argument 1"
restart_main: argv[2]="Argument 2 here"
restart_main: argv[3]="Lastly, the 3rd argument"
restart_main: Variable=VarName has value=VarValue
restart_main: Exiting
End of test memory usage:
VARIABLE BEFORE AFTER
=
arena 3f960 3f960
ordblks 2 2
mxordblk 3a988 3a988
uordblks 4f40 4f78
fordblks 3aa20 3a9e8
ser_main: waitpid test
```
seeed-xiao-rp2040:usbnsh also failing due to hang:
```console
NuttShell (NSH) NuttX-13.0.0
nsh> help
help usage: help [-v] [<cmd>]
. cp exit mkrd rmdir set
truncate
? dirname false mv kill uname
unalias df free printf sleep ps
usleep uptime
break echo hexdump pwd source watch
cat env ls reboot test xd
cd exec mkdir wait
Builtin Apps:
dd getprime hello nsh ostest
nsh> ostest
stdio_test: write fd=1
stdio_test: Standard I/O Check: printf
stdio_test: write fd=2
stdio_test: Standard I/O Check: fprintf to stderr
ostest_main: putenv(Variable1=BadValue3)
ostest_main: setenv(Variable1, GoodValue1, TRUE)
ostest_main: setenv(Variable2, BadValue1, FALSE)
ostest_main: setenv(Variable2, GoodValue2, TRUE)
ostest_main: setenv(Variable3, GoodValue3, FALSE)
ostest_main: setenv(Variable3, BadValue2, FALSE)
show_variable: Variable=Variable1 has value=GoodValue1
show_variable: Variable=Variable2 has value=GoodValue2
show_variable: Variable=Variable3 has value=GoodValue3
ostest_main: Started user_main at PID=4
user_main: Begin argument test
user_main: Started with argc=5
user_main: argv[0]="ostest"
user_main: argv[1]="Arg1"
user_main: argv[2]="Arg2"
user_main: argv[3]="Arg3"
user_main: argv[4]="Arg4"
End of test memory usage:
BEFORE AFTER
======== ======== ========
arena 3f960 3f960
ordblks 1 1
mxordblk 3a988 3a988
uordblks 4fd8 4fd8
fordblks 3a988 3a988
user_main: getopt() test
getopt(): Simple test
getopt(): Invalid argument
getopt(): Missing optional argument
getopt_long(): Simple test
getopt_long(): No short options
getopt_long(): Argument for --option=argument
getopt_long(): Invalid long option
getopt_long(): Mixed long and short options
getopt_long(): Invalid short option
getopt_long(): Missing optional arguments
getopt_long_only(): Mixed long and short options
getopt_long_only(): Single hyphen long options
End of test memory usage:
VARIABLE BEFORE AFTER
=======
arena 3f960 3f960
ordblks 1 1
mxordblk 3a988 3a988
uordblks 4fd8 4fd8
fordblks 3a988 3a988
user_main: libc tests
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 3f960 3f960
ordblks 1 1
mxordblk 3a988 3a988
uordblks 4fd8 4fd8
fordblks 3a988 3a988
show_variable: Variable=Variable1 has value=GoodValue1
show_variable: Variable=Variable2 has value=GoodValue2
show_variable: Variable=Variable3 has value=GoodValue3
show_variable: Variable=Variable1 has no value
show_variable: Variable=Variable2 has value=GoodValue2
show_variable: Variable=Variable3 has value=GoodValue3
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 3f960 3f960
ordblks 1 2
mxordblk 3a988 3a988
uordblks 4fd8 4fb8
fordblks 3a988 3a9a8
show_variable: Variable=Variable1 has no value
show_variable: Variable=Variable2 has no value
show_variable: Variable=Variable3 has no value
End of test memory usage:
EFORE AFTER
======== ======== ========
arena 3f960 3f960
or 2
mxordblk 3a988 3a988
uordblks 4fb8 4f40
fordblks 3a9a8 3aa20
user_main: setvbuf test
setvbuf_test: Test NO buffering
setvbuf_test: Using NO buffering
setvbuf_test: Test default FULL buffering
setvbuf_test: Using default FULL buffering
setvbuf_test: Test FULL buffering, buffer size 64
setvbuf_test: Using FULL buffering, buffer size 64
setvbuf_test: Test FULL buffering, pre-allocated buffer
setvbuf_test: Using FULL buffering, pre-allocated buffer
setvbuf_test: Test LINE buffering, buffer size 64
setvbuf_test: Using LINE buffering, buffer size 64
setvbuf_test: Test FULL buffering, pre-allocated buffer
setvbuf_test: Using FULL buffering, pre-allocated buffer
End of test memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 3f960 3f960
ordblks 2 2
mxordblk 3a988 3a988
uordblks 4f40 4f40
fordblks 3aa20 3aa20
user_main: /dev/null test
dev_null: Read 0 bytes from /dev/null
dev_null: Wrote 1024 bytes to /dev/null
End of test memory usage:
VARIABLE ER
======== ======== ========
arena 3f960 3f960
ordblks 2 2
mxordblk 3a988 3a988
uordblks 4f40 4f40
fordblks 3aa20 3aa20
```
### On which OS does this issue occur?
[OS: Linux]
### What is the version of your OS?
Linux 7.0.13-arch1-1 #1 SMP PREEMPT_DYNAMIC Tue, 23 Jun 2026 11:14:21 +0000
x86_64 GNU/Linux
### NuttX Version
nuttx-13.0.0-RC0
### Issue Architecture
[Arch: arm]
### Issue Area
[Area: OS Components], [Area: Applications]
### Host information
_No response_
### Verification
- [x] I have verified before submitting the report.
--
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]