Distel fails with OTP 23
cmoid opened this issue · 3 comments
There are apparently changes to the external term format that need to be supported. I'll look into it further.
Connection attempt from node 'distel_38187\@machine.local' rejected since it cannot handle ["BIG_CREATION"].**
https://www.erlang.org/doc/apps/erts/erl_ext_dist.html#NEW_PID_EXT
https://www.erlang.org/doc/apps/erts/erl_dist_protocol.html
-define(DFLAG_BIG_CREATION, 16#40000).
The node understands big node creation tags NEW_PID_EXT, NEW_PORT_EXT and NEWER_REFERENCE_EXT. This flag is mandatory. If not present, the connection is refused.
It gets a bit further with these added in the appropriate places:
(defconst derl-flag-big-creation #x40000)
(newPid . 88)
((newPid) (vector erl-tag
'erl-pid
(erlext-read-obj) ; node
(erlext-read4) ; id
(erlext-read4) ; serial
(erlext-read4))) ; creation
I'm still getting weird behavior but that might be my messy hack as well. If I find more I'll report here.
Weird behavior was just my config issues. I think.
It seems to work now in my messy hack branch https://github.com/zwizwa/distel/tree/dev
@zwizwa thanks! I finally got some time to look at this. I'm running Erlang 26 and had to do a bit more to get it working. This branch works for me on OSX, but it won't work for Erlang versions earlier than 23.
I noticed a lot of deprecation warnings when compiling, hopefully I'll have some time to do more and submit some PRs.