Loading changes/bug24975deleted 100644 → 0 +0 −6 Original line number Diff line number Diff line 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 change from one consensus to another. Fixes bug 24975; bugfix on 0.3.2.1-alpha. src/or/networkstatus.c +4 −12 Original line number Diff line number Diff line Loading @@ -1564,11 +1564,7 @@ notify_control_networkstatus_changed(const networkstatus_t *old_c, smartlist_free(changed); } /* Called when the consensus has changed from old_c to new_c. * * IMPORTANT: This is called _after_ the new consensus has been set in the * global state so this is safe for anything getting the latest consensus from * that state. */ /* Called when the consensus has changed from old_c to new_c. */ static void notify_networkstatus_changed(const networkstatus_t *old_c, const networkstatus_t *new_c) Loading Loading @@ -1901,6 +1897,9 @@ networkstatus_set_current_consensus(const char *consensus, const int is_usable_flavor = flav == usable_consensus_flavor(); if (is_usable_flavor) { notify_networkstatus_changed(networkstatus_get_latest_consensus(), c); } if (flav == FLAV_NS) { if (current_ns_consensus) { networkstatus_copy_old_consensus_info(c, current_ns_consensus); Loading @@ -1923,13 +1922,6 @@ networkstatus_set_current_consensus(const char *consensus, free_consensus = 0; /* avoid free */ } /* Called _after_ the consensus is set in its global variable so any * functions called from this notification can safely get the latest * consensus being the new one. */ if (is_usable_flavor) { notify_networkstatus_changed(networkstatus_get_latest_consensus(), c); } waiting = &consensus_waiting_for_certs[flav]; if (waiting->consensus && waiting->consensus->valid_after <= c->valid_after) { Loading Loading
changes/bug24975deleted 100644 → 0 +0 −6 Original line number Diff line number Diff line 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 change from one consensus to another. Fixes bug 24975; bugfix on 0.3.2.1-alpha.
src/or/networkstatus.c +4 −12 Original line number Diff line number Diff line Loading @@ -1564,11 +1564,7 @@ notify_control_networkstatus_changed(const networkstatus_t *old_c, smartlist_free(changed); } /* Called when the consensus has changed from old_c to new_c. * * IMPORTANT: This is called _after_ the new consensus has been set in the * global state so this is safe for anything getting the latest consensus from * that state. */ /* Called when the consensus has changed from old_c to new_c. */ static void notify_networkstatus_changed(const networkstatus_t *old_c, const networkstatus_t *new_c) Loading Loading @@ -1901,6 +1897,9 @@ networkstatus_set_current_consensus(const char *consensus, const int is_usable_flavor = flav == usable_consensus_flavor(); if (is_usable_flavor) { notify_networkstatus_changed(networkstatus_get_latest_consensus(), c); } if (flav == FLAV_NS) { if (current_ns_consensus) { networkstatus_copy_old_consensus_info(c, current_ns_consensus); Loading @@ -1923,13 +1922,6 @@ networkstatus_set_current_consensus(const char *consensus, free_consensus = 0; /* avoid free */ } /* Called _after_ the consensus is set in its global variable so any * functions called from this notification can safely get the latest * consensus being the new one. */ if (is_usable_flavor) { notify_networkstatus_changed(networkstatus_get_latest_consensus(), c); } waiting = &consensus_waiting_for_certs[flav]; if (waiting->consensus && waiting->consensus->valid_after <= c->valid_after) { Loading