Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

[Bug] updatenotification: only the first pending module update is applied when `updates` is configured

Aperta
#4,311 5 commenti 0 reazioni 0 assegnatari Vedi su GitHub

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

bug
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:

  1. Configure updatenotification with an updates entry for several modules (updateAutorestart left at its default false).
  2. Make sure at least two of these modules have new commits upstream.
  3. 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

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di MagicMirrorOrg/MagicMirror

Tutte le issue di MagicMirrorOrg/MagicMirror

Issue simili

Altre issue su JavaScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.