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

fix(recording): Handle the problem gracefully when the recording can … #12308

Merged
merged 1 commit into from
May 23, 2024

Conversation

nickvergessen
Copy link
Member

…not be uploaded

☑️ Resolves

🛠️ API Checklist

🏁 Checklist

  • ⛑️ Tests (unit and/or integration) are included or not possible
  • 📘 API documentation in docs/ has been updated or is not required
  • 🔖 Capability is added or not needed

@nickvergessen nickvergessen added 3. to review bug feature: api 🛠️ OCS API for conversations, chats and participants feature: recordings ⏺️ Including the recording server labels May 8, 2024
@nickvergessen nickvergessen added this to the 💙 Next Major (30) milestone May 8, 2024
@nickvergessen nickvergessen self-assigned this May 8, 2024
…not be uploaded

Signed-off-by: Joas Schilling <coding@schilljs.com>
@nickvergessen nickvergessen force-pushed the bugfix/9905/handle-broken-recording-store branch from 663e0ec to 9074720 Compare May 10, 2024 10:32
@nickvergessen
Copy link
Member Author

/backport to stable29

Copy link
Member

@danxuliu danxuliu left a comment

Choose a reason for hiding this comment

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

Tested and works 👍

Note that if the recording is larger than post_max_size currently there will be three notifications, because the recording server retries the request three times. If upload_max_filesizeis exceeded, on the other hand, there will be a single notification, even if the request is retried three times anyway.

The reason is that with the changes in this pull request the owner is stored in the app config when starting the recording, and deleted when storing it. If the owner is not received in the store request the store fails, and the owner is got from the app config and a notification is sent to that user. However, if the owner is not found in the app config (because the recording was already stored) no notification will be sent.

In the case of post_max_size the store always fails, so the owner is not cleared from the app config, and the notification is always sent. With upload_max_filesize the store is started, so the owner is deleted, but it later fails. When the new requests are sent it seems that they are now empty (most likely a bug in how the recording server handles the streaming upload in retries), so the owner is not given in the store request and the store fails, but as the owner was already deleted from the app config no notification is sent.

It would make sense to also delete the owner from the app config as soon as a notification is sent, but that might have other unexpected behaviours, so something for a follow up.

@danxuliu danxuliu merged commit 87210db into main May 23, 2024
64 checks passed
@danxuliu danxuliu deleted the bugfix/9905/handle-broken-recording-store branch May 23, 2024 12:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3. to review bug feature: api 🛠️ OCS API for conversations, chats and participants feature: recordings ⏺️ Including the recording server
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Recording upload failed due to missing user
2 participants