Open coke opened 4 years ago
Platform? Rakudo version? Do you have the native dependency installed?
with version b28fa9ebea6595c2c3cb1a3df3419f06447add00,
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.15.3
BuildVersion: 19D76
$ sudo port installed | grep ssl
lynx @2.8.9rel.1_1+ssl (active)
openssl @1.1.1d_0
openssl @1.1.1g_0 (active)
$ raku --version
This is Rakudo version 2020.05.1-232-g519a5726b built on MoarVM version 2020.05
implementing Raku 6.d.
If you clone this repo and run one test at the command line, what is the output?
Crud. I attempted to upgrade the macport openssl installation (doesn't report a change in installed version) but now instead of simply saying "no subtests run", I am getting an abort trap
$ PERL6LIB=lib perl6 t/bad-incoming.t
Abort trap: 6
Updated macports, openssl after a long hiatus on this issue, improved, now getting a single explicit segfault:
$ raku --version
Welcome to Rakudo™ v2022.06.
Implementing the Raku® Programming Language v6.d.
Built on MoarVM version 2022.06.
$ sw_vers
ProductName: macOS
ProductVersion: 11.6.1
BuildVersion: 20G224
$ git reflog
111c864 (HEAD -> master, tag: release-0.7.12, origin/master, origin/HEAD) HEAD@{0}: clone: from github.com:jnthn/p6-io-socket-async-ssl.git
$ zef test --verbose .
===> Testing: IO::Socket::Async::SSL:ver<0.7.12>:auth<zef:jnthn>
[IO::Socket::Async::SSL] t/bad-incoming.t ... ok
[IO::Socket::Async::SSL] t/ciphers.t ........ ok
[IO::Socket::Async::SSL] t/client-server.t .. ok
[IO::Socket::Async::SSL] t/dh-ciphers.t .....
[IO::Socket::Async::SSL] No subtests run
[IO::Socket::Async::SSL] t/ecdh-ciphers.t ... ok
[IO::Socket::Async::SSL] t/encoding.t ....... ok
[IO::Socket::Async::SSL] t/thread-stress.t .. ok
[IO::Socket::Async::SSL] t/upgrade.t ........ ok
[IO::Socket::Async::SSL] Test Summary Report
[IO::Socket::Async::SSL] -------------------
[IO::Socket::Async::SSL] t/dh-ciphers.t (Wstat: 11 Tests: 0 Failed: 0)
[IO::Socket::Async::SSL] Non-zero wait status: 11
[IO::Socket::Async::SSL] Parse errors: No plan found in TAP output
[IO::Socket::Async::SSL] Files=8, Tests=35, 76 wallclock secs ( 0.13 usr 0.07 sys + 74.00 cusr 8.04 csys = 82.24 CPU)
[IO::Socket::Async::SSL] Result: FAIL
===> Testing [FAIL]: IO::Socket::Async::SSL:ver<0.7.12>:auth<zef:jnthn>
Aborting due to test failure: IO::Socket::Async::SSL:ver<0.7.12>:auth<zef:jnthn> (use --force-test to override)
$ raku -Ilib t/dh-ciphers.t
Segmentation fault: 11
The segfault is occurring here: https://github.com/jnthn/p6-io-socket-async-ssl/blob/master/t/dh-ciphers.t#L21
Non debug build gives the following with rakudo-lldb-m:
(lldb) run
Process 42966 stopped
* thread #6, stop reason = EXC_BAD_ACCESS (code=1, address=0x108)
frame #0: 0x0000000105a3e350 libcrypto.3.dylib`BN_num_bits + 17
libcrypto.3.dylib`BN_num_bits:
-> 0x105a3e350 <+17>: movslq 0x8(%rdi), %rcx
0x105a3e354 <+21>: leal -0x1(%rcx), %r13d
0x105a3e358 <+25>: testb $0x4, 0x14(%rdi)
0x105a3e35c <+29>: jne 0x105a3e37f ; <+64>
Target 0: (rakudo-m) stopped.
(lldb) bt
* thread #3, stop reason = EXC_BAD_ACCESS (code=1, address=0x108)
* frame #0: 0x0000000105a90350 libcrypto.3.dylib`BN_num_bits + 17
frame #1: 0x0000000105b75236 libcrypto.3.dylib`OSSL_PARAM_BLD_push_BN + 32
frame #2: 0x0000000105ad2804 libcrypto.3.dylib`dh_pkey_export_to + 184
frame #3: 0x0000000105b5d88b libcrypto.3.dylib`evp_pkey_export_to_provider + 412
frame #4: 0x0000000105b61821 libcrypto.3.dylib`EVP_PKEY_generate + 348
frame #5: 0x00000001059c265d libssl.3.dylib`ssl_generate_pkey + 73
frame #6: 0x0000000105a02cec libssl.3.dylib`tls_construct_server_key_exchange + 1568
frame #7: 0x00000001059f4ce8 libssl.3.dylib`state_machine + 934
frame #8: 0x00000001002d9665 libmoar.dylib`dcCall_x64_sysv + 97
frame #9: 0x00000001002d90a7 libmoar.dylib`dc_callvm_call_x64 + 103
frame #10: 0x00000001002d8ee8 libmoar.dylib`dcCallInt + 40
frame #11: 0x0000000100169dec libmoar.dylib`MVM_nativecall_dispatch(tc=<unavailable>, res_type=0x000003736d0b4fc8, site=<unavailable>, args=MVMArgs @ 0x000070000d56ba20) at nativecall_dyncall.c:1113:5 [opt]
frame #12: 0x00000001001d7885 libmoar.dylib`MVM_disp_program_record_end(tc=0x00000373743b8180, record=0x0000037378441b68) at program.c:3199:13 [opt]
frame #13: 0x000000010015b4f9 libmoar.dylib`MVM_callstack_unwind_dispatch_record [inlined] handle_end_of_dispatch_record(tc=0x00000373743b8180) at callstack.c:570:39 [opt]
frame #14: 0x000000010015b4ea libmoar.dylib`MVM_callstack_unwind_dispatch_record(tc=0x00000373743b8180) at callstack.c:872:5 [opt]
frame #15: 0x00000001001d322f libmoar.dylib`run_dispatch(tc=0x00000373743b8180, record=0x0000037378441b68, disp=0x000003736c650138, capture=0x0000037384560580) at program.c:541:9 [opt]
frame #16: 0x00000001001d753f libmoar.dylib`MVM_disp_program_record_end(tc=0x00000373743b8180, record=0x0000037378441b68) at program.c:3101:17 [opt]
frame #17: 0x000000010015b291 libmoar.dylib`MVM_callstack_unwind_frame [inlined] handle_end_of_dispatch_record(tc=0x00000373743b8180) at callstack.c:570:39 [opt]
frame #18: 0x000000010015b286 libmoar.dylib`MVM_callstack_unwind_frame at callstack.c:668:9 [opt]
frame #19: 0x000000010015b27c libmoar.dylib`MVM_callstack_unwind_frame(tc=0x00000373743b8180, exceptional='\0') at callstack.c:840:21 [opt]
frame #20: 0x00000001001579a2 libmoar.dylib`MVM_frame_try_return(tc=0x00000373743b8180) at frame.c:940:16 [opt]
frame #21: 0x0000000100136137 libmoar.dylib`MVM_interp_run(tc=<unavailable>, initial_invoke=<unavailable>, invoke_data=<unavailable>, outer_runloop=0x0000000000000000) at interp.c:573:21 [opt]
frame #22: 0x000000010015ef86 libmoar.dylib`start_thread(data=0x00000373761bd620) at threads.c:101:5 [opt]
frame #23: 0x00007fff203c88fc libsystem_pthread.dylib`_pthread_start + 224
frame #24: 0x00007fff203c4443 libsystem_pthread.dylib`thread_start + 15