opentelemetry-erlang-contrib icon indicating copy to clipboard operation
opentelemetry-erlang-contrib copied to clipboard

The basic_elixir example app is not starting

Open linomassarani opened this issue 3 weeks ago • 5 comments

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,[]]}}})
image

After the fix

image

linomassarani avatar Nov 25 '25 11:11 linomassarani

CLA Signed

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?

tsloughter avatar Nov 25 '25 11:11 tsloughter

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.

linomassarani avatar Nov 25 '25 12:11 linomassarani

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

linomassarani avatar Nov 25 '25 12:11 linomassarani

@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.

linomassarani avatar Nov 26 '25 16:11 linomassarani