diff options
| author | Jean-Sebastien Pedron <jean-sebastien@rabbitmq.com> | 2014-12-10 10:55:12 +0100 |
|---|---|---|
| committer | Jean-Sebastien Pedron <jean-sebastien@rabbitmq.com> | 2014-12-10 10:55:12 +0100 |
| commit | 65b7f0cad75baaf1bebb5fc5c66f40f7758a05cc (patch) | |
| tree | 142ad75a83e56ac586d47d84521516ff081126f6 /src/mochijson2.erl | |
| parent | 28f82588c0ea05fa9e69b370ce03a0a316ce9f24 (diff) | |
| download | rabbitmq-server-git-65b7f0cad75baaf1bebb5fc5c66f40f7758a05cc.tar.gz | |
Autoheal: Make sure Mnesia is stopped on all losers before they restart
This works around a race in Mnesia where a starting loser would hang
forever. This happens when a starting loser connects to another loser,
negotiates the Mnesia protocol and attempts to acquire a write lock on
the other node's schema. If the other nodes stops right between the
protocol negotiation and the lock request, the starting node never
receives an answer to its request.
Before this fix, the hang occurred after at most 30 minutes looping on
the partitions:autoheal test in rabbitmq-test. With the fix, RabbitMQ
survived an all night long run.
Diffstat (limited to 'src/mochijson2.erl')
0 files changed, 0 insertions, 0 deletions
