14-16 Mar 2026
Voltar ao Plano

Corrigir QuantidadeCarros-- com UPDATE atomico (race condition critica)

ACT-5.3.2
2a Pass. MedioMediaEsforco: MComplexidade: MediaParalelizavel
Por que e urgente

Decremento em memoria sem UPDATE atomico pode causar over-accept de fretes

Risco de nao fazer

Aceite de mais fretes do que o permitido pelas regras de rota

Modulos Impactados

OfertasAceiteResultApplier.csRegistrarOfertaService.cs

Passos de Implementacao

  1. 1Substituir `rota.QuantidadeCarros--; await _rotaManager.UpdateAsync(...)` por SQL: `UPDATE AppRotas SET QuantidadeCarros = QuantidadeCarros - 1 WHERE Id = ? AND QuantidadeCarros > 0`
  2. 2Verificar o numero de linhas afetadas — se 0, o aceite deve ser revertido (contador ja zerado por outro ciclo)
  3. 3Alternativamente: adicionar `ConcurrencyStamp` na entidade `Rota` e usar optimistic concurrency do EF Core

Achados Relacionados