Skip to content

Review locks in Arch and Plan #59

@arikon

Description

@arikon

Сейчас локи — это число в this.lock, когда оно больше 0, считаем, что лок взят.

С локами есть проблема, когда выполняются несколько узлов параллельно и один их них фейлится. При этом между событием фейла первого узла и обработкой фейла плана второй узел успевает вызвать arch.withLock(), в связи с чем устанавливается лок на arch (и на все связанные с ним планы).

Получается так, что во время обработки фейла плана план заблокирован, то есть находится в слегка грязном состоянии.

Надо пересмотреть всё идею локов: для чего мы их делаем, как именно они должны работать внутри.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions