Skip to content

Update CHANGELOG for Mender Client 6.0.x - #35

Open
mender-test-bot wants to merge 1 commit into
6.0.xfrom
release-candidate-6.0.x
Open

Update CHANGELOG for Mender Client 6.0.x#35
mender-test-bot wants to merge 1 commit into
6.0.xfrom
release-candidate-6.0.x

Conversation

@mender-test-bot

@mender-test-bot mender-test-bot commented Mar 9, 2026

Copy link
Copy Markdown

Mender Client 6.0.x

Repository Version
mender 5.1.x
mender-connect 3.0.x
monitor-client 1.5.x
mender-flash 1.1.x
mender-configure-module 1.1.x
mender-binary-delta 1.5.x
mender-container-modules 1.0.x

mender 5.1.x (2026-08-21)

5.1.x - 2026-08-21

Bug fixes

  • (auth) Fix segfault when dbus becomes unavailable and available again
    (MEN-9246) (7243c59)

    Change mender::api::HTTPClient::AsyncCall to void and handle all error callbacks asynchronously.
    Previously, errors in WithToken from StartWatchingTokenSignal were synchronous, and errors from
    GetJwtToken were asynchronous, but still returned an error. This caused the caller to not know
    wheter a callback would be called by AsyncCall, ultimately leading to the callback being called
    multiple times.
    Having AsyncCall not return anything, and always call the callback on error makes the
    contract cleaner. Each caller now knows that if there's an error in AsyncCall, whether
    it is immediate, or happens later after reading some data, the callback will be run
    exactly once.

  • (http) Time out stalled transactions without killing switched protocols
    (MEN-9433MEN-10031) (d417a2a)

    A server that accepts a request and never answers left the response read
    outstanding forever, wedging the client until restart. Arm Beast's stream timeout
    per operation and disarm it at the 101 Switching Protocols handover -- leaving it
    armed there closed mender-connect's WebSocket after five minutes and got the
    previous attempt reverted (MEN-9433).

  • (modules-artifact-gen) Fail early when mender-artifact produces an invalid artifact
    (80e7aa6)

  • (modules-artifact-gen) Always remove temporary files
    (be174ef)

  • (update-modules) Fail the install when the backup fails
    (MEN-10021) (9c64ef1)

    ret=$? was read inside if ! <backup>; then, where $? holds the status
    of the negated pipeline and is therefore always 0. Both modules exited 0
    before applying the payload, so a failed install was reported to the server
    as successful: the destination was left untouched while the new software
    version was recorded for it. Capture the status from the command itself
    instead.

    The directory module is the more exposed of the two, since it backs up the
    whole destination directory, so any unrelated file growing there can exhaust
    the data partition. Reported from the field with a multi-GB core dump.

    Add a pytest suite for the shipped update module scripts, alongside the
    existing one for the artifact generators, covering both a failing backup and
    a successful install for each module. Ignore the Python test caches while
    here, since the new suite is the second pytest directory in the tree.

  • Don't retry status update on 413
    (ME-616) (e13437d)

  • Handle first timestamp in deployment logs more carefully
    (MEN-9427) (68ab41e)

    Depending on the system and build configuration, the timestamps
    in logs can use lower (likely) or higher (unlikely) time
    resolution than expected (nanoseconds). So in case of a
    deployment failure with corrupted logs, when using the first
    timestamp as a replacement in the extra (THE ORIGINAL LOGS CONTAINED INVALID ENTRIES) log entry, care must be taken to make
    sure the extra log entry still has a valid timestamp and that the
    result is valid JSON.

  • Sort inventory generator scripts before running them
    (MEN-9635) (a5fcec1)

    So that the results are consistent and don't depend on directory
    iteration ordering.

  • Fail when device tier is invalid
    (ME-636) (590282f)

    DeviceTier is one of the configuration options but it is critical
    for how device is recognized by the server. When we will fail
    parsing it out of the configuration we should fail instead to
    switching to the standard device tier.

  • Ensure limited permissions of mender-inventory-geo cache files
    (MEN-9752) (64584e2)

    The /tmp/mender/inventory-geo cache file can potentially contain
    sensitive data and there's no reason for it to have 644
    permissions.

    By using umask 077 we can easily ensure that any files created
    by the script are only user/owner-accessible.

  • Default RetryPollIntervalSeconds to 300 seconds
    (MEN-9719) (9fc39d7)

    RetryPollIntervalSeconds defaulted to 0 seconds, meaning any config not
    setting RetryPollIntervalSeconds would retry polling with a 0 second
    delay. Default to 300 seconds, matching the Go client's fallback for unset
    values.

  • Ensure corrent order of globals initalization
    (MEN-9878) (ca57f7b)

  • Report download failure when DownloadResumerClient gives up mid-stream
    (MEN-9954) (19af738)

    When there are network issues during Artifact download and the
    HTTP download resumer exhausts its retry backoff, the only way to
    deliver the error to the state machine is through the HTTP body
    reader's
    handler because the body handler passed to the
    DownloadResumerClient is only called when all body data is
    fetched which normally happens in a completely different state
    than the one that starts the download and thus the
    UpdateDownloadState doesn't handle any errors in it.

    Add a Fail() function to the body reader and use it to make sure
    it calls its handler with the respective error.

    Also add a comment about how the DownloadResumerClient is used.

  • Don't re-sanitize logs during upload
    (MEN-10017) (5465efd)

    Calling SanitizeLogs() as part of Rewind would invalidate the previous
    Content-Length calculation if the log has grown in the meantime. This
    would cause the server to reject the log upload with HTTP 400:
    unexpected EOF.

    The log file can grow between computing the Content-Length and streaming
    the body, because the deployment keeps logging to it while the upload is
    in flight.

Documentation

  • Update contributing guide
    (QA-1517) (9372fc1)

    To remove custom extensions of conventional commits standard.

Features

  • Large deployment logs are now trimmed to be accepted by the server
    (MEN-9415) (d870064)

    Deployment logs larger than 1 MiB are rejected by the
    server which leads to two issues:

    • excessive bandwith consumption when uploading such large logs
      only to be thrown away, and

    • no deployment logs for particular device and particular failed
      deployment available at the server at all.

    To prevent this, the client now trims large deployment logs and
    only sends the biggest possible part of the logs from their end.

mender-connect 3.0.x (2026-08-18)

3.0.x - 2026-08-18

Bug fixes

  • Do not block the message loop when a late pong arrives
    (58d6a76)

    The healthcheck goroutine stops reading MenderShellSession.pong the
    moment it enters the timeout branch of its select, but the session stays
    reachable through MenderShellSessionGetById until MenderShellStopById
    removes it. Removal happens no earlier than four seconds later because
    procps.TerminateAndWait sleeps 2s + 2s unconditionally. A pong that
    arrives in that window finds the session, and HealthcheckPong blocks
    forever on an unbuffered channel that no longer has a reader.

    HealthcheckPong is called synchronously from routeMessagePongShell,
    which runs on the daemon's messageLoop goroutine. The block therefore
    stops the whole daemon: it stops reading the websocket, stops logging
    and never reconnects. The process stays alive, so systemd does not
    restart it.

    MenderShellStopById also returns without removing the session when
    StopShell fails and the shell process is still alive, which leaves the
    session reachable indefinitely and makes the same block reachable
    without any race.

    Give the channel a single slot and make the send non-blocking. A pong
    only signals that the peer is alive, so holding one is enough and
    dropping a second one changes nothing. The buffer keeps a pong that
    arrives while the healthcheck is momentarily outside its select, and the
    default case keeps the sender from blocking once the reader is gone.

    Add a regression test that delivers a pong inside the removal window,
    plus a negative control showing that a pong delivered after the removal
    is rejected with ErrSessionNotFound.

monitor-client 1.5.x (2026-07-31)

No changelog entries found.

mender-flash 1.1.x (2026-02-27)

No changelog entries found.

mender-configure-module 1.1.x (2026-05-28)

No changelog entries found.

mender-binary-delta 1.5.x (2026-08-06)

1.5.x - 2026-08-06

Build

  • Update cloning link for cmocka, whose original has broken.
    (7cb08af)

mender-container-modules 1.0.x (2026-05-05)

1.0.x - 2026-05-05

Bug fixes

  • Cd into manifest dir beforing listing running containers
    (MEN-9641) (0aa83f8)

    Fix an issue where docker-compose v1 can't find manifest files for a
    composition because we don't cd into the manifest directory.

@mender-test-bot
mender-test-bot force-pushed the release-candidate-6.0.x branch 4 times, most recently from b8e9536 to 6c6f1c0 Compare March 13, 2026 14:46
@mender-test-bot
mender-test-bot force-pushed the release-candidate-6.0.x branch from 6c6f1c0 to f181b7b Compare May 5, 2026 12:38
@mender-test-bot

Copy link
Copy Markdown
Author

@mender-test-bot, start a full client pipeline with:

  • mentioning me and start client pipeline

my commands and options

You can prevent me from automatically starting CI pipelines:

  • if your pull request title starts with "[NoCI] ..."

You can trigger a client pipeline on multiple prs with:

  • mentioning me and start client pipeline --pr mender/127 --pr mender-connect/255

You can trigger a client pipeline for a specific Mender Client release with:

  • mentioning me and start client pipeline --release 6.0.x (can be given multiple times)
  • by default, a pipeline is triggered for each supported release the component is a part of

You can trigger GitHub->GitLab branch sync with:

  • mentioning me and sync

You can print PR statistics for a repository with:

  • mentioning me and print fast pr stats (Team stats only)
  • mentioning me and print full pr stats (Detailed report)
  • options: --repo <repo>, --team <name>, --all-repos, --exclude-drafts, --exclude-user <user>
  • mentioning me and print full pr stats --repo mender --all-repos --exclude-drafts

You can cherry pick to a given branch or branches with:

  • mentioning me and:
 cherry-pick to:
 * 1.0.x
 * 2.0.x

@mender-test-bot
mender-test-bot force-pushed the release-candidate-6.0.x branch 8 times, most recently from ac38517 to 8cae274 Compare May 25, 2026 17:10
@mender-test-bot
mender-test-bot force-pushed the release-candidate-6.0.x branch 8 times, most recently from 914d36d to 642ab2b Compare June 2, 2026 17:10
@mender-test-bot
mender-test-bot force-pushed the release-candidate-6.0.x branch 7 times, most recently from 0fb711a to 1822434 Compare June 9, 2026 17:14
@mender-test-bot
mender-test-bot force-pushed the release-candidate-6.0.x branch from 72c4a03 to f6337a0 Compare June 23, 2026 17:12
@mender-test-bot

Copy link
Copy Markdown
Author

There was an error syncing branches, see logs for details.

@mender-test-bot
mender-test-bot force-pushed the release-candidate-6.0.x branch 7 times, most recently from 5aa8920 to f8db277 Compare June 30, 2026 17:10
@mender-test-bot
mender-test-bot force-pushed the release-candidate-6.0.x branch 7 times, most recently from cb0568b to 23ddf0e Compare July 7, 2026 17:10
@mender-test-bot
mender-test-bot force-pushed the release-candidate-6.0.x branch 7 times, most recently from 2701325 to 324edc6 Compare July 14, 2026 17:10
@mender-test-bot
mender-test-bot force-pushed the release-candidate-6.0.x branch 6 times, most recently from 42c26a1 to e1acfbe Compare July 20, 2026 17:19
Signed-off-by: mender-test-bot <mender@northern.tech>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant