Crash maybe related to `nif_erlang_dist_ctrl_put_data`
Maintainer thường phản hồi trong vòng 2 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
- 35/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- c, erlang
- Lĩnh vực
- backend, operating-systems
Hướng nghiên cứu
Start with src/libAtomVM/dist_nifs.c around nif_erlang_dist_ctrl_put_data and follow the backtrace into src/libAtomVM/nifs.c and src/libAtomVM/scheduler.c, especially scheduler_make_ready. Use the linked core dump and the reported test_estdlib.avm crash to investigate the failing lock path. Done when the segmentation fault is reproducibly fixed and the distribution tests pass.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Following crash has been observed here first time: https://github.com/atomvm/AtomVM/actions/runs/18310690206/job/52138386516
coredump is available here:
core-ubuntu-22.04-gcc-11-27-18310690206-1.zip
backtrace:
#0 0x0000563307443688 in smp_spinlock_lock (lock=<optimized out>) at /home/runner/work/AtomVM/AtomVM/src/libAtomVM/smp.h:219
#1 scheduler_make_ready (ctx=ctx@entry=0x7f737802fb30) at /home/runner/work/AtomVM/AtomVM/src/libAtomVM/scheduler.c:352
#2 0x0000563307443fc9 in scheduler_init_ready (c=c@entry=0x7f737802fb30)
at /home/runner/work/AtomVM/AtomVM/src/libAtomVM/scheduler.c:410
#3 0x0000563307435573 in do_spawn (ctx=ctx@entry=0x7f7374025740, new_ctx=0x7f737802fb30, arity=<optimized out>,
n_freeze=<optimized out>, opts_term=<optimized out>) at /home/runner/work/AtomVM/AtomVM/src/libAtomVM/nifs.c:1317
#4 0x0000563307435c93 in nif_erlang_spawn_opt (ctx=ctx@entry=0x7f7374025740, argc=argc@entry=4, argv=argv@entry=0x7f737f9fecc0)
at /home/runner/work/AtomVM/AtomVM/src/libAtomVM/nifs.c:1424
#5 0x0000563307454c0c in nif_erlang_dist_ctrl_put_data (argv=0x7f7374025770, argc=<optimized out>, ctx=0x7f7374025740)
at /home/runner/work/AtomVM/AtomVM/src/libAtomVM/dist_nifs.c:611
#6 nif_erlang_dist_ctrl_put_data (ctx=0x7f7374025740, argc=<optimized out>, argv=0x7f7374025770)
at /home/runner/work/AtomVM/AtomVM/src/libAtomVM/dist_nifs.c:448
#7 0x00005633073a6a17 in scheduler_entry_point (glb=0x56332ee782a0)
at /home/runner/work/AtomVM/AtomVM/src/libAtomVM/opcodesswitch.h:2027
#8 0x00005633074615d6 in scheduler_thread_entry_point (arg=<optimized out>)
at /home/runner/work/AtomVM/AtomVM/src/platforms/generic_unix/lib/smp.c:75
#9 0x00007f737fa94ac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
Last observed messages from test_estdlib.avm:
GEN_TCP-TEST> ServerBackendOption=[{inet_backend,inet}] ClientBackendOption=[{inet_backend,inet}] ListenMode=list ConnectMode=binary ListenActive=false ConnectActive=false
GEN_TCP-TEST> ServerBackendOption=[{inet_backend,inet}] ClientBackendOption=[{inet_backend,inet}] ListenMode=list ConnectMode=binary ListenActive=false ConnectActive=true
GEN_TCP-TEST> ServerBackendOption=[{inet_backend,inet}] ClientBackendOption=[{inet_backend,inet}] ListenMode=list ConnectMode=binary ListenActive=true ConnectActive=false
GEN_TCP-TEST> ServerBackendOption=[{inet_backend,inet}] ClientBackendOption=[{inet_backend,inet}] ListenMode=list ConnectMode=binary ListenActive=true ConnectActive=true
GEN_TCP-TEST> ServerBackendOption=[{inet_backend,inet}] ClientBackendOption=[{inet_backend,inet}] ListenMode=list ConnectMode=list ListenActive=false ConnectActive=false
GEN_TCP-TEST> ServerBackendOption=[{inet_backend,inet}] ClientBackendOption=[{inet_backend,inet}] ListenMode=list ConnectMode=list ListenActive=false ConnectActive=true
GEN_TCP-TEST> ServerBackendOption=[{inet_backend,inet}] ClientBackendOption=[{inet_backend,inet}] ListenMode=list ConnectMode=list ListenActive=true ConnectActive=false
GEN_TCP-TEST> ServerBackendOption=[{inet_backend,inet}] ClientBackendOption=[{inet_backend,inet}] ListenMode=list ConnectMode=list ListenActive=true ConnectActive=true
CRASH
======
pid: <0.1931.0>
Stacktrace:
[{socket_dist_controller,recv_data_loop,1,[{file,"/home/runner/work/AtomVM/AtomVM/libs/estdlib/src/socket_dist_controller.erl"},{line,173}]},{socket_dist_controller,handle_info,2,[{file,"/home/runner/work/AtomVM/AtomVM/libs/estdlib/src/socket_dist_controller.erl"},{line,161}]},{gen_server,loop,3,[{file,"/home/runner/work/AtomVM/AtomVM/libs/estdlib/src/gen_server.erl"},{line,551}]}]
cp: #CP<module: 70, label: 51, offset: 27>
x[0]: error
x[1]: {case_clause,{error,closed}}
x[2]: {3,3,138,2,[{4,3156},{70,1118},{70,1554}],error}
Stack
-----
[]
{state,{<<"">>,#Ref<0.0.5879>},<<"">>,#Ref<0.0.5904>,<<"">>,3,1}
#CP<module: 70, label: 44, offset: 69>
#CP<module: 4, label: 112, offset: 21>
[]
[]
[]
{state,{<<"">>,#Ref<0.0.5879>},<<"">>,#Ref<0.0.5904>,<<"">>,3,1}
[]
{state,undefined,socket_dist_controller,{state,{<<"">>,#Ref<0.0.5879>},<<"">>,#Ref<0.0.5904>,<<"">>,3,1}}
<0.1930.0>
#CP<module: 4, label: 137, offset: 0>
Mailbox
-------
Monitors
--------
link to <0.1932.0>
monitored by resource 0x7f73700072f8 ref=5895
monitored by resource 0x7f73780042b8 ref=5899
**End Of Crash Report**
++dist_util: shutting down connection dist_util:529, data={otp@runnervmafkv5,invalid_challenge}, reason=shutdown
CRASH
======
pid: <0.1962.0>
Stacktrace:
[{erpc,execute_call,4,[{file,"/home/runner/work/AtomVM/AtomVM/libs/estdlib/src/erpc.erl"},{line,59}]}]
cp: #CP<module: 72, label: 2, offset: 27>
x[0]: exit
x[1]: {#Ref<1666.3375636846.2655256579.102929>,return,"ATOM"}
x[2]: {1,1,57,1,[{72,125}],exit}
Stack
-----
[]
#Ref<1666.3375636846.2655256579.102929>
[]
#CP<module: 72, label: 12, offset: 0>
Mailbox
-------
Monitors
--------
monitored by resource 0x56332ee9b468 ref=5984
**End Of Crash Report**
CRASH
======
pid: <0.1959.0>
Stacktrace:
[{socket_dist_controller,recv_data_loop,1,[{file,"/home/runner/work/AtomVM/AtomVM/libs/estdlib/src/socket_dist_controller.erl"},{line,173}]},{socket_dist_controller,handle_info,2,[{file,"/home/runner/work/AtomVM/AtomVM/libs/estdlib/src/socket_dist_controller.erl"},{line,161}]},{gen_server,loop,3,[{file,"/home/runner/work/AtomVM/AtomVM/libs/estdlib/src/gen_server.erl"},{line,551}]}]
cp: #CP<module: 70, label: 51, offset: 27>
x[0]: error
x[1]: {case_clause,{error,closed}}
x[2]: {3,3,138,2,[{4,3156},{70,1118},{70,1554}],error}
Stack
-----
[]
{state,{<<"">>,#Ref<0.0.5962>},<<"">>,#Ref<0.0.5985>,<<"">>,1,2}
#CP<module: 70, label: 44, offset: 69>
#CP<module: 4, label: 112, offset: 21>
[]
[]
[]
{state,{<<"">>,#Ref<0.0.5962>},<<"">>,#Ref<0.0.5985>,<<"">>,1,2}
[]
{state,undefined,socket_dist_controller,{state,{<<"">>,#Ref<0.0.5962>},<<"">>,#Ref<0.0.5985>,<<"">>,1,2}}
<0.1958.0>
#CP<module: 4, label: 137, offset: 0>
Mailbox
-------
Monitors
--------
link to <0.1960.0>
monitored by resource 0x56332ee9b468 ref=5978
monitored by resource 0x7f737802eb18 ref=5982
**End Of Crash Report**
CRASH
======
pid: <0.1977.0>
Stacktrace:
[{erpc,execute_call,4,[{file,"/home/runner/work/AtomVM/AtomVM/libs/estdlib/src/erpc.erl"},{line,59}]}]
cp: #CP<module: 72, label: 2, offset: 27>
x[0]: exit
x[1]: {#Ref<1666.456103427.2923954179.64219>,return,"ATOM"}
x[2]: {1,1,57,1,[{72,125}],exit}
Stack
-----
#Ref<1666.456103427.2923954179.64219>
[]
#CP<module: 72, label: 12, offset: 0>
Mailbox
-------
Monitors
--------
monitored by resource 0x7f7370029548 ref=6030
**End Of Crash Report**
/home/runner/work/_temp/c1c1be6a-d0ae-48dc-b96f-91741858de62.sh: line 3: 17204 Segmentation fault (core dumped) ./src/AtomVM ./tests/libs/estdlib/test_estdlib.avm
Error: Process completed with exit code 139.
It has been observed also here:
https://github.com/atomvm/AtomVM/actions/runs/18310690206/job/52138386539
- Ngôn ngữ chính
- Erlang
- Star
- 2.3k
- Fork
- 171
- Merge trung bình
- 5 ngày 11 giờ
- Pull request đã merge (30 ngày)
- 19
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 atomvm/AtomVM
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 77/100
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 67/100
atomvm/AtomVM#2435 · 1 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
atomvm/AtomVM#2429 · 1 reaction ·
Maintainer thường phản hồi trong vòng 2 ngày
Tất cả issue của atomvm/AtomVM
Issue tương tự
-
module/data.yaml Type/Bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 73/100
ballerina-platform/ballerina-library#9667 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
security
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 64/100
IBM/ibmi-mcp-server#256 ·
Maintainer thường phản hồi trong vòng 7 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
zilliztech/milvus-backup#1386 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Pipelined flush no longer observes kill signals after #2042: flush backoffer is built with nil varsĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/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 76/100
zilliztech/memsearch#853 ·
Maintainer thường phản hồi trong vòng 1 ngày