microsoft / microsoft/psi

Pipeline still accessing PSIStore after leaving call (PSIBot)

Open
#318 1 comment 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.