Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

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

オープン
#4,311 コメント 5 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
半日
初心者へのやさしさ
69/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
javascript, node.js
領域
backend

調査の方向性

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.

索引モデルが issue の本文から書いたものです。

説明

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.
主要言語
JavaScript
スター
24.1k
フォーク
4.6k
平均マージ
5時間 36分
マージ済み PR(30日)
18

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

MagicMirrorOrg/MagicMirror のほかの issue

MagicMirrorOrg/MagicMirror の issue をすべて見る

似ている issue

JavaScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。