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

fix(libtor): prevent metrics port conflict #6125

Merged

Conversation

sdbondi
Copy link
Member

@sdbondi sdbondi commented Feb 6, 2024

Description

Prevent conflict with metrics port when starting multiple nodes using libtor
Run tor in background without an unnecessary task spawn
Write the control port to a file (not used in the node implementation)
Support for tor auto assigning it's own ports

Motivation and Context

Set metrics port to 0 (os -assigned) so that multiple libtor instances do not conflict
Previously we'd wait on a shutdown signal in an async function, but tor runs in the background in an OS thread and waiting on a shutdown does nothing other than keep a task open in memory.

We could experience issues binding and dropping a listener quickly on some platforms. It would be better for tor to assign its own port however we could implement that if this is ever an issue, until then this code just makes us aware of that option.

How Has This Been Tested?

Running two base nodes and a wallet with libtor enabled on each

What process can a PR reviewer use to test or verify this change?

Breaking Changes

  • None
  • Requires data directory on base node to be deleted
  • Requires hard fork
  • Other - Please specify

Copy link
Collaborator

@SWvheerden SWvheerden left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@ghpbot-tari-project ghpbot-tari-project added the P-acks_required Process - Requires more ACKs or utACKs label Feb 6, 2024
Copy link

github-actions bot commented Feb 6, 2024

Test Results (CI)

1 270 tests   1 270 ✅  11m 53s ⏱️
   39 suites      0 💤
    1 files        0 ❌

Results for commit a92767a.

Copy link

github-actions bot commented Feb 6, 2024

Test Results (Integration tests)

29 tests   29 ✅  11m 58s ⏱️
11 suites   0 💤
 2 files     0 ❌

Results for commit a92767a.

@SWvheerden SWvheerden merged commit 661af51 into tari-project:development Feb 6, 2024
19 of 21 checks passed
@sdbondi sdbondi deleted the libtor-fix-port-conflict branch February 6, 2024 08:09
sdbondi added a commit to sdbondi/tari that referenced this pull request Feb 15, 2024
* development: (120 commits)
  chore: use log4rs 1.3 (tari-project#6148)
  fix: balanced binary merkle tree merged proof (tari-project#6144)
  chore(deps): bump libgit2-sys from 0.16.1+1.7.1 to 0.16.2+1.7.2 (tari-project#6145)
  feat: allow ffi to see lock height (tari-project#6140)
  chore(ci): add metrics targeted build, remove miner artifacts, misc clean ups (tari-project#6141)
  chore: suppress error (tari-project#6137)
  chore: fix versions to correct version (tari-project#6135)
  chore: add stringhandler gpg (tari-project#6134)
  chore: add pgp public key (tari-project#6139)
  feat: turn off node metrics by default (tari-project#6073)
  feat: add import tx method (tari-project#6132)
  chore: update pgp public key (tari-project#6129)
  chore: new testnet release (tari-project#6127)
  chore: update pgp key (tari-project#6128)
  fix(libtor): prevent metrics port conflict (tari-project#6125)
  fix(comms): correctly initialize hidden service (tari-project#6124)
  chore: make MAC equality check more idiomatic (tari-project#6123)
  chore: new release (tari-project#6120)
  fix: restart tx fix (tari-project#6119)
  chore: suppress warn log (tari-project#6118)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P-acks_required Process - Requires more ACKs or utACKs
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants