Output products could get "stuck" in an unexpected partially complete state when certain configured product paths are wrong
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 8
- Forks
- 4
- PR merge metrics
- No merged PRs in 30d
Description
Because of the way MMTC's output products are written, it's possible for some products to be updated after a run when a bad/nonexistent path in the config (such as raw telemetry table) causes MMTC to abort before everything has been updated. This can result in a state where SCLK kernels and SCLKSCET files have been written but the run history file was never updated, meaning details of the run were never recorded and the run can't be rolled back. This is particularly confusing for users of the web UI as it appears that nothing was written in the "preview" view but upon refresh, the predicted correlation data become actual despite no evidence of new runs in the history widget.
Instead, MMTC should probably be adjusted to handle this sort of misconfiguration in one of two ways:
- The bad path is checked and caught before we try to commit and either prevents a preview from being generated or grays out/disables the commit button (along with an error somewhere explaining why it can't commit)
- Completes and updates all the output products it can (most importantly run history file so i can roll back if the user wants to fix and try again) but throws an error/warning that it couldn't update the relevant product. Ostensibly this would require special handling in the run history file update to account for the nonexistent product that it wasn't able to update.
The first is likely an easier/safer solution as it doesn't have to account for cases where critical output products (such as SCLK kernels) can't be written vs. non-critical products (like the raw TLM table), but will involve upfront validation of all relevant output products and/or their output paths before anything is written.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files or tests are named in the issue. Start by tracing how configured output paths are validated and how output products and the run history file are committed, then reproduce the bad-path scenario. Done means a misconfigured path cannot leave products partially updated without either preventing the commit or recording the run state needed for rollback.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 42/100