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

Conversation

majestrate
Copy link
Contributor

v0.9.8

windows is broken in this tag this release is for linux only (both clients and service nodes)

  • fix long uptime cpu usage leak on service nodes
  • fix excessive network jitter
  • fix issue with service node testing algorithm
  • redo ci pipeline docker images

majestrate and others added 30 commits October 22, 2021 15:53
The base image can get out of date.
Add python packages to ci images
Installs just the base tools (which are quite substantial), but not the
deps (which get installed as part of the build).
Shows statuses that "fill in" when run interactively.
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.
…-10-22

check for intersecting ip ranges correctly, add unit test
Generate CI images with much DRY-er Python dockerfile generating script
…021-10-29

exclude fully failed nodes from service node testing list
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
If full happens we are going to trigger a bunch of flushes which
probably isn't very useful, so drop instead.
- Modernize some iterator loops
- Simplify a couple places by using `if (init; ...)`
- Replace various std::binds with lambdas
jagerman and others added 24 commits November 15, 2021 13:37
In testing we were sometimes hitting a full queue error, which makes
sense because the queue size seems really small.

Increase it to 512.
- 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.
This has to happen before pumping links because it is putting things on
links.
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).
- 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.
This test isn't very useful, but also broken with the other changes on
this branch.
…11-09

make PumpLL idempotent to reduce cpu use a bit
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.
Avoid std::function in hot pump code
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.
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.
…otstrap-2021-11-16

disable lokinet-bootstrap in static linux ci pipeline
@jagerman
Copy link
Member

Would like to see a fix for the introset spamming bug we're seeing as well before pushing out.

@majestrate majestrate merged commit ad201a4 into stable Nov 16, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants