processone / ejabberd

Robust, Ubiquitous and Massively Scalable Messaging Platform (XMPP, MQTT, SIP Server)

Home Page:https://www.process-one.net/en/ejabberd/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Self-Compile ejabberd rebar3 resulting in ejabberd init process crash. Erlang/OTP 25

thealacer opened this issue · comments

Environment

  • ejabberd version: 24.02.25 (master since 25th March 2024)
  • Erlang version: erlang/otp 25
  • OS: Linux - Debian bookworm (With and Without backports)
  • Installed from: source (main repo and checkout 24.02)

Configuration (only if needed): grep -Ev '^$|^\s*#' ejabberd.yml

Compile Commands:

Not working with rebar 3 Self Compile Configuration:

  • ./configure --enable-user=ejabberd --enable-group=ejabberd --enable-all --with-rebar=~./rebar3 --disable-elixir --enable-new-sql-schema --enable-pgsql

Working with rebar Self Compile Configuration:

  • ./configure --enable-user=ejabberd --enable-group=ejabberd --enable-all --with-rebar=./rebar --disable-elixir --enable-new-sql-schema --enable-pgsql
  • ./configure --enable-user=ejabberd --enable-group=ejabberd --enable-all --with-rebar= --disable-elixir --enable-new-sql-schema --enable-pgsql
loglevel: error
...

Errors from error.log/crash.log

=erl_crash_dump:0.5
Wed Mar 27 22:03:49 2024
Slogan: init terminating in do_boot ({undef,[{ejabberd,start,[],[]},{init,start_em,1,[]},{init,do_boot,3,[]}]})
System version: Erlang/OTP 25 [erts-13.1.5] [source] [64-bit] [smp:128:2] [ds:128:2:10] [async-threads:1] [jit:ns]
Taints:
Atoms: 8773
Calling Thread: scheduler:2
=scheduler:1

Bug description

  • ejabberd Startup Fails when it is compiled with rebar3 on 24.02.x.
  • The issue was not present on 24.02.7 when last tested using Master Branch on 7th March 2024
  • This issue is present on 24.02.25 when tested using master branch since 26th March 2024
  • The Bug is same if we git checkout tag 24.04 or compile 24.02 from master branch

Step to Product/Re-Produce:

  • Just change the ./configure --with-rebar=~./rebar3 to ./configure --with-rebar=./rebar or ./configure --with-rebar and it works well.
  • Changing back to rebar3 option does not work.

The Issue is not in Ejabberd rather on my compile script Since I was Compiling rebar3 from source as well.

Therefore if anyone is going to Self Compile rebar3 please use below option for ejabberd compile configuration:

  • ./configure --rebar=/path to the full rebar3 compiled directory/./rebar3

In case if you want to use the rebar3 downloaded along ejabberd repo clone, please use below option for ejabberd compile config:

  • ./configure --rebar=./rebar3

That's how I use it :)