[erlang-questions] concurrency bugs in Erlang
Wed Aug 31 16:57:42 CEST 2016
A few years ago we used QuickCheck to track down some interesting race
conditions in dets (the disk storage back end used with Erlang's database
mnesia). There's a paper about it in the Erlang Workshop 2011, which you
might find interesting.
From: Ben Murphy
Sent: Wednesday, August 31, 2016 4:26 PM
To: Carmen Torres López
Cc: Erlang-Questions Questions
Subject: Re: [erlang-questions] concurrency bugs in Erlang
Actually. More information here on the issue:
On Wed, Aug 31, 2016 at 3:21 PM, Ben Murphy <benmmurphy@REDACTED> wrote:
> 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:
> 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:
>> 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
>> be observed frequently in Erlang? Has anyone experience a behavoir such
>> deadlocks, livelock, starvation, race conditions, order violation, etc.?
>> I will appreciate any pointer of an example code that generate these
>> Best regards,
>> erlang-questions mailing list
erlang-questions mailing list
More information about the erlang-questions