[BUG] RP2040 issues running OSTest
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 45/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Ít trao đổi
- Công nghệ
- c
- Lĩnh vực
- embedded-iot, operating-systems, testing-qa
Hướng nghiên cứu
Bắt đầu bằng cách tái hiện OSTest với các cấu hình usbnsh trên raspberrypi-pico, raspberrypi-pico-w và seeed-xiao-rp2040, tập trung vào các hiện tượng treo đã được báo cáo xung quanh waitpid và bài kiểm thử task_restart ngay trước đó. Payload không nêu tệp mã nguồn hoặc tệp kiểm thử riêng; được xem là hoàn tất khi OSTest hoàn thành mà không bị treo trên các bo mạch bị ảnh hưởng.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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:
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):
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:
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
- I have verified before submitting the report.
- Ngôn ngữ chính
- C
- Star
- 4.1k
- Fork
- 1.8k
- Merge trung bình
- 1 ngày 3 giờ
- Pull request đã merge (30 ngày)
- 833
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của apache/nuttx
-
Please rerun `pre-commit run -a`Đang mởArch: all Arch: arm Area: Build system OS: Linux Type: Bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
apache/nuttx#19435 · 9 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Arch: all OS: Linux Type: Bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
apache/nuttx#16249 · 7 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Arch: all Area: Networking OS: Linux
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Type: Enhancement
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 22/100
apache/nuttx#21581 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Issue tương tự
-
Status: Opened
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 64/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
FriendsofECCE/ECCE#1018 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
immortalwrt/immortalwrt#2522 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
-
severity: low
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 64/100
luainkernel/lunatik#2530 ·
Maintainer thường phản hồi trong vòng 1 ngày