massemanet/distel

Distel fails with OTP 23

cmoid opened this issue · 3 comments

cmoid commented

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

cmoid commented

@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.