Bug 58109 - valkey-check-aof некорректно проверяет Multi-Part AOF-файлы
Summary: valkey-check-aof некорректно проверяет Multi-Part AOF-файлы
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: valkey (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Alexey Shabalin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2026-03-04 13:08 MSK by Михаил Ногин
Modified: 2026-03-05 10:25 MSK (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Михаил Ногин 2026-03-04 13:08:37 MSK
Стенды:
ALT Server 11.0 (Обновленный до Sisyphus)

Версия пакета:
valkey-9.0.3

Шаги воспроизведения:
1. Установить пакет: # apt-get install valkey
2. # sed -i 's/^appendonly no/appendonly yes/' /etc/valkey/valkey.conf && systemctl restart valkey; systemctl status valkey
3. # valkey-cli hset person id 123 && valkey-cli save
4. # valkey-check-aof /var/lib/valkey/appendonlydir/appendonly.aof.manifest

Ожидаемый результат:
Start checking Multi Part AOF  
Start to check BASE AOF (RDB format).  
[offset 0] Checking RDB file /var/lib/valkey/appendonlydir/appendonly.aof.2.base.rdb  
[offset 27] AUX FIELD valkey-ver = '8.1.4'  
[offset 41] AUX FIELD redis-bits = '64'  
[offset 53] AUX FIELD ctime = '1772614722'  
[offset 68] AUX FIELD used-mem = '947392'  
[offset 80] AUX FIELD aof-base = '1'  
[offset 82] Selecting DB ID 0  
[offset 116] Checksum OK  
[offset 116] \o/ RDB looks OK! \o/  
[info] 1 keys read  
[info] 0 expires  
[info] 0 already expired  
RDB preamble is OK, proceeding with AOF tail...  
AOF analyzed: filename=appendonly.aof.2.base.rdb, size=116, ok_up_to=116, ok_up_to_line=1, diff=0  
BASE AOF appendonly.aof.2.base.rdb is valid  
Start to check INCR files.  
INCR AOF appendonly.aof.2.incr.aof is empty  
All AOF files and manifest are valid

Реальный результат:
Start checking Multi Part AOF  
Start to check BASE AOF (RESP format).  
AOF appendonly.aof.1.base.rdb format error  
AOF analyzed: filename=appendonly.aof.1.base.rdb, size=89, ok_up_to=0, ok_up_to_line=1, diff=89  
AOF appendonly.aof.1.base.rdb is not valid. Use the --fix option to try fixing it.

Дополнительно:
Не воспроизводиться в P11
Использование флага --fix, который указывается в реальном результате, не решает проблему
Comment 1 Alexander Makeenkov 2026-03-05 10:25:21 MSK
valkey-9.0.3-alt1:

# xxd /var/lib/valkey/appendonlydir/appendonly.aof.1.base.rdb | head -1
00000000: 5641 4c4b 4559 3038 30fa 0a76 616c 6b65  VALKEY080..valke

valkey-8.1.4-alt2:

# xxd /var/lib/valkey/appendonlydir/appendonly.aof.1.base.rdb | head -1
00000000: 5245 4449 5330 3031 31fa 0a76 616c 6b65  REDIS0011..valke

Возможная причина:

"В Valkey 8.x и Redis файл RDB начинался с REDIS0011 (магическое слово REDIS). Начиная с Valkey 9.0, magic bytes были изменены с REDIS на VALKEY, чтобы форматы явно различались. Однако valkey-check-aof по-прежнему ищет сигнатуру REDIS для определения RDB-формата. Не находя её, он ошибочно классифицирует файл как RESP format и сообщает об ошибке — хотя сам файл абсолютно валиден."