Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

[TS PBT] Save campaign-file artifacts before stdout publication

Aberta Para iniciantes
#612 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

@CaelmBleidd já está trabalhando nisso.

Desde 17/10/2026.

  • #614 de @CaelmBleidd — aberto

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
74/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
kotlin
Domínio
tooling

Direção de pesquisa

Leia CampaignFileRequest.kt por volta das linhas 57–59 e acompanhe como ele codifica a campanha e publica stdout e o artefato solicitado. Adicione ou adapte um teste de regressão com um destino de saída que confirme que o artefato pode ser lido no primeiro acréscimo e, em seguida, falhe com um erro de E/S. O trabalho está concluído quando o artefato é salvo antes da publicação de stdout, ambas as saídas mantêm JSON idêntico e a falha na gravação do arquivo preserva o fallback completo de stdout e o erro original.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

campaign-file encodes the completed campaign, writes the entire JSON to stdout, and only then saves the requested artifact file. A slow, failed or interrupted stdout operation can therefore discard a result that the runner has already produced and serialized.

The order is present in the minimal public parent #581 (028d5b0c116502525cdb2329f24bde665807922f), in CampaignFileRequest.kt:57-59.

Observed in the frozen local class pilot: multi-algorithms-singly-list-wide / 16061113 / SYMBOLIC_ONLY retained exactly 65536 bytes of campaign JSON on stdout, but no campaign.json. The prefix includes stop=DEADLINE, stoppedAt=CONFIRMATION, elapsedMillis=19611, and Native verification deadline reached; 99 inputs remain unchecked. The outer process guard then returned exit -9. The runner and JSON encoding had completed; stdout publication preceded the missing file write. The retained stdout SHA-256 is c60098bca32dc8ed3bc91816afd5213d5e0a8bab3fa27e7b150da76cc67eed46.

Acceptance:

  • Save the requested destination before the first stdout append.
  • Keep one JSON encoding and the existing identical stdout/file JSON contract.
  • Preserve complete stdout fallback and the original I/O error when the file write itself fails.
  • A meaningful regression uses an output sink that checks that a readable artifact already exists on its first append, then fails with an I/O error. The failure must leave the artifact intact.
  • Do not rerun the property or add a writer/protocol framework.

This is a narrow result-publication fix under #354. It does not resolve the separate caller/JVM deadline-origin mismatch (#613) or establish the internal cause of other zero-stdout missing-artifact runs. A killed process remains incomplete for primary experimental credit even if its artifact can be retained.

Linguagem predominante
Kotlin
Estrelas
33
Forks
27
Merge médio
3d 21h
PRs com merge (30d)
88

Preparar o ambiente

Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de UnitTestBot/usvm

Todas as issues de UnitTestBot/usvm

Issues semelhantes

Mais issues de Kotlin

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.