Skip to content

Platform Abstraction Risk Register

# Risk Likelihood Impact Mitigation Validation
1 PAL refactor breaks existing host or Zephyr build Medium High Purely mechanical move of code into *_impl.h files; verified with existing test suites before any new backend work Host CI: 11/11 tests pass; Zephyr CMakeLists.txt updated with new source paths
2 Include-path resolution picks wrong *_impl.h Low High Each backend directory contains only its subset of impl files; no name overlap between split directories (freertos/ vs lwip/) Build each configuration; verify include resolution with -H flag
3 lwIP macro remapping pollutes downstream translation units Medium Medium Macros scoped inside #if !LWIP_COMPAT_SOCKETS; when compat sockets enabled (recommended), no macros defined; fallback to inline wrapper functions if conflicts arise Build with lwIP stubs + strict warnings
4 Thread destructor abort leaves resources in use Low High Defined cleanup order: (1) abort or wait, (2) delete task handle, (3) delete trampoline context, (4) delete join semaphore; invariant: no use of handles after deletion Test under address sanitizer on host; dedicated destructor-while-running test
5 Pool exhaustion causes silent failure Medium Medium allocate_message() returns nullptr; transport code must check return value; log on allocation failure in transport receive loops Pool exhaustion test: allocate until nullptr, release one, re-allocate succeeds; review all allocate_message() call sites
6 FreeRTOS config mismatch (missing counting semaphores, etc.) Medium Medium Document required config in docs/FREERTOS_PORT.md; compile-time configASSERT on handle creation; CI build with minimal stub config CI compile-check with stubs; integrator checklist in documentation
7 ThreadX config mismatch (missing TX_BLOCK_POOL support, timer tick rate) Medium Medium Document required ThreadX APIs and settings in docs/THREADX_PORT.md; lazy pool init returns TX_POOL_ERROR on misconfiguration CI compile-check with stubs; integrator checklist in documentation
8 ThreadX linux port behavior differs from bare-metal ThreadX Low Medium The linux port is the official Eclipse ThreadX port; API surface and scheduling semantics are identical; timing-sensitive tests use relative assertions with tolerance ThreadX linux port CI: 31/31 runtime tests pass; compare results with hardware when available
9 ThreadX thread stack overflow (static UCHAR stack_[] member) Medium High Default SOMEIP_THREADX_THREAD_STACK_SIZE set to 4096 bytes; documented as configurable; ThreadX provides TX_ENABLE_STACK_CHECKING for debug builds Runtime tests exercise nested function calls; integrators can enable TX_ENABLE_STACK_CHECKING