14-16 Mar 2026
Voltar ao catalogo

Lock global para cotacao manual bloqueia todo o sistema

P-05
MediumAchado ConfirmadoEscalabilidadeRodada 2

Descricao

CotarOfertaAsync adquire lock OfertaLock:InUse com escopo global, bloqueando todos os aceites manuais do sistema.

Evidencia
`OfertasAppService.Extended.cs` linha 49: lock com chave global sem identificador de oferta ou tenant.
Impacto Tecnico

Contencao global em operacao critica. Aceite lento bloqueia todos os outros.

Impacto de Negocio

Aceites manuais serializados para todo o sistema, causando timeouts em horario de pico.

Recomendacao

Alterar chave do lock para OfertaLock:InUse:Tenant:{tenantId}:Oferta:{cogProgColeta}.

Arquivos Afetados

aspnet-core/src/cargo_fleet.Application/Ofertas/OfertasAppService.Extended.cs
{
  "id": "P-05",
  "title": "Lock global para cotacao manual bloqueia todo o sistema",
  "severity": "Medium",
  "type": "achado confirmado",
  "category": "scalability",
  "description": "`CotarOfertaAsync` adquire lock `OfertaLock:InUse` com escopo global, bloqueando todos os aceites manuais do sistema.",
  "evidence": "`OfertasAppService.Extended.cs` linha 49: lock com chave global sem identificador de oferta ou tenant.",
  "technicalImpact": "Contencao global em operacao critica. Aceite lento bloqueia todos os outros.",
  "businessImpact": "Aceites manuais serializados para todo o sistema, causando timeouts em horario de pico.",
  "recommendation": "Alterar chave do lock para `OfertaLock:InUse:Tenant:{tenantId}:Oferta:{cogProgColeta}`.",
  "files": [
    "aspnet-core/src/cargo_fleet.Application/Ofertas/OfertasAppService.Extended.cs"
  ],
  "pass": 2
}