ja7ad / ja7ad/hydra

bug: Global speed limit should be absolute

Closed
#207 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
Rust
Stars
586
Forks
43
Avg merge
5h 26m
Merged PRs (30d)
131

Description

### Preflight checklist

- [x] I searched [existing issues](https://github.com/ja7ad/hydra/issues?q=is%3Aissue) and this is not a duplicate.
- [x] I reproduced this on the latest HYDRA release (or the current `main`).
- [x] This is not a security vulnerability.

### Component

Desktop GUI (Hydra Download Manager)

### HYDRA version

hydra 0.5.0

### Operating system

Windows (x86_64)

### OS version / distribution

Windows 10 21H2

### How did you install HYDRA?

Prebuilt archive from GitHub Releases

### What happened?

_Global_ speed limit should be absolute regardless of number of downloads running. As of now the actual global speed limit is NOT equal the set value, but the set value * number of running downloads.

### What did you expect to happen?

Ex: when set at 128 KB/s I expected hydra to take 128 KB/s bandwidth in total (global) and not per download, which defeats the purpose otherwise. Download speed limit per download can already be set through individual download window.

Image

Here as you can see the global speed limit is no longer 128 KB/s but 128 KB/s * 2 (number of running) = 256 KB/s.

### Steps to reproduce

1. Set the global download speed limit (main UI).
2. Start more than 1 download concurrently.

### Logs / terminal output

```text

```

### Transfer details (for download / engine issues)

- Protocol (HTTP, HTTPS, FTP):
- Server supports range requests (`Accept-Ranges: bytes`):
- Number of connections (`-n`) and mirror sources:
- Proxy in the path (HTTP CONNECT, SOCKS4/4a/5), if any:
- File size and destination filesystem (e.g. 4 GiB onto exFAT):

### Did this work in an earlier version?

_No response_

### Contribution

- [ ] I'm willing to open a pull request for this bug.

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 the desktop GUI's main UI by setting a global limit, then run more than one download concurrently to reproduce the multiplied bandwidth. Trace how the main UI limit is applied across running downloads, and consider the individual download window's per-download limit as the existing separate behavior. Done means a 128 KB/s global setting remains 128 KB/s total with multiple downloads.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
desktop
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
64/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.