14-16 Mar 2026
Voltar ao catalogo

Dois workers concorrentes processando as mesmas ofertas (RACE CONDITION SISTEMICA)

P-01
CriticalAchado ConfirmadoArquiteturaRodada 2

Descricao

RegistrarOfertasWorker e ProcessarOfertasWorker ambos registrados e ativos, processando as mesmas ofertas Galileu com logicas distintas e endpoints diferentes. Sem coordenacao mutua.

Evidencia
`RegistrarOfertasWorker.cs` e `ProcessarOfertasWorker.cs` — ambos registrados no DI do `HttpApi.Host`. O legado usa `aceitarOferta`, o novo usa `AceitarProgramacaoAsync`.
Impacto Tecnico

Aceites duplicados na API Galileu, estados inconsistentes, contadores QuantidadeCarros decrementados duas vezes.

Impacto de Negocio

Over-accept de fretes, comprometimentos financeiros com transportadoras, recusa de cargas validas por contadores zerados.

Recomendacao

Desativar e remover RegistrarOfertasWorker do registro de DI. Confirmar se foi mantido intencionalmente.

Arquivos Afetados

aspnet-core/src/cargo_fleet.HttpApi.Host/BackgroundJobs/RegistrarOfertasWorker.csaspnet-core/src/cargo_fleet.HttpApi.Host/BackgroundJobs/ProcessarOfertasWorker.cs

Acoes Relacionadas

{
  "id": "P-01",
  "title": "Dois workers concorrentes processando as mesmas ofertas (RACE CONDITION SISTEMICA)",
  "severity": "Critical",
  "type": "achado confirmado",
  "category": "architecture",
  "description": "`RegistrarOfertasWorker` e `ProcessarOfertasWorker` ambos registrados e ativos, processando as mesmas ofertas Galileu com logicas distintas e endpoints diferentes. Sem coordenacao mutua.",
  "evidence": "`RegistrarOfertasWorker.cs` e `ProcessarOfertasWorker.cs` — ambos registrados no DI do `HttpApi.Host`. O legado usa `aceitarOferta`, o novo usa `AceitarProgramacaoAsync`.",
  "technicalImpact": "Aceites duplicados na API Galileu, estados inconsistentes, contadores `QuantidadeCarros` decrementados duas vezes.",
  "businessImpact": "Over-accept de fretes, comprometimentos financeiros com transportadoras, recusa de cargas validas por contadores zerados.",
  "recommendation": "Desativar e remover `RegistrarOfertasWorker` do registro de DI. Confirmar se foi mantido intencionalmente.",
  "files": [
    "aspnet-core/src/cargo_fleet.HttpApi.Host/BackgroundJobs/RegistrarOfertasWorker.cs",
    "aspnet-core/src/cargo_fleet.HttpApi.Host/BackgroundJobs/ProcessarOfertasWorker.cs"
  ],
  "pass": 2,
  "relatedActions": [
    "ACT-5.1.1"
  ],
  "relatedFindings": [
    "P-02"
  ]
}