KVS FMEA (Failure Modes and Effects Analysis)#
KVS FMEA
|
status: valid
security: NO
safety: ASIL_B
|
||||
Failure modes at the component interfaces are analysed in Persistency FMEA (doc__persistency_fmea). This FMEA applies the fault models of gd_guidl__fault_models to the mechanisms specified in KVS Requirements (doc__kvs_requirements). The scope is defined in Persistency Safety Plan (doc__persistency_safety_plan) (tailoring).
Failure Mode List#
ID |
Failure Mode |
Applicability |
Rationale |
|---|---|---|---|
MF_01_01 |
message is not received (is a subset/more precise description of MF_01_05) |
no |
See Message is not received (feat_saf_fmea__persistency__msg_not_received). |
MF_01_02 |
message received too late (only relevant if delay is a realistic fault) |
no |
See Message received too late (feat_saf_fmea__persistency__late_message). |
MF_01_03 |
message received too early (usually not a problem) |
no |
Synchronous calls; an early response is not possible. |
MF_01_04 |
message not received correctly by all recipients (different messages or messages partly lost). Only relevant if the same message goes to multiple recipients. |
no |
Every message has exactly one recipient. |
MF_01_05 |
message is corrupted |
yes |
Flush is interrupted (comp_saf_fmea__kvs__flush_interrupted), Corrupted storage at open, ... (comp_saf_fmea__kvs__corrupt_on_open), Default value file is corru... (comp_saf_fmea__kvs__default_corrupt) |
MF_01_06 |
message is not sent |
yes |
Flush does not write change... (comp_saf_fmea__kvs__flush_skipped) |
MF_01_07 |
message is unintended sent |
no |
Storage is only written by flush, snapshots only changed on explicit call (Explicit Flush (comp_req__kvs__explicit_flush), Explicit Snapshot Operations (comp_req__kvs__explicit_snapshot_operations)). Implementation: flush rotates the snapshots. |
CO_01_01 |
minimum constraint boundary is violated |
yes |
Constraint boundary is viol... (comp_saf_fmea__kvs__constraint_exceeded) |
CO_01_02 |
maximum constraint boundary is violated |
yes |
Constraint boundary is viol... (comp_saf_fmea__kvs__constraint_exceeded), Wrong constraint configurat... (comp_saf_fmea__kvs__constraint_cfg_wrong) |
EX_01_01 |
Process calculates wrong result(s) (is a subset/more precise description of MF_01_05 or MF_01_04). This failure mode is related to the analysis if e.g. internal safety mechanisms are required (level 2 function, plausibility check of the output, …) because of the size / complexity of the feature. |
yes |
Empty storage is used inste... (comp_saf_fmea__kvs__empty_storage_used), Data migration produces wro... (comp_saf_fmea__kvs__migration_wrong), Kvs tool generates wrong st... (comp_saf_fmea__kvs__tool_wrong_output) |
EX_01_02 |
processing too slow (only relevant if timing is considered) |
no |
See Message received too late (feat_saf_fmea__persistency__late_message). |
EX_01_03 |
processing too fast (only relevant if timing is considered) |
no |
No minimum processing time required. |
EX_01_04 |
loss of execution |
yes |
Changes are lost by loss of... (comp_saf_fmea__kvs__unflushed_lost) |
EX_01_05 |
processing changes to arbitrary process |
no |
Runs in the calling thread; control flow corruption: platform DFA. |
EX_01_06 |
processing is not complete (infinite loop) |
no |
All loops iterate over finite data. |
FMEA#
Flush is interrupted
|
status: valid
|
||||
The previous state is kept until the flush is complete; an incomplete flush is detected at the next open. Implementation: the previous state is only kept by the snapshot rotation, so with a maximum snapshot count of
|
|||||
Corrupted storage at open, reload or snapshot restore
|
status: valid
|
||||
Applies to every load: open, Discard Pending Changes (comp_req__kvs__discard_pending_changes_api) and snapshot restore. Implementation (Rust): a missing hash file is reported as |
|||||
Empty storage is used instead of persisted data
|
status: valid
|
||||
The application selects the open behavior and can detect values which are not persisted. |
|||||
Default value file is corrupted or modified
|
status: valid
|
||||
Implementation: the kvs tool does not set the file permissions. |
|||||
Flush does not write changed data
|
status: valid
|
||||
A missed change is not detected by the checksum, which covers the written data only. Not sufficient: it is not specified that every modifying operation marks the data as changed. Implementation: no change detection, flush always writes. |
|||||
Constraint boundary is violated
|
status: valid
|
||||
Not sufficient: Snapshot Slot Index Validation (comp_req__kvs__snapshot_slot_index_vali) checks the fixed range of Snapshot Slot Indexing (comp_req__kvs__snapshot_id_api), not the configured maximum of Maximum Number of Snapshots (comp_req__kvs__snapshot_max_num_cfg). A snapshot above the configured maximum exceeds the configured storage. Implementation: Rust does not validate keys; the snapshot create, remove and slot query API is missing. |
|||||
Wrong constraint configuration file
|
status: valid
|
||||
The file overrides the compile-time values (Constraint Configuration pr... (comp_req__kvs__constraints_priority)). Not sufficient: no integrity or plausibility check of the file is specified. |
|||||
Data migration produces wrong data
|
status: valid
|
||||
The checksum does not cover the correctness of the migration. Not sufficient: it is not specified that an unsupported schema version is reported and that the original data is kept until the migrated data is flushed. Implementation: schema version and migration are missing. |
|||||
Changes are lost by loss of execution
|
status: valid
|
||||
Interrupted flush: Flush is interrupted (comp_saf_fmea__kvs__flush_interrupted). |
|||||
Kvs tool generates wrong storage or default value files
|
status: valid
|
||||
The tool computes the checksum over its own output, so wrong content is not detected at loading. Not sufficient: neither a tool qualification nor a verification of the generated files is specified. |
|||||