Account-rotation logging + transient cooldown fixes
- New dedicated account-rotation.log (audit-style) so multi-account/key rotation flow is visible without rd_downloader.log noise - Mega-Debrid: always show "Account X/Y (masked@login)" label even with one account, and log a clear "TESTE Account fuer Link-Generierung..." line BEFORE every network call so the user sees which account is in play even if the call hangs - Mega-Debrid: on FAILED, log which account will be tried next (skipping disabled/limited/cooldown ones), so the rotation is auditable - Mega-Web "Antwort leer" / empty body now uses 20s cooldown instead of 120s — empty responses are typically transient server hiccups, not real failures (caused healthy accounts to be unfairly blocked) - Generic transport/unknown errors: 30s cooldown instead of 120s - Global stall watchdog no longer counts items in "validating" status — per-item validating watchdog already handles them and gives the multi-account rotation enough time. Without this fix the global watchdog could abort the unrestrict mid-rotation (e.g. account 3 of 3 still being tested) just because no download bytes had arrived - Same logging treatment applied to Debrid-Link key rotation
This commit is contained in:
@@ -7660,6 +7660,15 @@ export class DownloadManager extends EventEmitter {
|
||||
return;
|
||||
}
|
||||
|
||||
// Only items that are actually DOWNLOADING (have an open HTTP body that
|
||||
// should be making progress) count toward the global stall watchdog.
|
||||
// Items in "validating" are still in the unrestrict phase — they're handled
|
||||
// by the per-item validating watchdog above (VALIDATING_STUCK_MS) which
|
||||
// gives the multi-account/multi-key rotation enough time. Without this
|
||||
// exclusion the global watchdog would abort the unrestrict mid-rotation
|
||||
// (e.g. account 3 of 3 still being tested) just because no bytes had been
|
||||
// downloaded recently — which is correct, since unrestrict doesn't
|
||||
// produce download bytes.
|
||||
let stalledCount = 0;
|
||||
let diskBlockedCount = 0;
|
||||
for (const active of this.activeTasks.values()) {
|
||||
@@ -7671,7 +7680,7 @@ export class DownloadManager extends EventEmitter {
|
||||
continue;
|
||||
}
|
||||
const item = this.session.items[active.itemId];
|
||||
if (item && (item.status === "downloading" || item.status === "validating")) {
|
||||
if (item && item.status === "downloading") {
|
||||
stalledCount += 1;
|
||||
}
|
||||
}
|
||||
@@ -7689,7 +7698,7 @@ export class DownloadManager extends EventEmitter {
|
||||
continue;
|
||||
}
|
||||
const item = this.session.items[active.itemId];
|
||||
if (item && (item.status === "downloading" || item.status === "validating")) {
|
||||
if (item && item.status === "downloading") {
|
||||
active.abortReason = "stall";
|
||||
active.abortController.abort("stall");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user