boostorg / boostorg/interprocess

Incompatible shared memory emulation strategies (Windows)

Offen
#279 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
C++
Sterne
185
Forks
131
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

### Info
Boost version: 1.89.0
Platform: Windows (x64)
Compiler: MSVC 14.3 (Visual Studio 2022)

### Description
Boost.Interprocess uses a boot timestamp to construct unique per-boot shared memory file paths (via `create_shared_dir_cleaning_old_and_get_filepath` and related helpers). On each call, it also cleans up all shared folders that do not match the current boot timestamp. On Windows, the boot timestamp can be obtained through different strategies that return different values for the same boot session.

### Impact
- applications that link against the same Boost.Interprocess version but use different strategies for getting the boot timestamp will clean up each others shared memory emulation folder
- same for applications that link against different versions of Boost.Interprocess, since the default changed between versions

### Suggested fix
- standardize on a single reliable mechanism (if even possible) and deprecate all other strategies
- add a fallback/search mechanism that checks all possible locations for the current boot session
- exclude all possible locations for the current boot session from the cleanup in `create_shared_dir_cleaning_old_and_get_filepath`

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Beginne mit dem Lesen von create_shared_dir_cleaning_old_and_get_filepath und den zugehörigen Windows-Hilfsfunktionen für Boot-Zeitstempel. Vergleiche die möglichen Zeitstempelwerte für eine Boot-Sitzung und verfolge, wie die Bereinigung gemeinsame Ordner auswählt. Erledigt ist die Aufgabe, wenn Anwendungen, die unterschiedliche Zeitstempelstrategien verwenden, nicht mehr die Ordner der Shared-Memory-Emulation der jeweils anderen entfernen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
cpp
Bereich
operating-systems
Issue-Typ
Bug
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.