The basic_elixir example app is not starting
Proposed changes
The basic_elixir example app is not starting because it's not able to load libcrypto.so.1.1. On this PR, the Docker base image and the app dependencies are updated, which solves the issue.
Issue #341
Demo
Before fixing it
05a58a9452fe9eb8d43c5b10e71f3159084b2144514434f75f9a118056206a57
2025-11-25 10:45:44.843359
[load_failed,"Failed to load NIF library: 'Error loading shared library libcrypto.so.1.1: No such file or directory (needed by /app/lib/crypto-4.6.5.4/priv/lib/crypto.so)'","OpenSSL might not be installed on this system.\n"]
"Unable to load crypto library. Failed with error:~n\"~p, ~s\"~n~s"
{error_logger,error_msg}
#{label=>{supervisor,start_error},report=>[{supervisor,{local,kernel_sup}},{errorContext,start_error},{reason,{on_load_function_failed,crypto}},{offender,[{pid,undefined},{id,kernel_safe_sup},{mfargs,{supervisor,start_link,[{local,kernel_safe_sup},kernel,safe]}},{restart_type,permanent},{shutdown,infinity},{child_type,supervisor}]}]}
#{label=>{proc_lib,crash},report=>[[{initial_call,{supervisor,kernel,['Argument__1']}},{pid,<0.854.0>},{registered_name,[]},{error_info,{exit,{on_load_function_failed,crypto},[{init,run_on_load_handlers,0,[]},{kernel,init,1,[{file,"kernel.erl"},{line,189}]},{supervisor,init,1,[{file,"supervisor.erl"},{line,295}]},{gen_server,init_it,2,[{file,"gen_server.erl"},{line,374}]},{gen_server,init_it,6,[{file,"gen_server.erl"},{line,342}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,249}]}]}},{ancestors,[kernel_sup,<0.840.0>]},{message_queue_len,0},{messages,[]},{links,[<0.842.0>]},{dictionary,[]},{trap_exit,true},{status,running},{heap_size,610},{stack_size,27},{reductions,265}],[]]}
#{label=>{proc_lib,crash},report=>[[{initial_call,{application_master,init,['Argument__1','Argument__2','Argument__3','Argument__4']}},{pid,<0.839.0>},{registered_name,[]},{error_info,{exit,{{shutdown,{failed_to_start_child,kernel_safe_sup,{on_load_function_failed,crypto}}},{kernel,start,[normal,[]]}},[{application_master,init,4,[{file,"application_master.erl"},{line,138}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,249}]}]}},{ancestors,[<0.838.0>]},{message_queue_len,1},{messages,[{'EXIT',<0.840.0>,normal}]},{links,[<0.838.0>,<0.837.0>]},{dictionary,[]},{trap_exit,true},{status,running},{heap_size,610},{stack_size,27},{reductions,193}],[]]}
#{label=>{application_controller,exit},report=>[{application,kernel},{exited,{{shutdown,{failed_to_start_child,kernel_safe_sup,{on_load_function_failed,crypto}}},{kernel,start,[normal,[]]}}},{type,permanent}]}
{"Kernel pid terminated",application_controller,"{application_start_failure,kernel,{{shutdown,{failed_to_start_child,kernel_safe_sup,{on_load_function_failed,crypto}}},{kernel,start,[normal,[]]}}}"}
args: format: label: 2025-11-25 10:45:44.843539 supervisor_report 2025-11-25 10:45:44.843558 crash_report 2025-11-25 10:45:45.847551 crash_report 2025-11-25 10:45:45.848123 std_info Kernel pid terminated (application_controller) ({application_start_failure,kernel,{{shutdown,{failed_to_start_child,kernel_safe_sup,{on_load_function_failed,crypto}}},{kernel,start,[normal,[]]}}})
After the fix
The committers listed above are authorized under a signed CLA.
- :white_check_mark: login: linomassarani / name: Marco Aurélio Lino Massarani Costa (da097e64f742ec89503074990392c8a0ee307f31)
Thanks! Can you sign the CLA?
The second fix should not be needed. Are you sure even after updating to 1.7.0 it didn't work without it?
Thanks! Can you sign the CLA?
The second fix should not be needed. Are you sure even after updating to 1.7.0 it didn't work without it?
@tsloughter It does work, but no tracing shows up on Zipkin, let me know if you still want to remove the second fix.
Thanks! Can you sign the CLA?
The second fix should not be needed. Are you sure even after updating to 1.7.0 it didn't work without it?
@tsloughter I just signed the CLA.
Below is a screen recording to show you how the app behaves without the second fix:
https://github.com/user-attachments/assets/0f9bc989-bb21-4146-b7b8-b6c46cbabd12
@tsloughter I removed the second commit. I'll create an issue/PR for that later. Now the PR only allows the elixir example app to start.