Closed Overbryd closed 5 years ago
The problem is that flare
does not include kafka_protocol
(where the "missing" module is found) in its applications
list (which can be found under src/flare.app.src
), so the release will not carry any of the modules from kafka_protocol
as a result.
This is a bug with flare
, they should add kafka_protocol
to their applications
list.
Outline
I found a bug that hints that dependencies are not properly packaged and are missing some erlang modules.
The nasty thing about this bug is, it only shows in the release but not development or anywhere else.
Read on to reproduce.
Precheck
Do not use the issues tracker for help or support (try Elixir Forum, Stack Overflow, IRC, etc.)For proposing a new feature, please start a discussion on the Elixir Core mailing list: https://groups.google.com/group/elixir-lang-coreFor bugs, do a quick search and make sure the bug has not yet been reportedPlease disclose security vulnerabilities privately at elixir-security@googlegroups.comEnvironment
Steps to reproduce
mix.exs
and addflare
(this dependency triggers the bug) anddistillery
as a dependency.tl;dr We are exiting with
exception error: undefined function kpro_req_lib:make/3 in function flare_api_versions:api_versions/1
That hints, the release is missing the
kpro_req_lib
module from the sub dependency.kafka_protocol
to the list of dependencies inmix.exs
.I want to emphasise that kafka protocol is a dependency, that is already declared through
flare
and fetched by mix in the previous steps.:flare
is startedAll because I manually added
kafka_protocol
to the required dependencies in mymix.exs
, although it was there beforehand.Expected behavior
I expect distillery/elixir to properly resolve dependencies and include everything in my release that is necessary to start the application, just like in development mode.
No surprises like these in production, please.
Kind regards, Lukas Rieder