[erlang-questions] concurrency bugs in Erlang

Ben Murphy benmmurphy@REDACTED
Wed Aug 31 16:21:46 CEST 2016


I have had experience with deadlocks and OTP gen_fsm/gen_server code.
One way of thinking of gen_server is just a way of having a bunch of
methods that wrap some common data under a mutex. So if you have
gen_servers calling other gen_servers and then calling back into the
original gen_server then you create a deadlock. If you have enough
indirection then it is possible to write code that does this without
realising it.

We actually had this problem with an opensource library:

https://github.com/iamaleksey/oserl

I can't remember exactly if it was because of the library itself or
how we were using it. However, we rewrote the library to handle a
single smpp connection using a single gen_server process instead of
using a combination of gen_fsm and a gen_server which fixed all of our
deadlock issues.

On Wed, Aug 31, 2016 at 8:05 AM, Carmen Torres López
<carmentorreslopez87@REDACTED> wrote:
> Hello,
>
> I'm doing a research about concurrency bugs types that can be observed in
> languages based in actor model. I would like to know what kind of bugs can
> be observed frequently in Erlang? Has anyone experience a behavoir such as
> deadlocks, livelock, starvation, race conditions, order violation, etc.?
> I will appreciate any pointer of an example code that generate these bugs.
>
> Best regards,
> Carmen
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
>



More information about the erlang-questions mailing list