amir1376 / amir1376/ab-download-manager
[Bug] slow zero-filling on exFAT/FAT32 USB drives
- Langage dominant
- Kotlin
- Étoiles
- 17.9k
- Forks
- 913
- Merge moyen
- 7 h 1 min
- PR mergées (30 j)
- 7
Description
### 📝 Description
Explicit zero-filling occurs on FAT/exFAT drives, choking the write speed, breaking UI metric updates, and preventing session resumption sometimes:
When downloading files to an external storage medium (USB flash drive) formatted in **exFAT** or **FAT32**, the application gets stuck in a very slow writing/preparing state. While the graphical progress bar advances, the numeric indicators (**Downloaded**, **Speed**, and **Time Remaining**) remain blank or stuck at `0`. Furthermore, pausing and resuming the download can completely wipes the progress and restarts from scratch occasionally.
This behavior seems do **not** occur when downloading to local **NTFS** drives.
### 🏷️ App Version
1.9.2
### 💻 Platform
Windows 10 Pro (OS Build 19045.6466)
### 📦 Installation Type (optional)
.exe installed
### ⚙️ System/Device Details (optional)
_No response_
### 🔁 Steps to Reproduce
1. Start any medium-to-large download.(I've used Windows11 install iso File From EdgeBroswer as an example, Browser Plugin installed)
2. Set the download destination to an exFAT or FAT32 formatted USB flash drive.
3. **Observation 1 :** The visual blue progress bar moves forward actively, but the text metrics show `Downloaded: 0 B` and `Speed: 0 B/s`, Status vitnessed to be `Preparing File`
4. **Observation 2 (Disk Analysis):** Sector inspection via DiskGenius confirms that the target file is indeed being sequentially and entirely filled with zeros (`0x00`) during this slow preparation phase.
5. **Observation 3 (Performance Hit):** A download that normally takes 13 minutes via a standard browser's single-threaded default downloader takes **over 30 minutes** here
### ✅ Expected Behavior
The file download should start immediately without triggering pre-filling or zero-writing routines on these media types. Files should be written as a stream, download speeds and metrics should display normally, and the pause/resume functionality should work properly.
### 📷 Screenshots or Recordings (optional)
_No response_
### 🗒️ Additional Information (optional)
I conducted a comparative test using the exact same USB flash drive under different file systems:
- **NTFS:** Works perfectly. File preparation is instant, download metrics update correctly, and pause/resume functions normally.
- **exFAT:** Broken behavior. File size growth is extremely slow, UI text counters stay at 0, and progress may not be resumed.
- **FAT32:** Broken behavior. Identical symptoms to exFAT.
Here's my **Attempted Troubleshooting (but No effect at all):**
1. Explicitly disabled "Sparse File Allocation" in the UI settings.
2. Set 1 as Thread Count in the settings(both global and download-task's).
3. Completely exited the application from the system tray and restarted.
### 💡 Possible Solution (optional)
Hmmm... Does the `Disable Sparse File.Allocation` Works Properly On Windows?
Guide de contribution
Ouvrir le guide de contribution
Évaluation
Cette issue n'a pas encore été évaluée.