Bug 4707 - apt-shell segfault после прерывания downloading
: apt-shell segfault после прерывания downloading
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/apt)
: unstable
: all Linux
: P2 normal
Assigned To:
:
:
:
: 3091
:
  Show dependency tree
 
Reported: 2004-07-06 17:07 by
Modified: 2008-12-31 17:33 (History)


Attachments
apt-0.5.15cnc6-alterator3.patch (828 bytes, patch)
2005-06-10 16:39, Anton Farygin
no flags Details | Diff


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2004-07-06 17:07:13
apt-shell падает по segfault при любом действии 
Steps to Reproduce:
1.запускаем apt-shell 
2.dist-upgrade 
3.commit 
4. начинает качать -> Ctrl-C 
Actual Results:  
после этого при любой команде apt-shell падает с segfault
------- Comment #1 From 2004-07-07 13:45:12 -------
поправка из #3091: 
валится если просто commit был прерван или обломался. 
------- Comment #2 From 2004-07-10 20:27:34 -------
apt-shell sux completely.
------- Comment #3 From 2004-07-10 20:32:54 -------
а что так? 
имхо вещь удобная, с tab autoexpand намного легче жить. не надо постоянно 
apt-cache search, rpm -q, и т.д. 
 
------- Comment #4 From 2005-02-07 11:23:04 -------
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 From 2005-06-10 16:39:58 -------
Created an attachment (id=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 From 2005-06-10 16:40:54 -------
да, патч скорее всего будет приложен в след. сборке apt'а, ибо мы нарвались на
эту ошибку в альтератор-пакагес ;-)
------- Comment #7 From 2005-11-26 00:47:20 -------
apt-shell'ом у нас теперь Сергей заведует.
------- Comment #8 From 2007-08-01 17:01:21 -------
(In reply to comment #6)
> да, патч скорее всего будет приложен в след. сборке apt'а, ибо мы нарвались на
> эту ошибку в альтератор-пакагес ;-)

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

------- Comment #9 From 2007-11-12 13:23:50 -------
apt-0.5.15lorg2-alt12 

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

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

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