<feed xmlns='http://www.w3.org/2005/Atom'>
<title>jellyfin/tests/Jellyfin.Server.Implementations.Tests/FullSystemBackup/BackupServiceTests.cs, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://git.b0n.dev/jellyfin/atom?h=master</id>
<link rel='self' href='https://git.b0n.dev/jellyfin/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/'/>
<updated>2026-07-21T06:54:23Z</updated>
<entry>
<title>fix: use build output directory for backup test temp root to avoid low free-space failures on Windows CI runners</title>
<updated>2026-07-21T06:54:23Z</updated>
<author>
<name>zerafachris</name>
<email>christopher.zerafa@blocklabs.io</email>
</author>
<published>2026-07-21T06:54:23Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=299810a4a9cbf5a7704c9257796b44f5a5f17720'/>
<id>urn:sha1:299810a4a9cbf5a7704c9257796b44f5a5f17720</id>
<content type='text'>
BackupServiceTests rooted its temp directory under Path.GetTempPath(), which
on GitHub-hosted windows-latest runners resolves to the constrained system C:
drive. BackupService.CreateBackupAsync requires 5GiB free at the backup path
before starting, and the C: drive's free temp space can dip below that,
failing CreateBackupAsync_WithCorruptKeyframeDataRow_SkipsRowAndCompletesBackup
even though the fix itself is correct. Rooting the test directory under
AppContext.BaseDirectory keeps it on the same (much larger) drive as the repo
checkout on all platforms, without touching the real BackupService free-space
check.
</content>
</entry>
<entry>
<title>Skip corrupt KeyframeData rows during full system backup</title>
<updated>2026-07-17T14:44:25Z</updated>
<author>
<name>zerafachris</name>
<email>christopher.zerafa@blocklabs.io</email>
</author>
<published>2026-07-17T14:44:25Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=d7727224c2f5024c9981bc70a274826beb7f1cdf'/>
<id>urn:sha1:d7727224c2f5024c9981bc70a274826beb7f1cdf</id>
<content type='text'>
A single row with malformed KeyframeTicks JSON (e.g. a truncated array
from an interrupted write) currently aborts the entire backup, because
the try/catch in BackupService.CreateBackupAsync only wraps
serialization of an already-materialized entity, not the enumeration
itself. EF Core throws JsonReaderException from MoveNextAsync() while
materializing the corrupt row, which propagates past that catch block.

Switch to manual enumerator iteration so MoveNextAsync() failures can
be caught per-row, logged as a warning identifying the affected table,
and skipped, allowing the remaining rows and the rest of the backup to
complete.

Fixes #17216

Co-Authored-By: Claude Sonnet 5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
</feed>
