1. 19 Nov, 2015 4 commits
    • Felix Lange's avatar
      eth/downloader: run tests in parallel · dd09af27
      Felix Lange authored
      dd09af27
    • Felix Lange's avatar
      eth/downloader: also drain stateCh, receiptCh in eth/61 mode · b7b62d4b
      Felix Lange authored
      State and receipt deliveries from a previous eth/62+ sync can hang if
      the downloader has moved on to syncing with eth/61. Fix this by also
      draining the eth/63 channels while waiting for eth/61 data.
      
      A nicer solution would be to take care of the channels in a central
      place, but that would involve a major rewrite.
      b7b62d4b
    • Felix Lange's avatar
    • Felix Lange's avatar
      eth/downloader: don't hang for spurious deliveries · 900da3d8
      Felix Lange authored
      Unexpected deliveries could block indefinitely if they arrived at the
      right time. The fix is to ensure that the cancellation channel is
      always closed when the sync ends, unblocking any deliveries. Also remove
      the atomic check for whether a sync is currently running because it
      doesn't help and can be misleading.
      
      Cancelling always seems to break the tests though. The downloader
      spawned d.process whenever new data arrived, making it somewhat hard to
      track when block processing was actually done. Fix this by running
      d.process in a dedicated goroutine that is tied to the lifecycle of the
      sync. d.process gets notified of new work by the queue instead of being
      invoked all the time. This removes a ton of weird workaround code,
      including a hairy use of atomic CAS.
      900da3d8
  2. 11 Nov, 2015 1 commit
  3. 10 Nov, 2015 1 commit
  4. 06 Nov, 2015 2 commits
  5. 05 Nov, 2015 12 commits
  6. 04 Nov, 2015 3 commits
  7. 03 Nov, 2015 5 commits
  8. 31 Oct, 2015 2 commits
  9. 30 Oct, 2015 4 commits
  10. 29 Oct, 2015 6 commits