Skip to content

[BOLT] Crash when calling setIgnored on multiple threads #165362

@bgergely0

Description

@bgergely0

setIgnored() is called concurrently in bolt/lib/Passes/MarkRAStates.cpp.

Details

setIgnored() calls scanExternalRefs, which calls BC.SymbolicDisAsm->setSymbolizer to set a BinaryFunction-specific symbolizer, therefore making calling setIgnored from multiple threads operating on individual BinaryFunctions unsafe.

setIgnored also calls clearDisasmState, which writes to BC.UndefinedSymbols, making concurrent access unsafe again.

Metadata

Metadata

Assignees

Labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions