Update CHANGELOG for Mender Client 6.0.x - #35
Open
mender-test-bot wants to merge 1 commit into
Open
Conversation
mender-test-bot
force-pushed
the
release-candidate-6.0.x
branch
4 times, most recently
from
March 13, 2026 14:46
b8e9536 to
6c6f1c0
Compare
mender-test-bot
force-pushed
the
release-candidate-6.0.x
branch
from
May 5, 2026 12:38
6c6f1c0 to
f181b7b
Compare
Author
|
@mender-test-bot, start a full client pipeline with:
my commands and optionsYou can prevent me from automatically starting CI pipelines:
You can trigger a client pipeline on multiple prs with:
You can trigger a client pipeline for a specific Mender Client release with:
You can trigger GitHub->GitLab branch sync with:
You can print PR statistics for a repository with:
You can cherry pick to a given branch or branches with:
|
mender-test-bot
force-pushed
the
release-candidate-6.0.x
branch
8 times, most recently
from
May 25, 2026 17:10
ac38517 to
8cae274
Compare
mender-test-bot
force-pushed
the
release-candidate-6.0.x
branch
8 times, most recently
from
June 2, 2026 17:10
914d36d to
642ab2b
Compare
mender-test-bot
force-pushed
the
release-candidate-6.0.x
branch
7 times, most recently
from
June 9, 2026 17:14
0fb711a to
1822434
Compare
mender-test-bot
force-pushed
the
release-candidate-6.0.x
branch
from
June 23, 2026 17:12
72c4a03 to
f6337a0
Compare
Author
|
There was an error syncing branches, see logs for details. |
mender-test-bot
force-pushed
the
release-candidate-6.0.x
branch
7 times, most recently
from
June 30, 2026 17:10
5aa8920 to
f8db277
Compare
mender-test-bot
force-pushed
the
release-candidate-6.0.x
branch
7 times, most recently
from
July 7, 2026 17:10
cb0568b to
23ddf0e
Compare
mender-test-bot
force-pushed
the
release-candidate-6.0.x
branch
7 times, most recently
from
July 14, 2026 17:10
2701325 to
324edc6
Compare
mender-test-bot
force-pushed
the
release-candidate-6.0.x
branch
6 times, most recently
from
July 20, 2026 17:19
42c26a1 to
e1acfbe
Compare
Signed-off-by: mender-test-bot <mender@northern.tech>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Mender Client 6.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 insideif ! <backup>; then, where$?holds the statusof 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 makesure 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
standarddevice 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 077we can easily ensure that any files createdby 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
(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.