O caminho não é o objeto aberto
O último ensaio de concorrência mantém um worker titular e remove apenas o nome do seu ficheiro privado de lock. Um novo worker abre o mesmo caminho, que agora cria outro objeto, e obtém um segundo lock. O guião confirma que o primeiro continua vivo e que os inodes são diferentes. Este comportamento é a razão para não recomendar limpeza por idade como recuperação geral. A idade ou a existência de um ficheiro não prova que o titular morreu, e uma aquisição no objeto recriado não elimina o lock anterior. O manual Apple arquivado explica a relação entre remover um nome e referências abertas; o laboratório fornece a observação concreta. Toda a remoção ocorreu em recursos descartáveis próprios, sem tocar em serviços existentes.
Comparar e substituir são passos separados
O worker lê o estado, compara expectedRevision e, se a regra permitir, escreve um candidato e chama os.replace. Uma substituição local bem-sucedida não transforma a leitura anterior e a escrita numa operação condicional indivisível. Entre essas etapas, um escritor que ignore o protocolo pode modificar o estado. O laboratório não força essa corrida específica e não a apresenta como falha observada; mostra um escritor externo antes da leitura e uma escrita cega posterior. Essa escrita cega substitui outside-protocol por blind-overwrite na revisão 11. Para um destino real, escolhe e ensaia um mecanismo que proteja a condição e a mutação no âmbito necessário. Acrescentar leituras pode detetar certas diferenças, mas não elimina por si só a fronteira entre verificar e usar.
Terminação liberta recursos, não desfaz história
O guião termina por SIGTERM apenas um subprocesso que criou e cuja identidade conhece. Aguarda a saída, observa o código negativo e inicia outro titular, que obtém o lock. O estado permanece na revisão 11: não houve rollback do valor escrito. Isto permite separar três perguntas numa mudança APS: quem tem agora o recurso, que estado ficou aplicado e que trabalho pode continuar noutros componentes. O laboratório não lança operações remotas, pelo que não demonstra cancelamento remoto nem ausência de efeitos pendentes. Num procedimento real, não substituas essa análise por um kill baseado na duração. Define autoridade, identificação do titular, observação dos efeitos, condições de paragem e critérios para retomar ou reconciliar o trabalho.
Aceitar o mecanismo e a capacidade de RUN
A oficina proposta pede a APS, fornecedor e RUN que expliquem em inglês a contenção, a revisão rejeitada, o escritor externo e os dois objetos de lock. Devem apresentar uma decisão de janela e uma recuperação com responsáveis e critérios observáveis. O guião existe, mas não foi executado por um grupo humano. Os treze grupos locais passaram duas vezes; não validam filesystem remoto, coordenação entre hosts, fencing ou permissões. Mantém essas lacunas na aceitação técnica. Na revisão posterior, distingue ações: cobrir todos os escritores, impedir limpeza destrutiva do objeto de coordenação, preservar plano atualizado e ensaiar retoma são resultados diferentes. Cada ação precisa de responsável, evidência de conclusão e verificação da lacuna que trata; instalar um alerta não substitui esses controlos.
python3 content/labs/change-coordination/run.py --output /tmp/dr-change-lock-recovery.json
# Compare ownerExitReleasesLock and recreatedPathSplitsLockIdentity.
# Never apply the deliberate unlink experiment to an existing service.Apagar e recriar o caminho privado permite dois titulares em inodes distintos; terminar um titular liberta o lock mas conserva revisão 11.
Armadilhas comuns
Apagar .lock pela idade, confundir os.replace com comparação condicional atómica ou presumir que terminar um processo desfaz os seus efeitos.
Tópicos relacionados: Escritores não participantes · Handover e ações corretivas
Preserva a identidade do mecanismo e verifica o estado efetivo; libertação local, recuperação de serviço e reconciliação exigem evidências próprias.
Referência: Postmortem Culture: Learning from Failure · DR Change Management 2026.1; independent technical curriculum