[tor-bugs] #24857 [Core Tor/Tor]: tor 0.3.1.9 100% cpu load

Tor Bug Tracker & Wiki blackhole at torproject.org
Sat May 19 11:41:55 UTC 2018


#24857: tor 0.3.1.9 100% cpu load
-------------------------------------------------+-------------------------
 Reporter:  Eugene646                            |          Owner:  (none)
     Type:  defect                               |         Status:  new
 Priority:  Medium                               |      Milestone:  Tor:
                                                 |  0.3.4.x-final
Component:  Core Tor/Tor                         |        Version:  Tor:
                                                 |  0.3.1.9
 Severity:  Normal                               |     Resolution:
 Keywords:  cpu, windows, linux, performance,    |  Actual Points:
  regression, 033-triage-20180326,               |
  033-removed-20180326                           |
Parent ID:                                       |         Points:
 Reviewer:                                       |        Sponsor:
-------------------------------------------------+-------------------------

Comment (by cypherpunks):

 > cypherpunks' comments are wrong about this bug
 Something like this:
 {{{
 -    consensus_diff_queue_diff_work(c, most_recent);
 +    if (consensus_diff_queue_diff_work(c, most_recent)) {
 +      // We encountered an error (temporary?)
 +      unsigned u;
 +      for (u = 0; u < n_diff_compression_methods(); ++u) {
 +        compress_method_t method = compress_diffs_with[u];
 +        cdm_diff_ht_set_status(flavor, this_sha3, most_recent_sha3,
 +                               method, CDM_DIFF_ERROR, NULL);
 +      }
 +    }
 }}}

 Plus something like this:
 {{{
 /**
  * Periodic (30m or something). Remove from the hash table entry
  * with (temporary?) error status.
  */
 void
 cdm_diff_ht_cleanup(void)
 {
   cdm_diff_t **diff, **next;
   for (diff = HT_START(cdm_diff_ht, &cdm_diff_ht); diff; diff = next) {
     cdm_diff_t *this = *diff;

     if ((*diff)->cdm_diff_status == CDM_DIFF_ERROR) {
       next = HT_NEXT_RMV(cdm_diff_ht, &cdm_diff_ht, diff);
       cdm_diff_free(this);
       continue;
     }
     next = HT_NEXT(cdm_diff_ht, &cdm_diff_ht, diff);
   }
 }
 }}}
 Replace CDM_DIFF_ERROR by (new) CDM_DIFF_TEMP_ERROR maybe?

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/24857#comment:23>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list