Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v0.9.8 #1800

Merged
merged 62 commits into from
Nov 16, 2021
Merged

v0.9.8 #1800

merged 62 commits into from
Nov 16, 2021

Commits on Oct 22, 2021

  1. Configuration menu
    Copy the full SHA
    6c70022 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    78e829a View commit details
    Browse the repository at this point in the history
  3. Make sure we apt-get update in the build

    The base image can get out of date.
    jagerman committed Oct 22, 2021
    Configuration menu
    Copy the full SHA
    c741066 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    f3bac4a View commit details
    Browse the repository at this point in the history
  5. Merge pull request #1779 from jagerman/ci-python-deps

    Add python packages to ci images
    jagerman committed Oct 22, 2021
    Configuration menu
    Copy the full SHA
    808c2df View commit details
    Browse the repository at this point in the history

Commits on Oct 25, 2021

  1. Configuration menu
    Copy the full SHA
    b5f5d07 View commit details
    Browse the repository at this point in the history

Commits on Oct 26, 2021

  1. Add a bunch of base CI images for building debs

    Installs just the base tools (which are quite substantial), but not the
    deps (which get installed as part of the build).
    jagerman committed Oct 26, 2021
    Configuration menu
    Copy the full SHA
    cbbee59 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1c4332a View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    9b7ec7d View commit details
    Browse the repository at this point in the history
  4. Parallelize builds

    jagerman committed Oct 26, 2021
    Configuration menu
    Copy the full SHA
    2064ca0 View commit details
    Browse the repository at this point in the history
  5. Make it snazzy

    Shows statuses that "fill in" when run interactively.
    jagerman committed Oct 26, 2021
    Configuration menu
    Copy the full SHA
    09e97ee View commit details
    Browse the repository at this point in the history
  6. Fix i386 builds

    jagerman committed Oct 26, 2021
    Configuration menu
    Copy the full SHA
    0572713 View commit details
    Browse the repository at this point in the history
  7. Add hacks; add --distro to rebuild just one

    Bionic is broken and needs a hack to create some dumb pgm include
    directory.
    
    Add --distro cli argument so that you can rebuild just one distro.
    jagerman committed Oct 26, 2021
    Configuration menu
    Copy the full SHA
    0b4c56d View commit details
    Browse the repository at this point in the history

Commits on Oct 27, 2021

  1. Merge pull request #1781 from majestrate/bump-static-deps-2021-10-25

    bump libunbound static dep hashpin
    jagerman committed Oct 27, 2021
    Configuration menu
    Copy the full SHA
    52f8273 View commit details
    Browse the repository at this point in the history

Commits on Oct 28, 2021

  1. Merge pull request #1778 from majestrate/net-range-detection-bug-2021…

    …-10-22
    
    check for intersecting ip ranges correctly, add unit test
    jagerman committed Oct 28, 2021
    Configuration menu
    Copy the full SHA
    fd81ee7 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    cd49031 View commit details
    Browse the repository at this point in the history
  3. Install g++-8 on bionic

    jagerman committed Oct 28, 2021
    Configuration menu
    Copy the full SHA
    e6622c1 View commit details
    Browse the repository at this point in the history
  4. Merge pull request #1784 from jagerman/deb-docker-images

    Generate CI images with much DRY-er Python dockerfile generating script
    majestrate committed Oct 28, 2021
    Configuration menu
    Copy the full SHA
    60c1b69 View commit details
    Browse the repository at this point in the history

Commits on Oct 29, 2021

  1. do not requeue nodes for testing from failing queue if we do not have…

    … them marked as failing anymore
    majestrate committed Oct 29, 2021
    Configuration menu
    Copy the full SHA
    fcba709 View commit details
    Browse the repository at this point in the history
  2. Fix comment typo

    jagerman committed Oct 29, 2021
    Configuration menu
    Copy the full SHA
    0ec50e6 View commit details
    Browse the repository at this point in the history
  3. Merge pull request #1791 from majestrate/exclude-failing-from-queue-2…

    …021-10-29
    
    exclude fully failed nodes from service node testing list
    jagerman committed Oct 29, 2021
    Configuration menu
    Copy the full SHA
    1ddfb74 View commit details
    Browse the repository at this point in the history

Commits on Nov 9, 2021

  1. Configuration menu
    Copy the full SHA
    22d4b88 View commit details
    Browse the repository at this point in the history

Commits on Nov 14, 2021

  1. prevent 100% cpu usage on service nodes

    call_soon wakes up the mainloop and is often reentrant, we dont want to
    ever way up the event loop but we also want to always defer the call so
    we always use the workers
    majestrate authored and jagerman committed Nov 14, 2021
    Configuration menu
    Copy the full SHA
    8744c93 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    bb86996 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    8a9025e View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    faf95cb View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    633431b View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    cf5c4e7 View commit details
    Browse the repository at this point in the history
  7. transit hop: drop instead of flushing when full

    If full happens we are going to trigger a bunch of flushes which
    probably isn't very useful, so drop instead.
    jagerman committed Nov 14, 2021
    Configuration menu
    Copy the full SHA
    41807f1 View commit details
    Browse the repository at this point in the history
  8. Simplifications & C++17

    - Modernize some iterator loops
    - Simplify a couple places by using `if (init; ...)`
    - Replace various std::binds with lambdas
    jagerman committed Nov 14, 2021
    Configuration menu
    Copy the full SHA
    bfc6d35 View commit details
    Browse the repository at this point in the history

Commits on Nov 15, 2021

  1. Triggered pumping

    This redoes how/when we pump so that we should only be calling the
    idempotent PumpLL() when we actually have (or may have) something to
    pump.
    jagerman committed Nov 15, 2021
    Configuration menu
    Copy the full SHA
    9113a6b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b03f3c2 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    362fda5 View commit details
    Browse the repository at this point in the history
  4. Simplify

    jagerman committed Nov 15, 2021
    Configuration menu
    Copy the full SHA
    aa1dc83 View commit details
    Browse the repository at this point in the history
  5. Fix link layer delivery race condition (fix random ping delays)

    We trigger a pump immediately, but this is racey because we add to our
    plaintext data in a worker thread; if the worker thread runs after the
    pump then it ends up leaving plaintext to be handled, but there's no
    wakeup until the next one.
    
    This was the cause of seeing a random +1s and bunching added to ping
    responses sometimes: it wasn't until the *next* ping goes through the
    network that the plaintext queue gets processed, at which point it
    flushes the old one and often the new one together.
    
    The fix here gets rid of the map of sessions needing wakeups and instead
    adds an atomic flag to all of them to let us figure out which ones
    need to be flushed.
    jagerman committed Nov 15, 2021
    Configuration menu
    Copy the full SHA
    74215fc View commit details
    Browse the repository at this point in the history
  6. Get rid of external event loop direct wakeups

    If something needs to wake up the event loop it should be using an
    async, as we are now with PumpLL(); but we had various code triggering a
    wakeup, expecting that PumpLL gets called on every wakeup, which isn't
    true anymore.
    jagerman committed Nov 15, 2021
    Configuration menu
    Copy the full SHA
    031ea7a View commit details
    Browse the repository at this point in the history
  7. Rename PumpLL -> TriggerPump

    And rename the actual pump implementation back to PumpLL.
    jagerman committed Nov 15, 2021
    Configuration menu
    Copy the full SHA
    78cc466 View commit details
    Browse the repository at this point in the history
  8. Increase plaintext queue size from 32 to 512

    In testing we were sometimes hitting a full queue error, which makes
    sense because the queue size seems really small.
    
    Increase it to 512.
    jagerman committed Nov 15, 2021
    Configuration menu
    Copy the full SHA
    e47d309 View commit details
    Browse the repository at this point in the history
  9. Cleanups

    jagerman committed Nov 15, 2021
    Configuration menu
    Copy the full SHA
    99b1294 View commit details
    Browse the repository at this point in the history
  10. Fix packet delay creep

    - Make the main PumpLL also pump hidden services, rather than using
      separate wakers in each TunEndpoint.  It seems there is some
      interactions that just one or the other is not enough.
    
    - Eliminate TunEndpoint send queue -- it isn't needed as we can just
      send directly.
    jagerman committed Nov 15, 2021
    Configuration menu
    Copy the full SHA
    9844d35 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    f9395cd View commit details
    Browse the repository at this point in the history
  12. Remove dead declaration

    jagerman committed Nov 15, 2021
    Configuration menu
    Copy the full SHA
    0924dd8 View commit details
    Browse the repository at this point in the history
  13. Pump hidden context sooner

    This has to happen before pumping links because it is putting things on
    links.
    jagerman committed Nov 15, 2021
    Configuration menu
    Copy the full SHA
    b3a8160 View commit details
    Browse the repository at this point in the history
  14. Simplify

    jagerman committed Nov 15, 2021
    Configuration menu
    Copy the full SHA
    8cdde74 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    846577a View commit details
    Browse the repository at this point in the history
  16. Pump outbound context

    jagerman committed Nov 15, 2021
    Configuration menu
    Copy the full SHA
    bce7e2e View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    fbc5cb0 View commit details
    Browse the repository at this point in the history
  18. Remove hopeless flush

    The TriggerPump just below this is *already* going to trigger a flush,
    so the extra flush call here can't do anything useful (and in
    particular, it won't clear up the queue *immediately*, which is what
    this code looks like it was aimed at doing).
    jagerman committed Nov 15, 2021
    Configuration menu
    Copy the full SHA
    70553c7 View commit details
    Browse the repository at this point in the history
  19. Fix client latency bug; De-shared_ptr IHopHandler queues

    - Replace m_FlushWakeup with a call to the router's god mode pump
      method.  m_FlushWakeup apparently isn't enough to get things out, and
      we can end up with incoming packets that don't get properly handled
      right away without it.
    
    - The shared_ptr around the ihophandler queues isn't needed and is just
      adding a layer of obfuscation; instead just exchange the list directly
      into the lambda.
    
    - Use std::exchange rather than swap
    
    - A couple other small code cleanups.
    jagerman committed Nov 15, 2021
    Configuration menu
    Copy the full SHA
    0fe7153 View commit details
    Browse the repository at this point in the history
  20. Remove broken test

    This test isn't very useful, but also broken with the other changes on
    this branch.
    jagerman committed Nov 15, 2021
    Configuration menu
    Copy the full SHA
    f63fff3 View commit details
    Browse the repository at this point in the history
  21. Remove debug comment

    jagerman committed Nov 15, 2021
    Configuration menu
    Copy the full SHA
    711038d View commit details
    Browse the repository at this point in the history
  22. Abstract & simplify logic

    jagerman committed Nov 15, 2021
    Configuration menu
    Copy the full SHA
    687b54f View commit details
    Browse the repository at this point in the history
  23. Configuration menu
    Copy the full SHA
    09c2b31 View commit details
    Browse the repository at this point in the history
  24. Merge pull request #1795 from majestrate/try-reducing-cpu-usage-2021-…

    …11-09
    
    make PumpLL idempotent to reduce cpu use a bit
    jagerman committed Nov 15, 2021
    Configuration menu
    Copy the full SHA
    f270d74 View commit details
    Browse the repository at this point in the history
  25. Avoid std::function in hot pump code

    We're seeing overhead here of the std::function invocation, which we can
    easily avoid in this case by not using a std::function around the
    callback.
    jagerman committed Nov 15, 2021
    Configuration menu
    Copy the full SHA
    7a04911 View commit details
    Browse the repository at this point in the history
  26. Merge pull request #1796 from jagerman/hotloop-optimization

    Avoid std::function in hot pump code
    majestrate committed Nov 15, 2021
    Configuration menu
    Copy the full SHA
    3fc172f View commit details
    Browse the repository at this point in the history
  27. Optimization: eliminate unneeded shared_ptrs

    We have a few cases where we're making an extra shared_ptr which we copy
    into a lambda, which then results in an extra unnecessary refcount
    decrement in the parent; this changes them to give an rvalue reference
    to the lambda to avoid the extra incr/decr instead.
    
    The one in Session::Pump is particularly noticeable and shows up in
    profiling.
    jagerman committed Nov 15, 2021
    Configuration menu
    Copy the full SHA
    b2ee003 View commit details
    Browse the repository at this point in the history
  28. Use libuv's cached current time for time_now()

    We are calling time_now() a huge amount, and it is a major consumer of
    CPU cycles, but we don't need it: most of the time the current event
    loop time is enough.
    jagerman committed Nov 15, 2021
    Configuration menu
    Copy the full SHA
    5115162 View commit details
    Browse the repository at this point in the history

Commits on Nov 16, 2021

  1. Merge pull request #1797 from jagerman/random-optimizations

    Random optimizations
    majestrate committed Nov 16, 2021
    Configuration menu
    Copy the full SHA
    b95e53d View commit details
    Browse the repository at this point in the history
  2. in static linux ci pipeline disable building lokinet-bootstrap and bu…

    …ndle a bootstrap.signed
    majestrate committed Nov 16, 2021
    Configuration menu
    Copy the full SHA
    e7d2829 View commit details
    Browse the repository at this point in the history
  3. Merge pull request #1799 from majestrate/static-ci-disable-lokinet-bo…

    …otstrap-2021-11-16
    
    disable lokinet-bootstrap in static linux ci pipeline
    majestrate committed Nov 16, 2021
    Configuration menu
    Copy the full SHA
    e4514ae View commit details
    Browse the repository at this point in the history
  4. Bump version

    jagerman committed Nov 16, 2021
    Configuration menu
    Copy the full SHA
    d24f891 View commit details
    Browse the repository at this point in the history