poldek i deadlocki

Artur Frysiak wiget w pld.org.pl
Wto, 15 Paź 2002, 10:38:56 CEST


# poldek -s /mirror/wiget/malakith/
Weryfikacja /mirror/wiget/malakith/packages.dir.gz... OK
Wczytywanie /mirror/wiget/malakith/packages.dir.gz...
Przeczytano 124 pakiety
Ładowanie pakietów z bazy [/var/lib/rpm]................zrobione
Przeczytano 1302 pakiety

Witaj w poldekowym trybie interaktywnym. Wpisz "help" aby otrzymać pomoc.


poldek> greedy-upgrade --reinstall *
Przetwarzanie zależności...
glib2-devel-2.1.0-1 zostanie zastąpiony przez glib2-devel-2.1.0-2
glib2-2.1.0-1 zostanie zastąpiony przez glib2-2.1.0-2
Zaznaczono 2 pakiety do instalacji, 2 do usunięcia:
I glib2-2.1.0-2
I glib2-devel-2.1.0-2
R glib2-2.1.0-1
R glib2-devel-2.1.0-1
Kontynuować? [Y/n]
Uruchamianie rpm --upgrade --replacefiles --replacepkgs -vh --root / --noorder...
Preparing...                ########################################### [100%]
   1:glib2                  ########################################### [ 50%]

i wisi.
No to zerknijmi co robi rpm.
# pstree -p -l|grep poldek
|-xterm(3310)---zsh(3312)---su(3321)---bash(3336)---poldek(21804)---rpm(22312)
# strace -p 22312
select(0, NULL, NULL, NULL, {0, 510000}) = 0 (Timeout)
select(0, NULL, NULL, NULL, {1, 0})     = 0 (Timeout)
select(0, NULL, NULL, NULL, {1, 0})     = 0 (Timeout)
select(0, NULL, NULL, NULL, {1, 0})     = 0 (Timeout)
select(0, NULL, NULL, NULL, {1, 0})     = 0 (Timeout)
select(0, NULL, NULL, NULL, {1, 0})     = 0 (Timeout)
select(0, NULL, NULL, NULL, {1, 0})     = 0 (Timeout)
select(0, NULL, NULL, NULL, {1, 0})     = 0 (Timeout)
select(0, NULL, NULL, NULL, {1, 0} <unfinished ...>

czyli zalockowany :(
No to zerknijmy co tam poldek trzyma pootwierane:
# cd /proc/21804/fd
4-[root w wiget fd]# ls -l
razem 0
lrwx------    1 root     proc           64 paź 15 10:34 0 -> /dev/pts/3
lrwx------    1 root     proc           64 paź 15 10:34 1 -> /dev/pts/3
lr-x------    1 root     proc           64 paź 15 10:34 10 -> /var/lib/rpm/Providename
lr-x------    1 root     proc           64 paź 15 10:34 11 -> /var/lib/rpm/Basenames
lr-x------    1 root     proc           64 paź 15 10:34 12 -> /var/lib/rpm/Conflictname
lrwx------    1 root     proc           64 paź 15 10:34 13 -> /dev/ptmx
lrwx------    1 root     proc           64 paź 15 10:34 14 -> /dev/pts/5
lrwx------    1 root     proc           64 paź 15 10:34 2 -> /dev/pts/3
lr-x------    1 root     proc           64 paź 15 10:34 3 -> /etc/poldek.conf
lrwx------    1 root     proc           64 paź 15 10:34 4 -> /root/.poldek-cache/poldek..lck
lr-x------    1 root     proc           64 paź 15 10:34 5 -> /mirror/wiget/malakith/packages.dir.mdd
lr-x------    1 root     proc           64 paź 15 10:34 6 -> /mirror/wiget/malakith/packages.dir.gz
lr-x------    1 root     proc           64 paź 15 10:34 7 -> /var/lib/rpm/Packages
lr-x------    1 root     proc           64 paź 15 10:34 8 -> /var/lib/rpm/Name
lr-x------    1 root     proc           64 paź 15 10:34 9 -> /var/lib/rpm/Requirename

Czyli jednak nie zamknął bazy, a nawet otworzył ją dwa razy :(

Co jeszcze mam podać aby było łatwiej to naprawić?

Pozdrawiam
-- 
Artur Frysiak
http://www.pld-linux.org/



Więcej informacji o liście dyskusyjnej pld-installer