Bug 40803

Summary: propagator: load_ramdisk_fd: sloppy error handling
Product: Sisyphus Reporter: Alexey Sheplyakov <asheplyakov>
Component: propagatorAssignee: Alexey Sheplyakov <asheplyakov>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: iv, mike, rider, sem, sin
Version: unstable   
Hardware: x86_64   
OS: Linux   
Bug Depends on:    
Bug Blocks: 40766    

Description Alexey Sheplyakov 2021-08-23 14:41:12 MSK
http://git.altlinux.org/gears/p/propagator.git?p=propagator.git;a=blob;f=tools.c;h=bbe6289791625df88dcbd113e9f6b17d86dbac65;hb=095e17ab91a18021753ac82142fd9c2100a6bc78#l315

Если чтение хоть раз произошло успешно, то seems_ok = 1.
Однако если потом read выдаст ошибку (например, сервер закрыл соединение,
или пользователь внезапно вынул флешку, с которой грузились, и т.п.),
то её `load_ramdisk_fd` уже не проверяет, а просто монтирует тот кусок,
который удалось прочитать. В лучшем случае ругнётся, а в худшем - повиснет,
и не сразу, а когда squashfs не найдёт нужного блока. И тогда уже трудно
понять, что произошло.

Неоднократно нарывался на такое при загрузке по http (ядро виснет, иногда
squashfs успевает ругнуться).
Comment 1 Repository Robot 2021-09-07 14:19:29 MSK
propagator-20210907-alt1 -> sisyphus:

 Tue Sep 07 2021 Alexey Sheplyakov <asheplyakov@altlinux> 20210907-alt1
 - Improved IO errors handling when loading stage2 (closes: #40803)
 - Support loading stage2 images >= 2GB (related: #40710)