On 27/02/18 09:43, Konrad “ktoso” Malawski wrote:

Thanks Alan,
please do report back here or as a ticket on github.com/akka/akka :)
Thanks for helping harden artery!

OK, here's the story. With artery.transport = tcp, the app works, with it set to aeron-udp it doesn't. Even with debugging enabled, there is very little information output because the failure happens very early on:

[INFO] [02/28/2018 18:18:20.218] [main] [akka.remote.artery.aeron.ArteryAeronUdpTransport(akka://Remoting)] Started embedded media driver in directory [/var/tmp/aeron-alanbur-Remoting-01f9e630-bc42-441c-a90b-ab0300afaa7c] [DEBUG] [02/28/2018 18:18:20.256] [Remoting-akka.actor.default-dispatcher-6] [akka://Remoting/system] now supervising Actor[akka://Remoting/system/StreamSupervisor-0#1924858877] [DEBUG] [02/28/2018 18:18:20.257] [Remoting-akka.remote.default-remote-dispatcher-7] [akka://Remoting/system/StreamSupervisor-0] started (akka.stream.impl.StreamSupervisor@4485c04a) [DEBUG] [02/28/2018 18:18:20.257] [Remoting-akka.actor.default-dispatcher-6] [akka://Remoting/system] now supervising Actor[akka://Remoting/system/StreamSupervisor-1#-1116171559] [DEBUG] [02/28/2018 18:18:20.257] [Remoting-akka.remote.default-remote-dispatcher-7] [akka://Remoting/system/StreamSupervisor-1] started (akka.stream.impl.StreamSupervisor@3bb60524) Failed to parse config file No response from MediaDriver within (ns):20000000000 [DEBUG] [02/28/2018 18:18:40.357] [Remoting-akka.actor.default-dispatcher-3] [akka://Remoting/user] stopped

Most likely cause is endian and/or alignment bugs in the code that accesses the shared memory segment between the Aeron client code and the Media Driver:

https://github.com/real-logic/aeron/wiki/Media-Driver-Operation

"The mediadriver and the API/stack communicate via a set of shared memory buffers."

https://github.com/real-logic/aeron/wiki/Protocol-Specification

"Byte ordering of fields of length 16-bits and larger use Little Endian. This is for pure efficiency on performance sensitive platforms."

Looking at the Aeron source there are lots of mentions of endianness in there, but also things like this:

// TODO: need to byte order to LITTLE_ENDIAN

which suggests that the code isn't properly endian-independent yet. My suspicion therefore is that the bug is in Aeron rather than Artery, so I'd appreciate some guidance on how to progress the issue.

Thanks,

--
Alan Burlison
--

--
     Read the docs: http://akka.io/docs/
     Check the FAQ: http://doc.akka.io/docs/akka/current/additional/faq.html
     Search the archives: https://groups.google.com/group/akka-user
--- You received this message because you are subscribed to the Google Groups "Akka User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to