Open weisslj opened 10 years ago
My guess is that this is due to dynamic loading of code. When is your install from?
We've reworked the compiling of the kernel.app
file to include the group_history
module in there, although I guess the boot file for your system was generated prior to that.
This will make it so that the boot file will only load files it knows about and the Erlang error handler won't attempt to do dynamic code loading of any unknown module. Short of regenerating a boot file (which I'm not extremely keen on doing as part of erlang-history's build system), there are a few workarounds:
-eval code:load(...)
), which is shitty and cumbersomeIt seems that right now you can do 1. without a problem (although inconvenient). I'm not willing to do 4. just yet because that's scary stuff and I'm afraid of breaking people's regular Erlang nodes in painful ways. I'm open to experimenting with it, though.
I used erlang-history 22f04dd, the installation is from the distribution (Debian). I could reproduce the bug with R16B02.
I solved the problem for me by patching and recompiling Erlang/OTP directly. Apart from modifying group.erl and adding group_history.erl, I had to include "group_history" in lib/kernel/src/kernel.app.src and lib/kernel/src/Makefile. By replacing /usr/lib/erlang/bin/start.boot with the newly built start.boot the error disappeared.
I see that the problem is hard / impossible to solve with the current installation approach. Maybe the best fix for this issue would be to include erlang-history in OTP itself :-).
Right, the part about app.src is now covered by the erlang-history build system, but not the boot file generation unless someone manually recompiles their install from source. It wouldn't have helped much with a fresh install, but solves the problem with custom releases after the fact.
I'll be leaving this open and classifying it as a bug.
With Erlang R16B01 and erlang-history,
erl -mode embedded
crashes: