Skip to content

Elixir-based tests fail to run with Elixir 1.15 #4706

@pgj

Description

@pgj

For the latest version of CouchDB main (as the time of creating this ticket), it is not possible run the Elixir-based integration tests with Elixir 1.15.

Consider the following log where Elixir is 1.15.4 is used (via asdf, built for OTP 25, and CouchDB is also built with that version):

% make elixir-suite
* creating /Users/gaborpali/.asdf/installs/elixir/1.15.4-otp-25/.mix/elixir/1-15/rebar3
* creating /Users/gaborpali/.asdf/installs/elixir/1.15.4-otp-25/.mix/archives/hex-2.0.6
Resolving Hex dependencies...
Resolution completed in 0.029s
Unchanged:
  bunt 0.2.1
  certifi 2.9.0
  credo 1.6.7
  excoveralls 0.15.3
  file_system 0.2.10
  hackney 1.18.1
  httpotion 3.2.0 RETIRED!
    (deprecated) Not really maintained, please check out Tesla
  idna 6.1.1
  jason 1.4.0
  junit_formatter 3.3.1
  metrics 1.0.1
  mimerl 1.2.0
  parse_trans 3.3.1
  ssl_verify_fun 1.1.6
  unicode_util_compat 0.7.0
===> Analyzing applications...
===> Compiling b64url
===> Analyzing applications...
===> Compiling jwtf
===> Analyzing applications...
===> Compiling jiffy
===> Analyzing applications...
===> Compiling ibrowse
==> httpotion
Compiling 1 file (.ex)

18:28:45.831 [error] beam/beam_load.c(144): Error loading module ibrowse:
  corrupt file header



18:28:45.831 [error] Loading of /Users/gaborpali/projects/github/couchdb/_build/integration/lib/ibrowse/ebin/ibrowse.beam failed: :badfile

warning: :ibrowse.send_req/6 is undefined (module :ibrowse is not available or is yet to be defined)
  lib/httpotion.ex:476: HTTPotion.request/3

warning: :ibrowse.send_req_direct/7 is undefined (module :ibrowse is not available or is yet to be defined)
  lib/httpotion.ex:476: HTTPotion.request/3

warning: :ibrowse.stop_worker_process/1 is undefined (module :ibrowse is not available or is yet to be defined)
  lib/httpotion.ex:476: HTTPotion.stop_worker_process/1

warning: :ssl_verify_hostname.verify_fun/3 is undefined (module :ssl_verify_hostname is not available or is yet to be defined)
  lib/httpotion.ex:476: HTTPotion.process_arguments/3

Generated httpotion app
==> couchdbtest
warning: :meck.unload/0 is undefined (module :meck is not available or is yet to be defined)
  test/elixir/lib/ex_unit.ex:39

warning: :config.get/3 is undefined (module :config is not available or is yet to be defined)
  test/elixir/lib/step/start.ex:43

warning: :config.get/3 is undefined (module :config is not available or is yet to be defined)
  test/elixir/lib/step/start.ex:49

warning: :mochiweb_socket_server.get/2 is undefined (module :mochiweb_socket_server is not available or is yet to be defined)
  test/elixir/lib/step/start.ex:44

warning: :mochiweb_socket_server.get/2 is undefined (module :mochiweb_socket_server is not available or is yet to be defined)
  test/elixir/lib/step/start.ex:50

warning: :test_util.start_couch/1 is undefined (module :test_util is not available or is yet to be defined)
  test/elixir/lib/step/start.ex:42

warning: :test_util.stop_couch/1 is undefined (module :test_util is not available or is yet to be defined)
  test/elixir/lib/step/start.ex:63

warning: :fabric.create_db/2 is undefined (module :fabric is not available or is yet to be defined)
  test/elixir/lib/step/create_db.ex:39

warning: :fabric.delete_db/2 is undefined (module :fabric is not available or is yet to be defined)
  test/elixir/lib/step/create_db.ex:45

warning: :ibrowse.send_req/6 is undefined (module :ibrowse is not available or is yet to be defined)
  test/elixir/lib/couch_raw.ex:2

warning: :ibrowse.send_req_direct/7 is undefined (module :ibrowse is not available or is yet to be defined)
  test/elixir/lib/couch_raw.ex:2

warning: :ibrowse.stop_worker_process/1 is undefined (module :ibrowse is not available or is yet to be defined)
  test/elixir/lib/couch_raw.ex:2

warning: :jiffy.encode/1 is undefined (module :jiffy is not available or is yet to be defined)
  test/elixir/lib/couch_raw.ex:49

warning: :ssl_verify_hostname.verify_fun/3 is undefined (module :ssl_verify_hostname is not available or is yet to be defined)
  test/elixir/lib/couch_raw.ex:2

warning: :config.delete/3 is undefined (module :config is not available or is yet to be defined)
  test/elixir/lib/step/user.ex:79

warning: :config.get/3 is undefined (module :config is not available or is yet to be defined)
  test/elixir/lib/step/user.ex:36

warning: :config.set/4 is undefined (module :config is not available or is yet to be defined)
  test/elixir/lib/step/user.ex:48

warning: :couch_doc.from_json_obj/1 is undefined (module :couch_doc is not available or is yet to be defined)
  test/elixir/lib/step/user.ex:59

warning: :couch_doc.from_json_obj/1 is undefined (module :couch_doc is not available or is yet to be defined)
  test/elixir/lib/step/user.ex:83

warning: :fabric.create_db/2 is undefined (module :fabric is not available or is yet to be defined)
  test/elixir/lib/step/user.ex:41

warning: :fabric.delete_db/2 is undefined (module :fabric is not available or is yet to be defined)
  test/elixir/lib/step/user.ex:39

warning: :fabric.get_doc_info/3 is undefined (module :fabric is not available or is yet to be defined)
  test/elixir/lib/step/user.ex:82

warning: :fabric.update_doc/3 is undefined (module :fabric is not available or is yet to be defined)
  test/elixir/lib/step/user.ex:66

warning: :fabric.update_doc/3 is undefined (module :fabric is not available or is yet to be defined)
  test/elixir/lib/step/user.ex:88

warning: :ibrowse.send_req/6 is undefined (module :ibrowse is not available or is yet to be defined)
  test/elixir/lib/couch.ex:69

warning: :ibrowse.send_req_direct/7 is undefined (module :ibrowse is not available or is yet to be defined)
  test/elixir/lib/couch.ex:69

warning: :ibrowse.stop_worker_process/1 is undefined (module :ibrowse is not available or is yet to be defined)
  test/elixir/lib/couch.ex:69

warning: :jiffy.decode/2 is undefined (module :jiffy is not available or is yet to be defined)
  test/elixir/lib/couch.ex:134

warning: :jiffy.encode/1 is undefined (module :jiffy is not available or is yet to be defined)
  test/elixir/lib/couch.ex:120

warning: :ssl_verify_hostname.verify_fun/3 is undefined (module :ssl_verify_hostname is not available or is yet to be defined)
  test/elixir/lib/couch.ex:69

warning: :jiffy.encode/1 is undefined (module :jiffy is not available or is yet to be defined)
  test/elixir/lib/couch/dbtest.ex:93

warning: :jiffy.encode/1 is undefined (module :jiffy is not available or is yet to be defined)
  test/elixir/lib/couch/dbtest.ex:112

warning: :jiffy.encode/1 is undefined (module :jiffy is not available or is yet to be defined)
  test/elixir/lib/couch/dbtest.ex:260

warning: :jiffy.encode/1 is undefined (module :jiffy is not available or is yet to be defined)
  test/elixir/lib/couch/dbtest.ex:476

warning: :jiffy.encode/1 is undefined (module :jiffy is not available or is yet to be defined)
  test/elixir/lib/couch/dbtest.ex:507

warning: :fabric.get_db_info/1 is undefined (module :fabric is not available or is yet to be defined)
  test/elixir/lib/utils.ex:26

Generated couchdbtest app

18:28:45.914 [error] Loading of /Users/gaborpali/projects/github/couchdb/_build/integration/lib/ibrowse/ebin/ibrowse_app.beam failed: :badfile


18:28:45.914 [error] beam/beam_load.c(144): Error loading module ibrowse_app:
  corrupt file header



18:28:45.914 [notice] Application ibrowse exited: exited in: :ibrowse_app.start(:normal, [])
    ** (EXIT) an exception was raised:
        ** (UndefinedFunctionError) function :ibrowse_app.start/2 is undefined (module :ibrowse_app is not available)
            (ibrowse 4.4.2) :ibrowse_app.start(:normal, [])
            (kernel 8.5.4.1) application_master.erl:293: :application_master.start_it_old/4
** (Mix) Could not start application ibrowse: exited in: :ibrowse_app.start(:normal, [])
    ** (EXIT) an exception was raised:
        ** (UndefinedFunctionError) function :ibrowse_app.start/2 is undefined (module :ibrowse_app is not available)
            (ibrowse 4.4.2) :ibrowse_app.start(:normal, [])
            (kernel 8.5.4.1) application_master.erl:293: :application_master.start_it_old/4
make: *** [elixir-suite] Error 1

The size of _build/integration/lib/ibrowse/ebin/ibrowse_app.beam is 0, which may explain the first error message. Also, for further invocations, the command simply hangs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions