[Bug] updatenotification: only the first pending module update is applied when `updates` is configured
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- Mezza giornata
- Idoneità per principianti
- 69/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- javascript, node.js
- Ambito
- backend
Direzione di ricerca
Start with defaultmodules/updatenotification/update_helper.js, especially processModule() and how pending updates are started through Promise.all. Trace how the update state changes after one command completes, including the updateAutorestart path. Done means every configured module with an available update is processed and the reported behavior no longer skips later modules.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Environment
MagicMirror² version: v2.38.0 (git 5d7fd70), also present on current develop
Node version: 24.22.0
npm version: 11.21.1
Platform: Docker (karsten13/magicmirror:latest, server mode), Debian 13, x64
System Information
- MM: version: v2.38.0; git: 5d7fd70; branch: HEAD
- SYSTEM: manufacturer: QEMU; model: Docker Container; virtual: false
- OS: platform: linux; distro: Debian GNU/Linux; release: 13; arch: x64; kernel: 6.12.113+deb13-amd64
- VERSIONS: electron: undefined; used node: 24.22.0; installed node: 24.22.0; npm: 11.21.1; pm2:
Which start option are you using?
node --run server
Are you using PM2?
No
Module
updatenotification
Have you tried disabling other modules?
- Yes
- No
Have you searched if someone else has already reported the issue on the forum or in the issues?
- Yes
What did you do?
Configuration
{
module: "updatenotification",
position: "top_center",
config: {
updates: [
{ "MMM-ModuleA": "git pull" },
{ "MMM-ModuleB": "git pull" },
{ "MMM-ModuleC": "git pull" }
]
}
}
Steps to reproduce the issue:
- Configure
updatenotificationwith anupdatesentry for several modules (updateAutorestartleft at its defaultfalse). - Make sure at least two of these modules have new commits upstream.
- Wait for the next update check.
What did you expect to happen?
All modules with a pending update and a configured update command are updated,
one after another.
What actually happened?
All pending updates are detected, but only the first module is updated.
The others are skipped without any log message, in this check and in every
later check, until MagicMirror is restarted.
[2026-10-21 19:50:18.994] [INFO] [updatenotification] Update found for module: MMM-Webuntis
[2026-10-21 19:50:18.994] [INFO] [updatenotification] Update found for module: MMM-LibraryMonitor
[2026-10-21 19:50:18.995] [INFO] [updatenotification] Update found for module: MMM-HomeConnect2
[2026-10-21 19:50:18.995] [INFO] [updatenotification] Update found for module: MMM-Photoprism2
[2026-10-21 19:50:18.995] [INFO] [updatenotification] Update found for module: MMM-CalDAV-Tasks
[2026-10-21 19:50:18.995] [INFO] [updatenotification] Updating MMM-Webuntis...
[2026-10-21 19:50:21.036] [INFO] [updatenotification] Update logs of MMM-Webuntis: Updating 3d0d8e5..bdea7c7
[2026-10-21 19:50:21.037] [INFO] [updatenotification] Update done, don't forget to restart MagicMirror!
MMM-LibraryMonitor, MMM-HomeConnect2, MMM-Photoprism2 and MMM-CalDAV-Tasks were never updated.
Additional comments
Cause, as far as I can tell (defaultmodules/updatenotification/update_helper.js on develop):
processModule() returns early when this.updating is true, and sets it to true
before running the first update command. It is never set back to false, so after
the first update every other module is skipped for the rest of the process lifetime.
moduleState.inProgress is never reset either.
All modules are started at the same time through Promise.all, so only the first
one gets through.
A possible fix: run the pending updates one after another, reset updating and
inProgress in a finally block, and with updateAutorestart: true restart once
after all updates are done instead of after the first one.
Participation
- I am willing to submit a pull request for this change.
- Lingua principale
- JavaScript
- Stelle
- 24.1k
- Fork
- 4.6k
- Merge medio
- 5h 36m
- PR unite (30g)
- 18
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di MagicMirrorOrg/MagicMirror
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 80/100
MagicMirrorOrg/MagicMirror#4310 · 2 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug] Black screen after upgrade to MagicMirror² 2.38.0 on Raspberry Pi 3 with Electron 44.4.5Apertabug ready (coming with next release)
Difficoltà 4/5 3-5 giorni Idoneità per principianti 43/100
MagicMirrorOrg/MagicMirror#4287 · 16 commenti · 3 reazioni ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement PR Welcome
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
MagicMirrorOrg/MagicMirror#3808 · 23 commenti · 2 reazioni ·
I maintainer di solito rispondono entro 1 giorno
-
arm32 is dead (sadly)Apertadependencies not ours
Difficoltà 3/5 1-2 giorni Idoneità per principianti 48/100
MagicMirrorOrg/MagicMirror#3796 · 30 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Proposal: Wiki RestructureForse di nuovo libera @KristjanESPERANTO l’ha presa 153 giorni fa e non c’è nessuna pull request aperta. Apertaunder development under investigation
MagicMirrorOrg/MagicMirror#2545 · 24 commenti · 2 assegnatari ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di MagicMirrorOrg/MagicMirror
Issue simili
-
[Feature]: 建议导入源后,自动切换到新导入的源Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
lyswhut/lx-music-desktop#3026 ·
-
good first issue server
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
openstreetmap/iD#13054 ·
I maintainer di solito rispondono entro 1 giorno
-
community marketing priority: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
TMHSDigital/Free-Game-Dev-Assets#151 ·
I maintainer di solito rispondono entro 1 giorno
-
Read a vector index's quantization back on Neo4j 2026.10, which reports vector.quantization.typeAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
liberation-data/drivine#231 ·
I maintainer di solito rispondono entro 1 giorno