Thanks to visit codestin.com
Credit goes to github.com

Skip to content

rust-gcoap example is incompatible with littlefs2 #17817

@chrysn

Description

@chrysn

Description

When adding a littlefs2 mount point to the rust-gcoap example and adjusting the mount points to expose the littlefs2 partition over CoAP as a file server, undefined behavior can happen (resulting in the typical kind of heisencrashes that appear and disappear depending on optimization settings and inserted debug statements).

In particular,

Cause

This is caused by https://gitlab.com/etonomy/riot-wrappers/-/issues/8 -- the Rust wrappers assume that a vfs_DIR can be moved, which is not the case with littlefs2.

(This makes things a bit awkward to use -- Rust can express such not-to-be-moved structures, but it is limiting because generic tools expect more flexibility. I just didn't notice that a vfd_DIR could be part of a linked list and thus need that treatment).

Administrativa

Affects all RIOT versions that have the vfs example active.

This issue is opened here to ensure it is visible as it affects one the examples. It will be fixed there for the version after riot-wrappers 0.7.21, and fixed here by the cargo update PR that pulls in that version.

[edit: I should never have attempted to link two projects that have the same number of letters and start with the same]

Metadata

Metadata

Assignees

Labels

Area: RustArea: Rust wrapperArea: fsArea: File systemsType: bugThe issue reports a bug / The PR fixes a bug (including spelling errors)

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions