7df5e30433 [MM-71059] Health Dashboard PR21: rules for jobs (#38914)
* [MM-71059] Add health rules for stuck, wedged and failed jobs

JOB_STUCK, JOB_WEDGED_AT_ZERO and JOB_FAILED report one result per
collected job type. Each type is gated on the setting that runs its
worker, and ages are measured from the snapshot's collection time.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: Cursor <cursoragent@cursor.com>

* [MM-71059] Cover the job rules in the packet fixtures

The fixtures gain the job gate settings and realistic job runs, so the
standalone packet reports a failed LDAP sync and the HA packet a stuck
message export. The mmctl test packet gets the settings and jobs file
it needs to stay fully evaluated.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: Cursor <cursoragent@cursor.com>

* [MM-71059] Exercise the job rules in the live/offline parity test

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: Cursor <cursoragent@cursor.com>

* [MM-71059] Use the shared reasons for missing jobs data

The job rules' unknown results for missing job history and an unknown
collection time now use ReasonJobsUnavailable and
ReasonCollectedAtUnknown, so their five per-code ids are gone.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: Cursor <cursoragent@cursor.com>

* [MM-71059] Tidy the job rule tests

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* [MM-71059] Look past pending runs queued behind a stuck job

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* [MM-71059] Report unknown when queued runs fill the collected job history

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* [MM-71059] Skip canceled runs when checking for a failed job

A worker stop on restart or upgrade cancels the running job, so a
canceled run after a failure cleared JOB_FAILED without any run having
succeeded.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* [MM-71059] Fire JOB_WEDGED_AT_ZERO on idle time instead of runtime

Progress is a whole percentage for search indexing and message export,
so a large job that is working still reads 0 for hours and fired the
rule after 6h. Every batch updates LastActivityAt, so requiring an hour
without activity only catches jobs that never got going, and catches
them sooner.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* [MM-71059] Resolve old data retention failures once retention is off

With both global deletion settings off and no custom policy, the
scheduler stops creating data retention runs, so a failed run stayed
the latest one and JOB_FAILED fired forever. Custom policies are not in
the snapshot, but an active one would have produced a newer run within
a week.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-19 13:39:01 +02:00
2026-10-04 12:35:53 +08:00
2018-05-30 10:23:25 -04:00

Mattermost logo

Mattermost is an open core, self-hosted collaboration platform that offers chat, workflow automation, voice calling, screen sharing, and AI integration. This repo is the primary source for core development on the Mattermost platform; it's written in Go and React, runs as a single Linux binary, and relies on PostgreSQL. A new compiled version is released under an MIT license every month on the 16th.

Deploy Mattermost on-premises, or try it for free in the cloud.

mattermost user interface

Learn more about the following use cases with Mattermost:

Other useful resources:

Table of contents

Install Mattermost

Other install guides:

Native mobile and desktop apps

In addition to the web interface, you can also download Mattermost clients for Android, iOS, Windows PC, macOS, and Linux.

Get Mattermost on Google Play Get Mattermost on the App Store Get Mattermost on Windows PC Get Mattermost on Mac OSX Get Mattermost on Linux

Get security bulletins

Receive notifications of critical security updates. The sophistication of online attackers is perpetually increasing. If you're deploying Mattermost it's highly recommended you subscribe to the Mattermost Security Bulletin mailing list for updates on critical security releases.

Subscribe here

Get involved

Learn more

License

See the LICENSE file for license rights and limitations.

Get the latest news

Contributing

Small Image

Please see CONTRIBUTING.md. Join the Mattermost Contributors server to join community discussions about contributions, development, and more.

S
Description
Mattermost is an open source platform for secure collaboration across the entire software development lifecycle..
Readme AGPL-3.0, Apache-2.0
2.6 GiB
0 Stars 3 Watchers 0 Forks
Languages
TypeScript 48.9%
Go 41.8%
JavaScript 5.1%
SCSS 2.3%
HTML 1.4%
Other 0.3%