ergo-services / ergo

An actor-based Framework with network transparency for creating event-driven architecture in Golang. Inspired by Erlang. Zero dependencies.
https://docs.ergo.services
MIT License
3.67k stars 143 forks source link

some problems #88

Closed jiait closed 2 years ago

jiait commented 2 years ago

Several problems were found:

  1. All the mailbox messages in the process are processed by coroutines. At present, there is a situation where the main process crashes unexpectedly, but the messages in the Mailbox can be processed in additional ways.

pid

  1. Multiple Ergo nodes communicate, and some nodes restart back and forth. Accidentally, after the restart, nodes cannot connect to each other, and Erlang nodes cannot ping Ergo nodes
halturin commented 2 years ago

thanks for the report.

about the first case: the order of output doesn't guarantee the order of happening. that's how stdout works. you shouldn't rely on it. you may also want to add the option -ergo.norecover to see where the exact panic happened.

not sure about the second case. could you please provide the way how to reproduce it? i suppose it could relate to the EPMD problem you have reported early.

PS: may I ask you to try the v210 branch? it has a lot of improvements in the network stack (including epmd feature)