phoronix-test-suite / test-profiles

A read-only Git copy of the OpenBenchmarking.org test profiles.
Other
68 stars 80 forks source link

`rabbitmq`: Add Erlang dependencies for RabbitMQ server #296

Closed tad4 closed 9 months ago

tad4 commented 10 months ago

tl;dr—Update PTS' system dependency to install the Erlang libraries required by the RabbitMQ server.

What happens?

When PTS starts rabbitmq-server on Ubuntu 22.04 LTS, the server will fail to start with the following error:

=INFO REPORT==== 11-Nov-2023::00:02:00.179771 ===
    application: crypto
    exited: stopped
    type: transient

{"init terminating in do_boot",{error,{public_key,{"no such file or directory","public_key.app"}}}}
init terminating in do_boot ({error,{public_key,{no such file or directory,public_key.app}}})

Crash dump is being written to: erl_crash.dump...done

Proposed solution

rabbitmq-server fails because the base Erlang package—i.e., declaring the Erlang base package (erl) as the sole system dependency—does not include all the Erlang libraries needed to run the server.

baryluk commented 9 months ago

Out of curiosity how pts knows that inets.beam, make.beam, xmerl.beam, os_mon.beam, eldap.appup maps to specific system packages? I am not sure if you patch will work.

Also on Debian, and Ubuntu, installing erlang package will pull most of the base and important packages, including inets, make, xmerl, os_mon and eldap, by default.

Plus, the error you are getting does not indicate in anyway that any of these packages / libraries are missing.

tad4 commented 9 months ago

Out of curiosity how pts knows that inets.beam, make.beam, xmerl.beam, os_mon.beam, eldap.appup maps to specific system packages? I am not sure if you patch will work.

PTS uses the package manager to search for packages that provide the dependencies—e.g., files—declared in the test profile. For example, in Ubuntu 22.04, this functionality can be performed using apt-file's search command.

tad4 commented 9 months ago

Plus, the error you are getting does not indicate in anyway that any of these packages / libraries are missing.

The Erlang error states that, "no such file or directory [named] public_key.app", exists and therefore Erlang is "terminating" because it can not find the file.

This error is generated by Erlang. All questions and comments related to how Erlang reports errors should be directed to the Erlang development community.