amir1376 / amir1376/ab-download-manager

[Bug] slow zero-filling on exFAT/FAT32 USB drives

Ouverte
#1,302 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
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.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.