Make CreateWithRemoteFilesOrderedMembersActor thread safe #3477
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary: Prevents instance variable collisions in the
CreateWithRemoteFilesOrderedMembersActor
Detailed Description: Since
ActionDispatch::MiddlewareStack
reuses specific middlewares from a pool at runtime, individual middlewares (such as actors) should not count on having mutable instance variables. In this case, that manifested through the@ordered_members
accumulator on theCreateWithRemoteFilesOrderedMembersActor
actor, which ended up with a jumble of unrelated file sets under heavy ingest load (such as a batch ingest operation).Changes proposed in this pull request:
store
andretrieve
methods to the environment that gets passed around among actors.CreateWithRemoteFilesOrderedMembersActor
actor.Guidance for testing, such as acceptance criteria or new user interface behaviors:
@samvera/hyrax-code-reviewers