-
Notifications
You must be signed in to change notification settings - Fork 17
Description
Steps to reproduce
- Trigger a module update on NS8.
- During the update, induce a power loss.
- After reboot, check for environment files and service status.
Expected behavior
Environment files should remain valid and services should start correctly with all required environment variables.
Actual behavior
A zero-length environment file is found after the power loss. Services fail to start due to missing required environment variables.
It appears the Python core agent.set_env() function does not flush data to disk before perform rename; close() is not sufficient to ensure data is persisted to stable storage. This only guarantees that the userspace buffer is flushed to the kernel and the file descriptor is released, but not that the kernel has written the data to disk. Similar issues may be present in other core code and individual applications.
Components
NS8 core Python agent (agent.set_env). Evaluate similar logic in applications and other core code.
See also
Metadata
Metadata
Assignees
Labels
Type
Projects
Status