Rearrange and lengthen the watchdog delay
authorPaul J. Davis <paul.joseph.davis@gmail.com>
Tue, 18 Jun 2013 17:14:17 +0000 (12:14 -0500)
committerRobert Newson <rnewson@apache.org>
Wed, 30 Jul 2014 16:49:19 +0000 (17:49 +0100)
commit707997e37db11aa8194b00c0a432e49c7071b1f2
treee4bf08a1161a2a6cbf8b58a7d127cbfab12f1d7c
parentde231715e270d685389e0e8e79eed2715bc1e61c
Rearrange and lengthen the watchdog delay

I did not completely comprehend that code upgrades are not atomic for
all code. This watchdog ended up causing a node reboot into an unusable
state because it killed couch_db_update_notifier handlers before the new
code was installed for each app.

This lead to mem3 quickly cycling trying to use couch_db_update_notifier
which eventually took down the mem3 app which took down the node. Then
the node would reboot into 1202 after databases had upgraded their
headers which prevented the node from booting correctly.

By extending the timeout to five minutes and placing it before the first
call to terminating couch_db_update I hope to give the release enough
time to complete before telling each handler to upgrade.
src/couch_event_server.erl