Pipeline still accessing PSIStore after leaving call (PSIBot)
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 574
- Forks
- 104
- Avg merge
- 19m
- Merged PRs (30d)
- 1
Description
I've been using PSIbot to join a teams call and record meeting audio and video to a PsiStore. After the call has been ended (but while the bot is still running), I need to do things with the PsiStores created. However, even after the call has ended (and the pipeline seemingly disposed of) the stores are still being accessed by the program, and any attempt to access the file ends up throwing an IOException with message "The process cannot access the file "....Catalog_000000.psi" because it is being used by another process." It's also very easy to see that the files are being accessed when the bot isn't in a call with Process Explorer, which also indicates that it moves on from the previous store when the bot joins a new call. What can I do to ensure the file isn't being accessed by the stream any more after leaving the call? I've tried:
- Disposing of the exporter in CallHandler's PipelineCompleted event handler (throws a NullReferenceException)
- Making exporter a property of CallHandler, and disposing of it in CallHandler's dispose method (also throws a NullReferenceException)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in Samples/PublicSamples/PsiBot and trace CallHandler's PipelineCompleted event, exporter lifetime, and disposal path. Reproduce the post-call file lock and determine how the pipeline and exporter are released; done means the PsiStore file is no longer accessed after leaving the call without a NullReferenceException.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- audio-video-rtc, stream-processing
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 39/100