Skip to content

ssh fwup vs. nerves_hub fwup race condition? #36

@dognotdog

Description

@dognotdog

Environment

Pkg: nerves_toolchain_armv6_nerves_linux_gnueabihf
Vsn: 1.4.3
Type: toolchain
BuildRunner: {Nerves.Artifact.BuildRunners.Local, []}

Pkg: mobile_rpi0
Vsn: 1.17.0
Type: system
BuildRunner: {Nerves.Artifact.BuildRunners.Docker, [make_args: ["source", "all"]]}

Pkg: nerves_system_br
Vsn: 1.17.0
Type: system_platform
BuildRunner: {nil, []}

Pkg: nerves_toolchain_ctng
Vsn: 1.8.4
Type: toolchain_platform
BuildRunner: {nil, []}

Current behavior

I've been wondering how I corrupted an SD card before, and now I found at least one way: with an active deployment running and fwup in progress, but also local performing a fwup via ssh, it looks like the two update processes simultaneously wrote to the "unused" partition, resulting in complete garbage.

As an aside, is the on-disk cecksum not verified on firmware updates?

On rpi0, this lands in an infinite reboot cycle.

Expected behavior

Noticing corruption before reboot.

Companion issue on nerves_hub_link: nerves-hub/nerves_hub_link#98

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions