boostorg / boostorg/interprocess

open_or_create stuck in retry loop indefinitely on macOS aarch64 if retries are enabled

Aperta
#189 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
C++
Stelle
185
Fork
131
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

Hi, I don't have an isolated repro case at the moment but wanted to share my findings. I have a cross-platform application that worked well with boost 1.66 on Linux x86_64, Linux ppc64le, Linux s390x, macOS x86_64, macOS aarch64 (M1). I upgraded to boost 1.81 and all platforms worked well except macOS aarch64. On that platform open_or_create sticks in a loop and never finishes. The two macOS platforms are compiled as a single universal binary with -arch x86_64 -arch arm64 mode using Apple clang version 14.0.0 (clang-1400.0.29.202). On the same M1 host, running the x86_64 binary under Rosetta emulation works, but the native aarch64 binary hangs. Changing BOOST_INTERPROCESS_MANAGED_OPEN_OR_CREATE_INITIALIZE_MAX_TRIES to 1 to disable the new retry behavior resolves the issue. If max tries is set to 2 or more it hangs. I'm happy to run any tests you recommend but I am unlikely to have time to try to whittle down my application to a self contained repro case for at least a few weeks. Thanks, Ryan

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Inizia con open_or_create su macOS aarch64 nativo e confronta le impostazioni dei tentativi pari a 1 rispetto a 2 o più, usando la build universal-binary indicata. Traccia il motivo per cui il ciclo di tentativi non termina su arm64 mentre il binario x86_64 ha esito positivo; il lavoro è completato quando open_or_create termina con i tentativi abilitati senza introdurre regressioni sulle altre piattaforme indicate.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
cpp
Ambito
operating-systems
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.