Skip to content

wxFileConfig unnecessarily does unlink() when writing config file on Linux #25088

Closed
@Safari77

Description

@Safari77

I didn't find config option to configure unlink-usage, but this app does just Write() and Flush() .
Filesystem is ZFS.

1901923 14:12:20.465356 newfstatat(AT_FDCWD, "/home/safari/.config/spek/preferences", {st_dev=makedev(0, 0x25), st_ino=652836, st_mode=S_IFREG|0664, st_nlink=1, st_uid=500, st_gid=500, st_blksize=512, st_blocks=2, st_size=32, st_atime=1737114004 /* 2025-01-17T13:40:04.637207733+0200 */, st_atime_nsec=637207733, st_mtime=1737113992 /* 2025-01-17T13:39:52.971681859+0200 */, st_mtime_nsec=971681859, st_ctime=1737113992 /* 2025-01-17T13:39:52.971681859+0200 */, st_ctime_nsec=971681859}, 0) = 0 <0.000003>
1901923 14:12:20.465383 unlink("/home/safari/.config/spek/preferences") = 0 <0.000033>
1901923 14:12:20.465428 rename("/home/safari/.config/spek/preferencesrHwLVJ", "/home/safari/.config/spek/preferences") = 0 <0.000016>

rename overwrites the config file atomically (preferences), unlink it harmful: if crash happens after unlink and before rename, file contents are maybe gone, at least in theory.

wxGTK-3.2.6 on Fedora x86_64 Linux, Gnome 47 Wayland
gtk-3.24.43

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