Bug 4707

Summary: apt-shell segfault после прерывания downloading
Product: Sisyphus Reporter: Nick S. Grechukh <gns>
Component: aptAssignee: Sergey Bolshakov <sbolshakov>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P2 CC: boyarsh, dottedmag, glebfm, imz, ldv, mike, mouse, php-coder, placeholder, rider
Version: unstable   
Hardware: all   
OS: Linux   
Bug Depends on: 3091    
Bug Blocks:    
Attachments:
Description Flags
apt-0.5.15cnc6-alterator3.patch none

Description Nick S. Grechukh 2004-07-06 17:07:13 MSD
apt-shell падает по segfault при любом действии 
Steps to Reproduce:
1.запускаем apt-shell 
2.dist-upgrade 
3.commit 
4. начинает качать -> Ctrl-C 
Actual Results:  
после этого при любой команде apt-shell падает с segfault
Comment 1 Nick S. Grechukh 2004-07-07 13:45:12 MSD
поправка из #3091: 
валится если просто commit был прерван или обломался. 
Comment 2 Dmitry V. Levin 2004-07-10 20:27:34 MSD
apt-shell sux completely.
Comment 3 Nick S. Grechukh 2004-07-10 20:32:54 MSD
а что так? 
имхо вещь удобная, с tab autoexpand намного легче жить. не надо постоянно 
apt-cache search, rpm -q, и т.д. 
 
Comment 4 Denis Ovsienko 2005-02-07 11:23:04 MSK
apt> commit
The following NEW packages will be installed:
  cdp libghttp orpheus
0 upgraded, 3 newly installed, 0 removed and 0 not upgraded.
Need to get 0B/208kB of archives.
After unpacking 449kB of additional disk space will be used.
Do you want to continue? [Y/n] 
Err file: i586/classic cdp 0.33-ipl11mdk
  File not found
Err file: i586/classic libghttp 1.0.9-alt4
  File not found
Err file: i586/classic orpheus 1.5-alt2
  File not found
Failed to fetch [...] File not found
Failed to fetch [...] File not found
Failed to fetch [...] File not found
There are broken packages. Run `check' to see them.
You can try to fix them automatically with `install -f'.
E: Unable to fetch some archives, maybe run apt-get update or try with
--fix-missing?
apt> commit
Segmentation fault
Comment 5 Anton Farygin 2005-06-10 16:39:58 MSD
Created attachment 929 [details]
apt-0.5.15cnc6-alterator3.patch

Патч, исправляющий эту ошибку.
Небольшие комментарии:

судя по всему apt-shell был написан методом копирования кусков кода из
apt-get'а.
Т.к. apt-get никогда не был предназначен для дальнейшей работы после ошибочного
download'а пакетов, то соответственно лезут всякие баги.

В данном случае происходит следущее:
после установки пакетов apt-shell'у необходимо перечитать Cache, что бы
обновить информацию о состояниях.
а Cache не перечитывается, если произошла хоть одна ошибка.
но при этом авторы apt-shell'а считают, что удалить объект Cache надо в любом
случае.

Соответственно возникает недоделанный Cache, в котором все и падает.

После раздумья было принято решение обновлять в этом случае Cache всегда
(затрагивает поведение исключительно apt-shell), ибо часть пакетов могло
поставиться, а часть нет и нам безусловно хочется посмотреть после установки
unmet'ы, коих не будет видно пока не перечитается Cache.

В общем - так оно не сегфолтится.

Попутно в этом же патче исправлена еще одна ошибка, которая проявилась после
того, как apt-shell смог работать дальше после ошибки установки пакетов ;-)
Comment 6 Anton Farygin 2005-06-10 16:40:54 MSD
да, патч скорее всего будет приложен в след. сборке apt'а, ибо мы нарвались на
эту ошибку в альтератор-пакагес ;-)
Comment 7 Dmitry V. Levin 2005-11-26 00:47:20 MSK
apt-shell'ом у нас теперь Сергей заведует.
Comment 8 Slava Semushin 2007-08-01 17:01:21 MSD
(In reply to comment #6)
> да, патч скорее всего будет приложен в след. сборке apt'а, ибо мы нарвались на
> эту ошибку в альтератор-пакагес ;-)

Ну что, приложили? :))

Comment 9 Nick S. Grechukh 2007-11-12 13:23:50 MSK
apt-0.5.15lorg2-alt12 

кажется, не ломается - прервал по ctrl-c, запустил в том же сеансе install,
commit, снова прервал, запустил еще раз.

вроде работает.
Comment 10 Slava Semushin 2008-12-31 17:30:45 MSK
(In reply to comment #9)
> вроде работает.

Ну тогда почему бы не закрыть баг?
Comment 11 Mikhail Gusarov 2008-12-31 17:32:58 MSK
per c#9
Comment 12 Anton Farygin 2008-12-31 17:33:33 MSK
Действительно, в честь НГ ;)