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

Decouple authenticator and socket creation #542

Merged
merged 1 commit into from
Apr 15, 2024

Conversation

ankona
Copy link
Contributor

@ankona ankona commented Apr 9, 2024

  1. ZMQ authenticators appear to have clashing inproc addresses when using the zmq.Context.instance() factory method. Replaced as needed.
  2. Updated underlying Dragon library version, which included a breaking changing causing the swap from TemplateProcess to ProcessTemplate
  3. Fixed incomplete permission set on curve key files

@ankona ankona marked this pull request as ready for review April 9, 2024 21:24
@ankona ankona requested a review from al-rigazzi April 9, 2024 21:24
@ankona ankona requested a review from MattToast April 11, 2024 17:13
Copy link

codecov bot commented Apr 13, 2024

Codecov Report

Attention: Patch coverage is 23.71134% with 74 lines in your changes are missing coverage. Please review.

❗ No coverage uploaded for pull request base (dragon_launcher@547e20a). Click here to learn what that means.

❗ Current head ba0a0e5 differs from pull request most recent head d8df7a6. Consider uploading reports for the commit d8df7a6 to get more accurate results

Additional details and impacted files

Impacted file tree graph

@@                Coverage Diff                 @@
##             dragon_launcher     #542   +/-   ##
==================================================
  Coverage                   ?   63.66%           
==================================================
  Files                      ?       75           
  Lines                      ?     5403           
  Branches                   ?        0           
==================================================
  Hits                       ?     3440           
  Misses                     ?     1963           
  Partials                   ?        0           
Files Coverage Δ
smartsim/_core/control/job.py 90.00% <100.00%> (ø)
smartsim/_core/launcher/launcher.py 100.00% <100.00%> (ø)
smartsim/_core/utils/telemetry/manifest.py 93.02% <100.00%> (ø)
smartsim/_core/launcher/dragon/dragonBackend.py 0.00% <0.00%> (ø)
smartsim/_core/launcher/dragon/dragonSockets.py 32.50% <16.66%> (ø)
smartsim/_core/utils/telemetry/telemetry.py 77.51% <0.00%> (ø)
smartsim/_core/utils/security.py 41.73% <28.00%> (ø)
smartsim/_core/launcher/dragon/dragonLauncher.py 25.56% <9.09%> (ø)

Copy link
Member

@MattToast MattToast left a comment

Choose a reason for hiding this comment

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

Throwing some initial feedback your way! In general I think the authenticator changes look good, but I noticed that this PR was also making some changes along side the launchers and the telemetry monitor that didn't look strictly related. Is there anyway we can break them out into their own PRs in case we need to roll one back?

smartsim/_core/launcher/dragon/dragonLauncher.py Outdated Show resolved Hide resolved
smartsim/_core/launcher/dragon/dragonLauncher.py Outdated Show resolved Hide resolved
smartsim/_core/launcher/launcher.py Outdated Show resolved Hide resolved
Comment on lines 232 to 248
runs = [Run.load_run(raw_run, exp_dir) for raw_run in runs]
runs = [Run.load_run(raw_run, exp_dir, manifest_dict) for raw_run in runs]
Copy link
Member

Choose a reason for hiding this comment

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

I'm not sure how I feel about shallow copying runs and exp_dir out of manifest_dict but then passing manifest_dict around the everywhere alongside the copied data. Can we just pass around the manifest_dict instead??

Copy link
Contributor Author

@ankona ankona Apr 15, 2024

Choose a reason for hiding this comment

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

I wanted to give the deserialization the object it was working on but also let it see higher level context info when it needed to do something wacky, like change behavior if it's a dragon launcher. I didn't like sending is_dragon all the way down, nor do I like the idea of having to add a launcher: str param, then another later, etc...

I think I like switching to passing only the experiment. That achieves my goal but avoids passing the entire manifest around. What do you think of that?

Copy link
Member

Choose a reason for hiding this comment

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

That makes sense to me, and resolves my "multiple parameters pointing to same data" complaint! Totally in favor!!

smartsim/_core/utils/telemetry/telemetry.py Outdated Show resolved Hide resolved
tests/test_dragon_launcher.py Show resolved Hide resolved
tests/test_dragon_launcher.py Show resolved Hide resolved
tests/test_dragon_launcher.py Show resolved Hide resolved
Copy link
Member

@MattToast MattToast left a comment

Choose a reason for hiding this comment

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

LGTM pending tests!! Thanks for cleaning this up!!

Copy link
Collaborator

@al-rigazzi al-rigazzi left a comment

Choose a reason for hiding this comment

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

L
G
T
M

@ankona ankona merged commit 7f6ecbe into CrayLabs:dragon_launcher Apr 15, 2024
33 checks passed
@amandarichardsonn amandarichardsonn added bug: minor A minor bug area: CI/CD Issues related to continuous integration and deployment area: Dragon and removed area: CI/CD Issues related to continuous integration and deployment labels Apr 25, 2024
@ankona ankona deleted the auth-fix3 branch June 3, 2024 21:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants