Skip to main content

Os resultados do SARIF excedem um ou mais limites

Saiba como resolver problemas quando um arquivo SARIF é rejeitado por code scanning porque um ou mais limites foram excedidos.

Sobre os limites de code scanning nos resultados do SARIF

# SARIF results exceed soft limits
  Locations for an alert exceeded limits
  Analysis SARIF file exceeded alert limits
  Rule tags in SARIF file exceed limits
  Alert in SARIF upload exceeded thread flow location limits

# SARIF results exceed hard limit
  Alert(s) in SARIF file exceeded thread flow location limits
  Analysis SARIF file rejected due to extension limits
  Analysis SARIF file rejected due to location limit
  Analysis SARIF file rejected due to rule tag limits
  Analysis SARIF file rejected due to result limits
  Analysis SARIF file rejected due to rule limits
  Analysis SARIF file rejected due to run limits

Code scanning define dois tipos de limites em campos em arquivos de resultados do SARIF.

  • Limites flexíveis que determinam quantos dados são armazenados e exibidos aos usuários.
  • Limites rígidos que determinam a quantidade máxima de dados aceitos para processamento.

Você pode ver esses erros para arquivos SARIF gerados por CodeQL ou por ferramentas de análise de terceiros.

Dados SARIFValores máximosLimites de exibição
Execuções por arquivo20Nenhum
Resultados por execução25,000Somente os 5 mil resultados principais serão incluídos, priorizados por severidade.
Regras por execução25,000Nenhum
Extensões de ferramenta por execução100Nenhum
Locais de fluxo de threads por resultado10.000Somente os mil principais locais de fluxo de threads serão incluídos, usando a priorização.
Local por resultado1,000Somente 100 locais serão incluídos.
Marcas por regra20Somente dez marcas serão incluídas.

Para obter informações sobre como validar o arquivo SARIF, confira "Suporte SARIF para a varredura de código".

Corrigir erros de limite flexível

Quando os limites flexíveis são excedidos, o code scanning mostra as informações de prioridade mais alta. Muitas vezes, você não precisa fazer nenhuma alteração na configuração do code scanning. À medida que sua equipe corrige alertas, o número de resultados relatados em cada execução será reduzido até que eles estejam dentro dos limites flexíveis e todos os resultados sejam exibidos. Como alternativa, você pode usar as abordagens descritas para erros de limite rígido.

Correção de "Arquivo SARIF de análise rejeitado devido a limites de resultados"

Há muitas considerações e possíveis soluções para reduzir o número de resultados incluídos em um arquivo de resultados do SARIF. Para obter diretrizes, confira "O arquivo de resultados SARIF é muito grande".

Correção de "Alertas no arquivo SARIF excederam os limites de localização do fluxo de threads"

Você pode configurar a análise para limitar o número de caminhos de fluxo de dados incluídos nos resultados. Por padrão, quatro caminhos de fluxo de dados são incluídos para cada resultado.

  • Configuração avançada do CodeQL para code scanning: atualize a etapa analyze para limitar o número de caminhos a um máximo de um ou zero.

    - name: Perform CodeQL Analysis
      uses: github/codeql-action/analyze@v3
      env: 
        CODEQL_ACTION_EXTRA_OPTIONS: '{"database":{"interpret-results":["--max-paths", 1]}}'
    
  • CodeQL CLI database analyze: atualize o comando de análise de banco de dados para incluir o sinalizador --max-paths=1. Para obter mais informações, confira "database analyze".

Observação: a configuração max-paths afeta os resultados de todas as consultas de fluxo de dados.

Correção de "Arquivo SARIF de análise rejeitado devido a limites de execução"

A abordagem mais simples é gerar um novo arquivo SARIF para cada execução e carregar cada arquivo separadamente. Você adiciona uma "categoria" a cada resultado e isso permite que o code scanning armazene e exiba os resultados adequadamente. Para obter mais informações, confira "Suporte SARIF para a varredura de código".

Correção de "Arquivo SARIF de análise rejeitado devido a limites de regra"

Há duas abordagens possíveis aqui.

  1. Reduza o número de regras usadas para analisar o código. Para obter mais informações, confira "Definir o conjunto de consultas a ser executado" e "Excluir uma consulta da análise" em "Arquivo de resultados do SARIF muito grande".
  2. Execute a análise duas vezes, cada vez com um conjunto diferente de regras, e carregue os dois arquivos de resultados no code scanning. Para obter mais informações, confira "Suporte SARIF para a varredura de código".

Correção de "Arquivo SARIF de análise rejeitado devido a limites de extensão"

A abordagem mais simples é criar um arquivo SARIF separado sempre que você executar a ferramenta e carregar cada arquivo separadamente. Talvez você também precise entrar em contato com o mantenedor da ferramenta. Para obter mais informações, confira "Suporte SARIF para a varredura de código".

A análise do CodeQL não deve gerar esse erro. Se você vir esse erro ao usar a ação CodeQL ou CodeQL CLI, entre em contato com Suporte do GitHub para nos informar. Para obter mais informações, confira "Entrando em contato com o suporte do GitHub".

Correção de "Arquivo SARIF de análise rejeitado devido a limites de localização"

A melhor maneira de resolver esse problema geralmente é identificar a consulta que relata muitos locais e excluí-la da análise. Para obter informações sobre como fazer isso, confira "O arquivo de resultados SARIF é muito grande".

Correção de "Arquivo SARIF de análise rejeitado devido a limites de tag de regra"

Você precisa atualizar o arquivo SARIF ou o gerador para que a matriz de tags relatadas para cada objetoreportingDescriptor seja menor que 10. Para obter mais informações, confira properties.tags[] em "Suporte SARIF para a varredura de código".