#22143·jenkins

[JENKINS-44972] 截断的日志显示在行中间,显示了以 Base64 编码的 ConsoleNote 垃圾

作者: jenkins-infra-bot创建于 2017年6月19日更新于 2026年9月16日
标签good first issueimported-jira-issuecomponent:corepriority:minorresolution:unresolved

当您查看一个被截断的日志文件(Skipping ... Full Log)时,通常文本会在行中间恢复。这本身就很丑陋,但如果偏移量恰好位于一个已编码的 ConsoleNote 中,则在流自行纠正之前会出现一段混乱的 Base64 垃圾。

要么 console.jelly 应该使用更复杂的核心 API 来找到位于行边界的 offset(这可能效率低下);要么 AnnotatedLargeText.writeHtmlTo 应该跳过任何初始部分行,例如使用 start - 1,并使用一个包装 OutputStream,该流丢弃了所有在第一个换行符之前的内容,然后将其输入映射为输出;或者 ConsoleAnnotationOutputStream 应该具有此选项。

--- 最初由 jglick 报告,导入自: 截断日志显示在行中间,显示 Base64 编码的 ConsoleNote 垃圾
  • assignee: shreygupta198
  • status: Open
  • priority: Minor
  • component(s): core
  • label(s): newbie-friendly
  • resolution: Unresolved
  • votes: 2
  • watchers: 4
  • imported: 2025-11-24
原始问题的原始内容

当您查看一个被截断的日志文件(Skipping ... Full Log)时,通常文本会在行中间恢复。这本身就很丑陋,但如果偏移量恰好位于一个已编码的 ConsoleNote 中,则在流自行纠正之前会出现一段混乱的 Base64 垃圾。

要么 console.jelly 应该使用更复杂的核心 API 来找到位于行边界的 offset(这可能效率低下);要么 AnnotatedLargeText.writeHtmlTo 应该跳过任何初始部分行,例如使用 start - 1,并使用一个包装 OutputStream,该流丢弃了所有在第一个换行符之前的内容,然后将其输入映射为输出;或者 ConsoleAnnotationOutputStream 应该具有此选项。

内容来源: jenkinsci/jenkins