Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

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

Đang mở
#4,311 5 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
3/5
Thời gian dự kiến
Nửa ngày
Mức phù hợp với người mới
69/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
javascript, node.js
Lĩnh vực
backend

Hướng nghiên cứu

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.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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.
Ngôn ngữ chính
JavaScript
Star
24.1k
Fork
4.6k
Merge trung bình
5 giờ 36 phút
Pull request đã merge (30 ngày)
18

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của MagicMirrorOrg/MagicMirror

Tất cả issue của MagicMirrorOrg/MagicMirror

Issue tương tự

Thêm issue về JavaScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.