Commit Graph

10406 Commits

Author SHA1 Message Date
Alexander Færøy
75d12dffe7 Remove BUG() in Windows process read callback.
This BUG() was added when the code was written to see if this callback
was ever executed after we marked the handle as EOF. It turns out, it
does, but we handle it gracefully. We can therefore remove the BUG().

Fixes tpo/core/tor#40596.
2022-11-01 11:11:20 +01:00
David Goulet
c733ccda99 Merge branch 'tor-gitlab/mr/579' 2022-10-31 15:28:36 -04:00
David Goulet
2a838c196d Merge branch 'maint-0.4.7' 2022-10-31 15:00:15 -04:00
David Goulet
3596d193be Merge branch 'tor-gitlab/mr/636' 2022-10-31 14:15:00 -04:00
David Goulet
619dd35321 sandbox: Add my-consensus-<flavor-name> to sandbox for dirauth
Fixese #40663

Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-10-31 11:37:43 -04:00
David Goulet
65a85a9d23 Merge branch 'maint-0.4.7' 2022-10-31 11:21:21 -04:00
David Goulet
19b080f2aa Merge branch 'tor-gitlab/mr/646' 2022-10-28 12:07:51 -04:00
David Goulet
5db238f3e3 thread: Bump max detectable CPU from 16 to 128
Lets take advantage of those beefy machines ;).

Closes #40703

Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-10-28 11:28:43 -04:00
Jeremy Saklad
7e80ad4787
relay: Skip warnings for single onion services
Single onion services are not secret, so there is no added risk from
using accounting or running a relay in the same instance.

Related to #40691
2022-10-28 09:15:14 -05:00
Roger Dingledine
338185d840 resolve a BUG() on relays at startup
Remove a harmless "Bug" log message that can happen in
relay_addr_learn_from_dirauth() on relays during startup:

tor_bug_occurred_(): Bug: ../src/feature/relay/relay_find_addr.c:225: relay_addr_learn_from_dirauth: Non-fatal assertion !(!ei) failed. (on Tor 0.4.7.10 )
Bug: Tor 0.4.7.10: Non-fatal assertion !(!ei) failed in relay_addr_learn_from_dirauth at ../src/feature/relay/relay_find_addr.c:225. Stack trace: (on Tor 0.4.7.10 )

Finishes fixing bug 40231.

Fixes bug 40523; bugfix on 0.4.5.4-rc.
2022-10-27 20:07:48 -04:00
David Goulet
4481c1e609 Merge branch 'maint-0.4.7' 2022-10-27 11:42:10 -04:00
David Goulet
f09b913e18 Merge branch 'tor-gitlab/mr/645' into maint-0.4.7 2022-10-27 11:42:07 -04:00
David Goulet
0918cc2783 Merge branch 'maint-0.4.7' 2022-10-27 11:41:26 -04:00
Mike Perry
b30193416c Changes file for 40683 2022-10-27 15:36:53 +00:00
David Goulet
504a6da5ab changes: Update changes for ticket 40194
Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-10-27 10:50:37 -04:00
David Goulet
dd272b6ef4 Merge remote-tracking branch 'tor-gitlab/mr/638' 2022-10-26 15:12:54 -04:00
David Goulet
609a82a595 changes: Ticket 40694
Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-10-26 15:10:41 -04:00
David Goulet
fb21387882 Merge branch 'tor-gitlab/mr/637' 2022-10-26 15:07:42 -04:00
David Goulet
a7aa22a4e7 hs: Retry rdv circuit if repurposed
This can happen if our measurement subsystem decides to snatch it.

Fixes #40696

Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-10-26 15:05:44 -04:00
David Goulet
ca135a127d Merge branch 'maint-0.4.7' 2022-10-26 15:01:43 -04:00
David Goulet
0a49e04691 Merge branch 'tor-gitlab/mr/635' into maint-0.4.7 2022-10-26 15:01:40 -04:00
David Goulet
a2ee39452a Merge branch 'tor-gitlab/mr/633' 2022-10-26 14:58:21 -04:00
David Goulet
59008c6f51 hs: Change the error for a collapsing client circuit
Change it to an "unreachable" error so the intro point can be retried
and not flagged as a failure and never retried again.

Closes #40692

Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-10-26 14:56:45 -04:00
David Goulet
bb9f2ea8fb Merge branch 'maint-0.4.7' 2022-10-26 14:21:41 -04:00
David Goulet
a317326aae Merge branch 'maint-0.4.5' into maint-0.4.7 2022-10-26 14:21:41 -04:00
David Goulet
7a851e8983 Merge branch 'tor-gitlab/mr/631' into maint-0.4.5 2022-10-26 14:21:35 -04:00
David Goulet
efad436432 dirauth: Remove Faravahar
Closes #40688

Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-10-26 14:20:07 -04:00
David Goulet
4a7824b9ae Merge branch 'maint-0.4.7' 2022-10-26 14:12:51 -04:00
David Goulet
e19cf2dac6 Merge branch 'maint-0.4.5' into maint-0.4.7 2022-10-26 14:12:51 -04:00
David Goulet
b113b08722 Merge branch 'maint-0.4.7' 2022-10-26 14:07:49 -04:00
David Goulet
b20f72943e Merge branch 'tor-gitlab/mr/629' into maint-0.4.7 2022-10-26 14:06:33 -04:00
David Goulet
a2c034d8f5 dos: Apply circuit creation defenses if circ max queue cell reached
This adds two consensus parameters to control the outbound max circuit
queue cell size limit and how many times it is allowed to reach that
limit for a single client IP.

Closes #40680

Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-10-26 14:05:28 -04:00
David Goulet
4ed67fe174 changes: Ticket 40694
Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-10-24 11:14:50 -04:00
David Goulet
6300a9548d hs: Retry rdv circuit if repurposed
This can happen if our measurement subsystem decides to snatch it.

Fixes #40696

Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-10-24 11:03:38 -04:00
Roger Dingledine
bab8375ef5 dir auths now omit Measured= if rs->is_authority
Directory authorities stop voting a consensus "Measured" weight
for relays with the Authority flag. Now these relays will be
considered unmeasured, which should reserve their bandwidth
for their dir auth role and minimize distractions from other roles.

In place of the "Measured" weight, they now include a
"MeasuredButAuthority" weight (not used by anything) so the bandwidth
authority's opinion on this relay can be recorded for posterity.

Resolves ticket 40698.
2022-10-24 04:34:49 -04:00
Roger Dingledine
e6899dcdf4 fix typo in #40673's changes file 2022-10-20 19:46:27 -04:00
David Goulet
8463111c9b hs: Change the error for a collapsing client circuit
Change it to an "unreachable" error so the intro point can be retried
and not flagged as a failure and never retried again.

Closes #40692

Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-10-19 14:41:48 -04:00
David Goulet
938070f5c4 dirauth: Change dizum IP address
Closes #40687

Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-10-18 10:35:54 -04:00
David Goulet
e86833ade6 Merge branch 'maint-0.4.5' into maint-0.4.7 2022-10-14 09:12:23 -04:00
David Goulet
28413e7560 Merge branch 'maint-0.4.7' 2022-10-14 09:12:23 -04:00
Nick Mathewson
e531d4d1b9 Fix a completely wrong calculation in mach monotime_init_internal()
Bug 1: We were purporting to calculate milliseconds per tick, when we
*should* have been computing ticks per millisecond.

Bug 2: Instead of computing either one of those, we were _actually_
computing femtoseconds per tick.

These two bugs covered for one another on x86 hardware, where 1 tick
== 1 nanosecond.  But on M1 OSX, 1 tick is about 41 nanoseconds,
causing surprising results.

Fixes bug 40684; bugfix on 0.3.3.1-alpha.
2022-10-13 13:40:10 -04:00
David Goulet
5080a4ff67 Merge branch 'maint-0.4.7' 2022-10-12 15:52:04 -04:00
David Goulet
d543db5ac0 relay: Add connection stats to MetricsPort
This adds the number of created and opened connections to the
MetricsPort for a relay for each connection type and direction.

Output looks like:

  # HELP tor_relay_connections Connections metrics of this relay
  # TYPE tor_relay_connections counter
  tor_relay_connections{type="OR listener",direction="initiated",state="created"} 0
  tor_relay_connections{type="OR listener",direction="received",state="created"} 0
  tor_relay_connections{type="OR listener",direction="initiated",state="opened"} 0
  tor_relay_connections{type="OR listener",direction="received",state="opened"} 0
  tor_relay_connections{type="OR",direction="initiated",state="created"} 5
  tor_relay_connections{type="OR",direction="received",state="created"} 0
  tor_relay_connections{type="OR",direction="initiated",state="opened"} 5
  tor_relay_connections{type="OR",direction="received",state="opened"} 0
  tor_relay_connections{type="Exit",direction="initiated",state="created"} 0
  tor_relay_connections{type="Exit",direction="received",state="created"} 0
  tor_relay_connections{type="Exit",direction="initiated",state="opened"} 0
  tor_relay_connections{type="Exit",direction="received",state="opened"} 0
  tor_relay_connections{type="Socks listener",direction="initiated",state="created"} 0
  tor_relay_connections{type="Socks listener",direction="received",state="created"} 0
  tor_relay_connections{type="Socks listener",direction="initiated",state="opened"} 0
  tor_relay_connections{type="Socks listener",direction="received",state="opened"} 0
  tor_relay_connections{type="Socks",direction="initiated",state="created"} 0
  tor_relay_connections{type="Socks",direction="received",state="created"} 0
  tor_relay_connections{type="Socks",direction="initiated",state="opened"} 0
  tor_relay_connections{type="Socks",direction="received",state="opened"} 0
  tor_relay_connections{type="Directory listener",direction="initiated",state="created"} 0
  tor_relay_connections{type="Directory listener",direction="received",state="created"} 0
  tor_relay_connections{type="Directory listener",direction="initiated",state="opened"} 0
  tor_relay_connections{type="Directory listener",direction="received",state="opened"} 0
  tor_relay_connections{type="Directory",direction="initiated",state="created"} 0
  tor_relay_connections{type="Directory",direction="received",state="created"} 0
  tor_relay_connections{type="Directory",direction="initiated",state="opened"} 0
  tor_relay_connections{type="Directory",direction="received",state="opened"} 0
  tor_relay_connections{type="Control listener",direction="initiated",state="created"} 0
  tor_relay_connections{type="Control listener",direction="received",state="created"} 0
  tor_relay_connections{type="Control listener",direction="initiated",state="opened"} 0
  tor_relay_connections{type="Control listener",direction="received",state="opened"} 0
  tor_relay_connections{type="Control",direction="initiated",state="created"} 0
  tor_relay_connections{type="Control",direction="received",state="created"} 0
  tor_relay_connections{type="Control",direction="initiated",state="opened"} 0
  tor_relay_connections{type="Control",direction="received",state="opened"} 0
  tor_relay_connections{type="Transparent pf/netfilter listener",direction="initiated",state="created"} 0
  tor_relay_connections{type="Transparent pf/netfilter listener",direction="received",state="created"} 0
  tor_relay_connections{type="Transparent pf/netfilter listener",direction="initiated",state="opened"} 0
  tor_relay_connections{type="Transparent pf/netfilter listener",direction="received",state="opened"} 0
  tor_relay_connections{type="Transparent natd listener",direction="initiated",state="created"} 0
  tor_relay_connections{type="Transparent natd listener",direction="received",state="created"} 0
  tor_relay_connections{type="Transparent natd listener",direction="initiated",state="opened"} 0
  tor_relay_connections{type="Transparent natd listener",direction="received",state="opened"} 0
  tor_relay_connections{type="DNS listener",direction="initiated",state="created"} 0
  tor_relay_connections{type="DNS listener",direction="received",state="created"} 0
  tor_relay_connections{type="DNS listener",direction="initiated",state="opened"} 0
  tor_relay_connections{type="DNS listener",direction="received",state="opened"} 0
  tor_relay_connections{type="Extended OR",direction="initiated",state="created"} 0
  tor_relay_connections{type="Extended OR",direction="received",state="created"} 0
  tor_relay_connections{type="Extended OR",direction="initiated",state="opened"} 0
  tor_relay_connections{type="Extended OR",direction="received",state="opened"} 0
  tor_relay_connections{type="Extended OR listener",direction="initiated",state="created"} 0
  tor_relay_connections{type="Extended OR listener",direction="received",state="created"} 0
  tor_relay_connections{type="Extended OR listener",direction="initiated",state="opened"} 0
  tor_relay_connections{type="Extended OR listener",direction="received",state="opened"} 0
  tor_relay_connections{type="HTTP tunnel listener",direction="initiated",state="created"} 0
  tor_relay_connections{type="HTTP tunnel listener",direction="received",state="created"} 0
  tor_relay_connections{type="HTTP tunnel listener",direction="initiated",state="opened"} 0
  tor_relay_connections{type="HTTP tunnel listener",direction="received",state="opened"} 0
  tor_relay_connections{type="Metrics listener",direction="initiated",state="created"} 0
  tor_relay_connections{type="Metrics listener",direction="received",state="created"} 1
  tor_relay_connections{type="Metrics listener",direction="initiated",state="opened"} 0
  tor_relay_connections{type="Metrics listener",direction="received",state="opened"} 1
  tor_relay_connections{type="Metrics",direction="initiated",state="created"} 0
  tor_relay_connections{type="Metrics",direction="received",state="created"} 0
  tor_relay_connections{type="Metrics",direction="initiated",state="opened"} 0
  tor_relay_connections{type="Metrics",direction="received",state="opened"} 0

Related to #40194

Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-10-12 09:25:19 -04:00
David Goulet
4692cf8688 Merge branch 'maint-0.4.7' 2022-10-11 10:09:37 -04:00
Andy
d09414858e Properly compute cell-drop overload fraction
Patch to address #40673. An additional check has been added to
onion_pending_add() in order to ensure that we avoid counting create
cells from clients.

In the cpuworker.c assign_onionskin_to_cpuworker
method if total_pending_tasks >= max_pending_tasks
and channel_is_client(circ->p_chan) returns false then
rep_hist_note_circuit_handshake_dropped() will be called and
rep_hist_note_circuit_handshake_assigned() will not be called. This
causes relays to run into errors due to the fact that the number of
dropped packets exceeds the total number of assigned packets.

To avoid this situation a check has been added to
onion_pending_add() to ensure that these erroneous calls to
rep_hist_note_circuit_handshake_dropped() are not made.

See the #40673 ticket for the conversation with armadev about this issue.
2022-10-06 00:46:29 -04:00
David Goulet
0cc27ecfdc Merge branch 'maint-0.4.7' 2022-08-12 09:56:54 -04:00
David Goulet
c4ff6a4f55 Merge branch 'maint-0.4.6' into maint-0.4.7 2022-08-12 09:56:54 -04:00
David Goulet
8244eefcd3 Merge branch 'maint-0.4.5' into maint-0.4.6 2022-08-12 09:56:54 -04:00
David Goulet
bb88086c72 geoip: Update geoip files with August 9th, 2022 database
Fixes #40658

Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-08-12 09:56:50 -04:00
David Goulet
c142b59503 Merge branch 'maint-0.4.7' 2022-08-11 09:44:47 -04:00