[metrics-bugs] #24824 [Metrics/Website]: Either sleep() or wait() in a synchronized block
    Tor Bug Tracker & Wiki 
    blackhole at torproject.org
       
    Mon Jan  8 10:28:56 UTC 2018
    
    
  
#24824: Either sleep() or wait() in a synchronized block
---------------------------------+--------------------------
     Reporter:  karsten          |      Owner:  metrics-team
         Type:  defect           |     Status:  new
     Priority:  Medium           |  Milestone:
    Component:  Metrics/Website  |    Version:
     Severity:  Normal           |   Keywords:
Actual Points:                   |  Parent ID:
       Points:                   |   Reviewer:
      Sponsor:                   |
---------------------------------+--------------------------
 While looking into #24792, I found that we're calling `this.wait()`
 [https://gitweb.torproject.org/metrics-
 web.git/tree/src/main/java/org/torproject/metrics/web/CollectorDirectoryProvider.java#n43
 here] without being in a synchronized method or block. That gets us a
 `IllegalMonitorStateException`. The only reason why we never ran into one
 of those (or never noticed?) is that most clients first open
 `/collector.html` which triggers an `index.json` file download in the
 background before opening actual directory listing pages.
 We should fix this. Two options: use `Thread.sleep()` instead of
 `this.wait()`, or wrap `this.wait()` inside `synchronized` possibly even
 combined with `this.notifyAll()`. I'd say let's do the latter. I'm
 attaching a quickly tested branch in a second.
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/24824>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
    
    
More information about the metrics-bugs
mailing list