Skip to content

Zero-length environment file after power loss during module update #7886

@DavidePrincipi

Description

@DavidePrincipi

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

Labels

No labels
No labels

Type

Projects

Status

In Progress

Relationships

None yet

Development

No branches or pull requests

Issue actions