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

Issues with large file (media) transfers. #3890

Open
YamatoRyou opened this issue Nov 19, 2024 · 1 comment
Open

Issues with large file (media) transfers. #3890

YamatoRyou opened this issue Nov 19, 2024 · 1 comment
Labels
T-Enhancement New features, changes in functionality, performance boosts, user-facing improvements

Comments

@YamatoRyou
Copy link

Your use case

This article is a rewrite of #3613 with some new content.

Test environment:

  • Self-hosted Synapse instance, version 1.119.0
  • Client: Element X Android 0.7.3 (F-Droid)
  • Tested with a file of 1.49 GB, which is neither audio nor video.
  • Synapse configuration file homeserver.yaml specifies a maximum media upload size of 1536 MB.
  • nginx configuration client_max_body_size has a value of 1536 MB;
  • Test environment has 1000 Mbps Wi-Fi bandwidth (802.11ax), of course, the speed during upload or download is usually not close to the upper limit, but this is the maximum bandwidth I can provide.
  • Device: OnePlus MT2110, Pixel OS (Android 14)

The following issues were found during upload and download tests respectively:
Download:

  1. EXA for some strange reasons will forcefully interrupt¹ some download tasks that fail to complete within 30 seconds. Here is a note: the forced interruption occurs 30 seconds after receiving the file (media) data from the server, not when requesting it from the server, which means that my reverse proxy configuration is basically fine;
  2. There is no properly designed progress bar, and I can't know the download progress;

Upload:

  1. The above file cannot be uploaded, and a white banner will be displayed at the bottom of the screen after about 30 seconds²: "Media upload failed, please try again". Smaller files (such as 500 MB) can be uploaded;
  2. There is a waiting time before the upload officially starts. I guess it is reading the file into memory or copying a copy to a directory controlled by the app during this period. The specific time depends on the file size;
  3. There is no properly designed progress bar, and I can't know the upload progress.

Have you considered any alternatives?

I replaced the hard disk for the hardware running Synapse not long ago, which has greatly improved the write performance. However, such files still cannot be transferred smoothly in EXA, So I temporarily chose external services as a substitute.

Additional context

¹ If the file is a video, then I need to wait for it to be fully downloaded before I can start watching it. But because of that strange limitation, EXA cannot meet this requirement;
² I'm not sure if it's the same logic as the limit during downloading;

To further rule out the network problem, I repeated the above test using Element Android (1.6.24); Element Web (1.11.84) and desktop client, and the results were all successful in uploading/downloading.

Are you willing to provide a PR?

No

@YamatoRyou YamatoRyou added the T-Enhancement New features, changes in functionality, performance boosts, user-facing improvements label Nov 19, 2024
@Inbydev
Copy link

Inbydev commented Nov 21, 2024

happens the same for me but for watching a large video (200MB or more)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
T-Enhancement New features, changes in functionality, performance boosts, user-facing improvements
Projects
None yet
Development

No branches or pull requests

2 participants