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

Resolve Race Conditions #4074

Closed
4 tasks
salmad3 opened this issue Apr 8, 2024 · 1 comment · Fixed by #4091
Closed
4 tasks

Resolve Race Conditions #4074

salmad3 opened this issue Apr 8, 2024 · 1 comment · Fixed by #4091
Assignees
Labels
type:bug Something isn't working type:refactor

Comments

@salmad3
Copy link
Member

salmad3 commented Apr 8, 2024

Context:

During automated testing with the Go race detector enabled, we've identified various race conditions resulting from concurrent access by multiple goroutines in the plugin system.

Follows #4060

Acceptance Criteria:

  • Related functions can be executed concurrently by multiple goroutines without causing race conditions. This could involve implementing locks or other synchronization techniques around shared resource accesses
  • Verify that executing pre-hooks and post-hooks in parallel scenarios does not lead to race conditions.
  • All unit and integration tests related to the plugin system must pass consistently without triggering race condition warnings under the -race flag.
  • Benchmark tests should confirm that the fixes for race conditions do not adversely affect the performance of the plugin system

Expected Outcomes:

The CLI must correctly handle concurrent plugin operations, such as simultaneous plugin loading, execution, and unloading, without leading to race conditions or inconsistent states.

Notes:

A contributor with more experience in Go concurrency should refine this issue.

@faddat
Copy link
Contributor

faddat commented May 19, 2024

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type:bug Something isn't working type:refactor
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

3 participants