ns: Add a before and after consensus has changed notification

In 0.3.2.1-alpha, we've added notify_networkstatus_changed() in order to have
a way to notify other subsystems that the consensus just changed. The old and
new consensus are passed to it.

Before this patch, this was done _before_ the new consensus was set globally
(thus NOT accessible by getting the latest consensus). The scheduler
notification was assuming that it was set and select_scheduler() is looking at
the latest consensus to get the parameters it might needs. This was very wrong
because at that point it is still the old consensus set globally.

This commit changes the notify_networkstatus_changed() to be the "before"
function and adds an "after" notification from which the scheduler subsystem
is notified.

Fixes #24975
This commit is contained in:
David Goulet
2018-01-31 14:15:02 -05:00
parent c85f78e74c
commit fbc455cbd2
6 changed files with 46 additions and 33 deletions
+6
View File
@@ -0,0 +1,6 @@
o Major bugfixes (scheduler, consensus):
- A logic in the code was preventing the scheduler subystem to properly
make a decision based on the latest consensus when it arrives. This lead
to the scheduler failing to notice any consensus parameters that might
have changed between consensuses. Fixes bug 24975; bugfix on
0.3.2.1-alpha.