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

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    Status

    ToDo

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions