Lost repl3 in the dependencies

I’ve messed up. Updating from source. Had a problem as the service wouldn’t start. Looked like a Hex compile problem. Checked it out and it was complaining about rebar_core, I think. So, I thought rather than debugging, readme says if you ever get compilation issues do:-

  • mix deps.clean --all
  • mix local.rebar
  • mix local.hex
  • rm -r _build
    Fine. mix deps.get works. But now mix compile errors quite quickly at rebar_core. I can’t see it as a dependecy in the deps folder anymore.

I notice that rebar installs partway though the fresh install process. mix pleroma.instance gen but that fails to run because I can’t compile.

Is there a way to re-install repl3? Or any other way to kick it back into life?

can you share the exact error, and what version of elixir, erlang, and akkoma you have? maybe this will provide some clues.

LOL. Sozz. Wrapped up in my own little world…

Erlang/OTP 27 [erts-15.0] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [jit:ns]
Elixir 1.17.1 (compiled with Erlang/OTP 27)

$ mix get deps
runs ok

$ mix compile

Generated bunt app
===> Analyzing applications...
===> Compiling unicode_util_compat
===> Analyzing applications...
===> Compiling idna
===> Analyzing applications...
===> Compiling syslog
===> Uncaught error in rebar_core. Run with DIAGNOSTIC=1 to see stacktrace or consult rebar3.crashdump
===> When submitting a bug report, please include the output of `rebar3 report "your command"`
==> pleroma
** (Mix) Could not compile dependency :syslog, "/var/lib/akkoma/.mix/elixir/1-17/rebar3 bare compile --paths /opt/akkoma/_build/dev/lib/*/ebin" command failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile syslog --force", update it with "mix deps.update syslog" or clean it with "mix deps.clean syslog"

$ (doing the suggestions above don't help)


$ tail rebar3.crashdump
     [{file,
          "/opt/akkoma/deps/syslog/_build/default/plugins/pc/src/pc_prv_compile.erl"},
      {line,52}]},
 {pc_prv_compile,do,1,
     [{file,
          "/opt/akkoma/deps/syslog/_build/default/plugins/pc/src/pc_prv_compile.erl"},
      {line,54}]},
 {rebar_core,do,2,
     [{file,"/rebar3/apps/rebar/src/rebar_core.erl"},{line,155}]}]

[akkoma@akkoma syslog]$ tail -100 rebar3.crashdump
                    "Path to file containing key for decrypting config"},
                {abort_if_missing_suites,undefined,"abort_if_missing_suites",
                    {boolean,true},
                    "Abort if suites are missing"},
                {multiply_timetraps,undefined,"multiply_timetraps",integer,[]},
                {scale_timetraps,undefined,"scale_timetraps",boolean,
                    "Scale timetraps"},
                {create_priv_dir,undefined,"create_priv_dir",string,
                    "Create priv dir (auto_per_run | auto_per_tc | manual_per_tc)"},
                {include,undefined,"include",string,
                    "Directories containing additional include files"},
                {readable,undefined,"readable",string,
                    "Shows test case names and only displays logs to shell on failures (true | compact | false)"},
                {verbose,118,"verbose",boolean,"Verbose output"},
                {name,undefined,"name",atom,"Gives a long name to the node"},
                {sname,undefined,"sname",atom,
                    "Gives a short name to the node"},
                {setcookie,undefined,"setcookie",atom,
                    "Sets the cookie if the node is distributed"},
                {sys_config,undefined,"sys_config",string,
                    "List of application config files"},
                {compile_only,undefined,"compile_only",boolean,
                    "Compile modules in the project with the test configuration but do not run the tests"},
                {retry,undefined,"retry",boolean,
                    "Experimental feature. If any specification for previously failing test is found, runs them."},
                {fail_fast,undefined,"fail_fast",
                    {boolean,false},
                    "Experimental feature. If any test fails, the run is aborted. Since common test does not support this natively, we abort the rebar3 run on a failure. This May break CT's disk logging and other rebar3 features."}],
               [test],
               default},
           {provider,clean,rebar_prv_clean,
               {[],[]},
               true,
               [app_discovery,install_deps],
               "Remove compiled beam files from apps.",
               "Remove compiled beam files from apps.","rebar3 clean",
               [{all,97,"all",undefined,"Clean all apps include deps"},
                {apps,undefined,"apps",string,
                    "Clean a specific list of apps or dependencies"},
                {profile,112,"profile",string,
                    "Clean under profile. Equivalent to `rebar3 as <profile> clean`"}],
               [default],
               default},
           {provider,compile,rebar_prv_bare_compile,
               {[],[]},
               false,
               [{default,app_discovery}],
               [],[],[],
               [{paths,112,"paths",string,
                    "Wildcard paths of ebin directories to add to code path, separated by a colon"},
                {separator,115,"separator",string,
                    "In case of multiple return paths, the separator character to use to join them."},
                {outdir,111,"outdir",string,
                    "Path where build artifacts are located. Defaults to the current directory."}],
               [default],
               bare},
           {provider,as,rebar_prv_as,
               {[],[]},
               true,[],
               "Higher order provider for running multiple tasks in a sequence as a certain profiles.",
               "Higher order provider for running multiple tasks in a sequence as a certain profiles.",
               "rebar3 as <profile1>,<profile2>,... <task1>, <task2>, ...",
               [{profile,undefined,undefined,string,"Profiles to run as."}],
               [default],
               default},
           {provider,app_discovery,rebar_prv_app_discovery,
               {[],[]},
               false,[],[],[],[],[],
               [default],
               default}],
          false},
      []],
     []},
 {pc_port_specs,port_opt,2,
     [{file,
          "/opt/akkoma/deps/syslog/_build/default/plugins/pc/src/pc_port_specs.erl"},
      {line,244}]},
 {pc_port_specs,'-port_spec_from_legacy/1-lc$^0/1-0-',2,
     [{file,
          "/opt/akkoma/deps/syslog/_build/default/plugins/pc/src/pc_port_specs.erl"},
      {line,127}]},
 {pc_port_specs,port_spec_from_legacy,1,
     [{file,
          "/opt/akkoma/deps/syslog/_build/default/plugins/pc/src/pc_port_specs.erl"},
      {line,127}]},
 {pc_port_specs,construct,1,
     [{file,
          "/opt/akkoma/deps/syslog/_build/default/plugins/pc/src/pc_port_specs.erl"},
      {line,65}]},
 {pc_prv_compile,'-do/1-lc$^0/1-0-',2,
     [{file,
          "/opt/akkoma/deps/syslog/_build/default/plugins/pc/src/pc_prv_compile.erl"},
      {line,52}]},
 {pc_prv_compile,do,1,
     [{file,
          "/opt/akkoma/deps/syslog/_build/default/plugins/pc/src/pc_prv_compile.erl"},
      {line,54}]},
 {rebar_core,do,2,
     [{file,"/rebar3/apps/rebar/src/rebar_core.erl"},{line,155}]}]

this very vaguely rings a bell, and i think when i encountered this, it was bc it couldn’t handle a certain elixir or erlang version. Checking the CI[1], I see Akkoma runs the tests with Elixir version 1.16 and Erlang 26. Is there a way you could downgrade to those and see if that helps?

[1] akkoma/.woodpecker/test.yml at develop - AkkomaGang/akkoma - Akkoma Development

I think you might be right. I recall doing an update sometime back. I couldn’t login to the server via ssh and had to reset it, the problems began about then. What a pain.

I think it may be best just to reinstall. Not sure how to downgrade.

The database and nginx is separate, so I hope it may be painless.

I’d just like to thank-you for your help, I know it’s something people often forget to do. :slight_smile:

It was exactly what you said it might be. However downgrading versions was very tricky as the box running Akkoma is Arch.

For reasons (embarrassing) I ran out of disk space sometime back and I clear local caches, so I didn’t have the prior versions.

This website helped locate them:-
https://archive.archlinux.org/packages

curl them and use pacman -U to install.

After a bit of faffing I realised I had to downgrade both Elixir and Erlang. Version 16.1 and 26 respectively.

I think the latest Akkoma update required config :pleroma, Pleroma.Upload,
base_url: “https://xyz.com” to be set.

Also the ProgressSQL was whinging and I had to ALTER DATABASE akkoma REFRESH COLLATION VERSION

After that things came back to life. :slight_smile:

3 Likes