Skip to content

Commit f2ae9a5

Browse files
committed
FEO error handling spec. limited to V0.5, comp. requ. adapted
ref: none Change-Id: I1b487bd87b3d7ab8e1feb2cac0fd228f552c73c8
1 parent a3e1c9b commit f2ae9a5

File tree

3 files changed

+143
-36
lines changed

3 files changed

+143
-36
lines changed

docs/features/frameworks/feo/index.rst

Lines changed: 27 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -438,10 +438,12 @@ w.r.t impact of computation load and latency.
438438
.. |example_task_chain_3_threads_dynamic| image:: _assets/example_task_chain_3_threads_dynamic.png
439439

440440

441-
Error Handling
442-
==============
441+
Error Handling for S-CORE v0.5
442+
==============================
443443

444-
Possible error cases during the different FEO life cycle states shall be handled as follows.
444+
Possible error cases during the different FEO life cycle states shall be handled as follows. For now, the
445+
descriptions are focussed on the intended implementation for S-CORE v0.5. Potential adaptations for
446+
S-CORE v1.0 have been noted down, but shall be considered as drafts only.
445447

446448
* Independent of state
447449
- If the primary process dies, the external lifecycle management shall kill all dependent processes.
@@ -450,31 +452,36 @@ Possible error cases during the different FEO life cycle states shall be handled
450452
terminate itself.
451453

452454
* State: Lifecycle Manager creates all processes (primary & secondaries)
453-
- If one or more processes cannot be created, the problem will be handled directly by the Lifecycle Manager
454-
(e.g. system restart / retry)
455-
- If not all secondaries connect to the primary in time, the primary shall report an error to the
456-
lifecycle/health management. The startup functions shall not be triggered.
455+
- If not all secondaries connect to the primary in time,
456+
- S-CORE v0.5: the primary will terminate itself. The startup functions shall not be triggered.
457+
- S-CORE v1.0: the primary will not terminate, but report an error to the lifecycle/health management.
458+
The startup functions shall not be triggered.
457459

458460
* State: Lifecycle Manager has created all processes (primary & secondaries), all secondaries have connected to the primary
459-
- If an error occurs during the execution of a startup function, the primary process shall abort calling
460-
startup functions, report the issue to health management and terminate itself. For all of the activities
461-
whose startup functions have already been called successfully, the corresponding shutdown functions shall be
462-
executed in arbitrary sequence.
461+
- If an error occurs during the execution of a startup function,
462+
- S-CORE v0.5: the primary process shall abort calling startup functions
463+
and terminate itself. For all of the activities whose startup functions have already been called successfully,
464+
the corresponding shutdown functions shall be executed in arbitrary sequence.
465+
- S-CORE v1.0: in addition, the primary process shall report the issue to health management.
463466
- During initialization (i.e. in the startup function of an activity), activities shall check for resource allocation
464467
and report an error to the executor in case of failure.
465-
- If a timeout occurs during startup, stepping or shutdown of an activity, the issue shall be reported to
466-
health-management. The primary process shall shutdown all successfully started activities in arbitrary sequence
467-
and terminate itself.
468+
- If a timeout occurs during startup, stepping or shutdown of an activity,
469+
- S-CORE v0.5: the primary process shall shutdown all successfully started activities in arbitrary sequence
470+
and terminate itself.
471+
- S-CORE v1.0: In addition, the primary process shall report the issue to health management.
468472
- If not all activities reach their initialized state within a certain period of time (startup timeout),
469-
the issue shall be reported to health-management. The primary process shall shutdown all successfully
470-
started activities in arbitrary sequence and terminate itself.
473+
- S-CORE v0.5: the primary process shall shutdown all successfully
474+
started activities in arbitrary sequence and terminate itself.
475+
- S-CORE v1.0: In addition, the primary process shall report the issue to health management.
471476

472477
* State: Lifecycle Manager has created all processes (primary & secondaries), all secondaries have connected to the primary, all activities have been started up successfully
473-
- If an activity fails in the step function, a logical waypoint error shall be reported to health management.
474-
The primary process shall call shutdown for all activities in arbitrary sequence and terminate itself.
478+
- If an activity fails in the step function,
479+
- S-CORE v0.5: the primary process shall call shutdown for all activities in arbitrary sequence and terminate itself.
480+
- S-CORE v1.0: In addition, a logical waypoint error shall be reported to health management.
475481
- If activities do not meet their intermediate (time/memory/cpu-) budgets the issue shall be detected and handled
476482
outside of FEO. (Resource supervision and quotas will be defined in a separate feature request, if needed.)
477483

478484
* State: Shutdown of activities
479-
- If an activity fails in the shutdown function, a logical waypoint error shall be reported to health management.
480-
The primary process shall shutdown all remaining activities and terminate itself.
485+
- If an activity fails in the shutdown function,
486+
- S-CORE v0.5: the primary process shall shutdown all remaining activities and terminate itself.
487+
- S-CORE v1.0: In addition, a logical waypoint error shall be reported to health management.

docs/features/frameworks/feo/modules/feo/feo/docs/requirements/component_requirements.rst

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,3 +264,105 @@ Component Requirements: feo
264264
This can be done e.g. via evaluation of floating point exceptions,
265265
checking of hardware registers or status information of the
266266
software platform.
267+
268+
Error Handling for S-CORE v0.5
269+
==============================
270+
271+
.. comp_req:: Response to termination request
272+
:id: comp_req__feo__response_term_request
273+
:reqtype: Functional
274+
:security: YES
275+
:safety: ASIL_B
276+
:satisfies: feat_req__feo__response_term_request
277+
:status: valid
278+
279+
If the primary process receives a termination signal, it shall call the shutdown
280+
function of all remaining activities in arbitrary sequence and terminate itself.
281+
282+
If a secondary process receives a termination signal, it shall terminate itself.
283+
284+
285+
.. comp_req:: Secondary connection timeout
286+
:id: comp_req__feo__secondary_conn_timeout
287+
:reqtype: Functional
288+
:security: YES
289+
:safety: ASIL_B
290+
:satisfies: feat_req__feo__secondary_conn_timeout
291+
:status: valid
292+
293+
If not all secondary processes connect to the primary in time, the primary shall terminate itself.
294+
The startup functions shall not be triggered.
295+
296+
297+
.. comp_req:: Activity startup error
298+
:id: comp_req__feo__act_startup_error
299+
:reqtype: Functional
300+
:security: YES
301+
:safety: ASIL_B
302+
:satisfies: feat_req__feo__act_startup_error
303+
:status: valid
304+
305+
If an error occurs during the execution of a startup function, the primary process shall abort calling
306+
startup functions and terminate itself. For all of the activities
307+
whose startup functions have already been called successfully, the corresponding shutdown functions shall be
308+
executed in arbitrary sequence.
309+
310+
311+
.. comp_req:: Activity resource allocation error
312+
:id: comp_req__feo__act_alloc_error
313+
:reqtype: Functional
314+
:security: YES
315+
:safety: ASIL_B
316+
:satisfies: feat_req__feo__act_alloc_error
317+
:status: valid
318+
319+
During initialization (i.e. in the startup function of an activity), activities shall check for resource allocation
320+
and report an error to the executor in case of failure.
321+
322+
323+
.. comp_req:: Activity timeout
324+
:id: comp_req__feo__act_timeout
325+
:reqtype: Functional
326+
:security: YES
327+
:safety: ASIL_B
328+
:satisfies: feat_req__feo__act_timeout
329+
:status: valid
330+
331+
If a timeout occurs during startup, stepping or shutdown of an activity, the primary process shall shutdown all
332+
successfully started activities in arbitrary sequence and terminate itself.
333+
334+
335+
.. comp_req:: Startup timeout
336+
:id: comp_req__feo__startup_timeout
337+
:reqtype: Functional
338+
:security: YES
339+
:safety: ASIL_B
340+
:satisfies: feat_req__feo__startup_timeout
341+
:status: valid
342+
343+
If not all activities reach their initialized state within a certain period of time (startup timeout),
344+
the primary process shall shutdown all successfully started activities in arbitrary sequence and terminate itself.
345+
346+
347+
.. comp_req:: Activity stepping error
348+
:id: comp_req__feo__act_stepping_error
349+
:reqtype: Functional
350+
:security: YES
351+
:safety: ASIL_B
352+
:satisfies: feat_req__feo__act_stepping_error
353+
:status: valid
354+
355+
If an activity fails in the step function, the primary process shall call shutdown for all activities
356+
in arbitrary sequence and terminate itself.
357+
358+
359+
.. comp_req:: Activity shutdown error
360+
:id: comp_req__feo__act_shutdown_error
361+
:reqtype: Functional
362+
:security: YES
363+
:safety: ASIL_B
364+
:satisfies: feat_req__feo__act_shutdown_error
365+
:status: valid
366+
367+
If an activity fails in the shutdown function, the primary process shall shutdown all remaining activities
368+
in arbitrary sequence and terminate itself.

docs/features/frameworks/feo/requirements/index.rst

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -213,8 +213,8 @@ Supervision
213213
software platform.
214214

215215

216-
Error Handling
217-
==============
216+
Error Handling for S-CORE v0.5
217+
==============================
218218

219219
.. feat_req:: Response to termination request
220220
:id: feat_req__feo__response_term_request
@@ -224,10 +224,10 @@ Error Handling
224224
:satisfies: stkh_req__dependability__safety_features, stkh_req__dependability__availability, stkh_req__execution_model__processes
225225
:status: valid
226226

227-
If the primary process receives a termination signal from the Lifecycle Manager, it shall call the shutdown
227+
If the primary process receives a termination signal, it shall call the shutdown
228228
function of all remaining activities in arbitrary sequence and terminate itself.
229229

230-
If a secondary process receives a termination signal from the Lifecycle Manager, it shall terminate itself.
230+
If a secondary process receives a termination signal, it shall terminate itself.
231231

232232

233233
.. feat_req:: Secondary connection timeout
@@ -238,8 +238,8 @@ Error Handling
238238
:satisfies: stkh_req__dependability__safety_features, stkh_req__dependability__availability, stkh_req__execution_model__processes
239239
:status: valid
240240

241-
If not all secondary processes connect to the primary in time, the primary shall report an error to the
242-
lifecycle/health management. The startup functions shall not be triggered.
241+
If not all secondary processes connect to the primary in time, the primary shall terminate itself.
242+
The startup functions shall not be triggered.
243243

244244

245245
.. feat_req:: Activity startup error
@@ -251,7 +251,7 @@ Error Handling
251251
:status: valid
252252

253253
If an error occurs during the execution of a startup function, the primary process shall abort calling
254-
startup functions, report the issue to health management and terminate itself. For all of the activities
254+
startup functions and terminate itself. For all of the activities
255255
whose startup functions have already been called successfully, the corresponding shutdown functions shall be
256256
executed in arbitrary sequence.
257257

@@ -276,9 +276,8 @@ Error Handling
276276
:satisfies: stkh_req__dependability__safety_features, stkh_req__dependability__availability, stkh_req__execution_model__processes
277277
:status: valid
278278

279-
If a timeout occurs during startup, stepping or shutdown of an activity, the issue shall be reported to
280-
health-management. The primary process shall shutdown all successfully started activities in arbitrary sequence
281-
and terminate itself.
279+
If a timeout occurs during startup, stepping or shutdown of an activity, the primary process shall shutdown all
280+
successfully started activities in arbitrary sequence and terminate itself.
282281

283282

284283
.. feat_req:: Startup timeout
@@ -290,8 +289,7 @@ Error Handling
290289
:status: valid
291290

292291
If not all activities reach their initialized state within a certain period of time (startup timeout),
293-
the issue shall be reported to health-management. The primary process shall shutdown all successfully
294-
started activities in arbitrary sequence and terminate itself.
292+
the primary process shall shutdown all successfully started activities in arbitrary sequence and terminate itself.
295293

296294

297295
.. feat_req:: Activity stepping error
@@ -302,8 +300,8 @@ Error Handling
302300
:satisfies: stkh_req__dependability__safety_features, stkh_req__dependability__availability, stkh_req__execution_model__processes
303301
:status: valid
304302

305-
If an activity fails in the step function, a logical waypoint error shall be reported to health management.
306-
The primary process shall call shutdown for all activities in arbitrary sequence and terminate itself.
303+
If an activity fails in the step function, the primary process shall call shutdown for all activities
304+
in arbitrary sequence and terminate itself.
307305

308306

309307
.. feat_req:: Activity shutdown error
@@ -314,5 +312,5 @@ Error Handling
314312
:satisfies: stkh_req__dependability__safety_features, stkh_req__dependability__availability, stkh_req__execution_model__processes
315313
:status: valid
316314

317-
If an activity fails in the shutdown function, a logical waypoint error shall be reported to health management.
318-
The primary process shall shutdown all remaining activities and terminate itself.
315+
If an activity fails in the shutdown function, the primary process shall shutdown all remaining activities
316+
in arbitrary sequence and terminate itself.

0 commit comments

Comments
 (0)