1 |
Hi! |
2 |
|
3 |
Или я что-то упускаю, или emerge странно подсчитывает пакеты для установки. |
4 |
Дело было так: недавно обновились linux-headers, glibc и gcc, так что я |
5 |
решил для профилактики всё пересобрать. Первое, что насторожило - emerge |
6 |
почему-то не все пакеты решил устанавливать: |
7 |
|
8 |
# qlist -I -v | wc |
9 |
866 866 57865 |
10 |
|
11 |
1299338495: Started emerge on: Mar 05, 2011 17:21:35 |
12 |
1299338495: *** emerge --with-bdeps --emptytree --usepkg world |
13 |
1299338543: >>> emerge (1 of 860) sys-libs/zlib-1.2.3-r1 to / |
14 |
… |
15 |
|
16 |
Где ещё 6 пакетов? Я думал, будут пропущены мультислотовые пакеты, но |
17 |
во-первых их больше 6-ти, а во-вторых судя по emerge.log они как раз все |
18 |
были установлены. Вот список, на всякий случай: |
19 |
|
20 |
# qlist -I -v -D |
21 |
app-text/docbook-xml-dtd-4.5 |
22 |
app-text/docbook-xml-dtd-4.3 |
23 |
app-text/docbook-xml-dtd-4.4 |
24 |
dev-lang/python-3.1.3 |
25 |
dev-lang/python-2.6.6 |
26 |
dev-libs/glib-2.26.1 |
27 |
dev-libs/glib-1.2.10 |
28 |
dev-libs/openssl-1.0.0d |
29 |
dev-libs/openssl-0.9.8r |
30 |
kde-base/kdelibs-4.4.5 |
31 |
kde-base/kdelibs-3.5.10 |
32 |
media-libs/libpng-1.4.5 |
33 |
media-libs/libpng-1.2.44 |
34 |
sys-devel/autoconf-2.65 |
35 |
sys-devel/autoconf-2.13 |
36 |
sys-devel/automake-1.9.6 |
37 |
sys-devel/automake-1.10.3 |
38 |
sys-devel/automake-1.11.1 |
39 |
sys-libs/db-4.8.30 |
40 |
sys-libs/db-4.7.25_p4 |
41 |
x11-libs/gtk+-2.22.1 |
42 |
x11-libs/gtk+-1.2.10 |
43 |
|
44 |
Но это ещё не всё. В ядре есть баг (не знаю, специфично ли это для hardened, |
45 |
судя по имени файла mm/filemap.c:128 это скорее всего баг в vanilla), |
46 |
который я уже видел примерно пол-года/год назад на старом ядре, и с |
47 |
огорчением обнаружил его снова на 2.6.36-hardened-r9. Баг этот обычно |
48 |
проявляется в процессе больших emerge-ей или revdep-rebuild. Думаю, это |
49 |
может быть связано с тем, что при этих операциях выполняется необычно |
50 |
много файловых операций - в других случаях я его в логах ядра не видел. |
51 |
Выглядит это примерно так: |
52 |
|
53 |
<0>------------[ cut here ]------------ |
54 |
kern.crit: kernel BUG at mm/filemap.c:128! |
55 |
<0>invalid opcode: 0000 [#1] SMP |
56 |
<0>last sysfs file: /sys/devices/virtual/vtconsole/vtcon0/uevent |
57 |
kern.warn: Modules linked in: act_police cls_fw cls_u32 sch_ingress sch_tbf sch_sfq sch_prio sch_cbq sch_htb nvidia(P) vmnet vmblock vmci vmmon sky2 8139too skge |
58 |
kern.warn: |
59 |
kern.warn: Pid: 11233, comm: emerge Tainted: P 2.6.36-hardened-r9 #2 P5B-Deluxe/System Product Name |
60 |
kern.warn: EIP: 0060:[<c10743be>] EFLAGS: 00210002 CPU: 0 |
61 |
kern.warn: EAX: 00000001 EBX: c366cce0 ECX: 00000018 EDX: 00000009 |
62 |
kern.warn: ESI: eac929c8 EDI: 0000000e EBP: dfcefd18 ESP: dfcefd0c |
63 |
kern.warn: DS: 0068 ES: 0068 FS: 00d8 GS: 00e0 SS: 0068 |
64 |
<0>Process emerge (pid: 11233, ti=dfcee000 task=e79c5410 task.ti=dfcee000) |
65 |
<0>Stack: |
66 |
kern.warn: 0000000d c366cce0 eac929c8 dfcefd28 c10743f7 c366cce0 eac929c8 dfcefd44 |
67 |
kern.warn: <0> c107bfce 00001000 00000000 00000000 c366cce0 0000000d dfcefdb0 c107c0fa |
68 |
kern.warn: <0> 0000000e 00000000 00000000 00000000 eac929c8 ffffffff 0000000e 00000000 |
69 |
<0>Call Trace: |
70 |
kern.warn: [<c10743f7>] ? remove_from_page_cache+0x27/0x40 |
71 |
kern.warn: [<c107bfce>] ? truncate_inode_page+0x7e/0xc0 |
72 |
kern.warn: [<c107c0fa>] ? truncate_inode_pages_range+0xea/0x2b0 |
73 |
kern.warn: [<c107c2da>] ? truncate_inode_pages+0x1a/0x20 |
74 |
kern.warn: [<c1120085>] ? ext3_evict_inode+0x35/0x170 |
75 |
kern.warn: [<c10b439a>] ? evict+0x1a/0xa0 |
76 |
kern.warn: [<c10b4c49>] ? iput+0x159/0x240 |
77 |
kern.warn: [<c10b1317>] ? dentry_iput+0x67/0xb0 |
78 |
kern.warn: [<c10b1415>] ? d_kill+0x35/0x60 |
79 |
kern.warn: [<c10b236e>] ? dput+0x6e/0x140 |
80 |
kern.warn: [<c10ab570>] ? sys_renameat+0x1f0/0x2c0 |
81 |
kern.warn: [<c10a2868>] ? cp_new_stat64+0x118/0x170 |
82 |
kern.warn: [<c10ab668>] ? sys_rename+0x28/0x30 |
83 |
kern.warn: [<c13f4edc>] ? syscall_call+0x7/0xb |
84 |
kern.warn: [<c13f0000>] ? snd_emu10k1_init_efx+0x1a49/0x27ee |
85 |
kern.warn: [<c1090000>] ? do_mremap+0x270/0x460 |
86 |
kern.warn: [<c13f4ef5>] ? restore_all+0x0/0x18 |
87 |
<0>Code: d5 08 00 00 00 89 14 24 ba ff ff ff ff e8 cb eb 16 00 53 9d 83 c4 04 5b 5e c9 c3 66 90 ba 16 00 00 00 89 d8 e8 f4 ee 00 00 eb 89 <0f> 0b eb fe 8d b4 26 00 00 00 00 8d bc 27 00 00 00 00 55 89 e5 |
88 |
<0>EIP: [<c10743be>] __remove_from_page_cache+0xae/0xc0 SS:ESP 0068:dfcefd0c |
89 |
kern.warn: ---[ end trace 8ee95cd55cf8c673 ]--- |
90 |
|
91 |
после чего ещё одна такая же ошибка, и: |
92 |
|
93 |
kern.alert: Fixing recursive fault but reboot is needed! |
94 |
|
95 |
Процесс emerge/revdep-rebuild вызвавший ошибку при этом подвисает намертво |
96 |
(kill -9 его снять не может), остальная система вроде работает, но я обычно |
97 |
перегружаюсь, как и просит ядро. (И, кстати, обычно это происходит во время |
98 |
установки бинарного пакета через `emerge -k`, а не при обычной компиляции.) |
99 |
|
100 |
Я описал это к тому, что в процессе `emerge -ke world`, который и так |
101 |
потерял где-то 6 пакетов, мне пару раз пришлось перегружаться и делать |
102 |
`emerge --resume`. При этом потерялись ещё некоторые пакеты, смотрите: |
103 |
|
104 |
1299338495: *** emerge --with-bdeps --emptytree --usepkg world |
105 |
1299338543: >>> emerge (1 of 860) sys-libs/zlib-1.2.3-r1 to / |
106 |
… |
107 |
1299357290: >>> emerge (610 of 860) x11-themes/gnome-themes-2.32.1 to / |
108 |
1299357290: === (610 of 860) Cleaning (x11-themes/gnome-themes-2.32.1::/usr/portage/x11-themes/gnome-themes/gnome-themes-2.32.1.ebuild) |
109 |
1299357291: === (610 of 860) Compiling/Merging (x11-themes/gnome-themes-2.32.1::/usr/portage/x11-themes/gnome-themes/gnome-themes-2.32.1.ebuild) |
110 |
1299357296: *** terminating. |
111 |
1299357308: Started emerge on: Mar 05, 2011 22:35:08 |
112 |
1299357308: *** emerge --with-bdeps --resume |
113 |
1299357338: *** Resuming merge... |
114 |
1299357345: >>> emerge (1 of 251) app-vim/gentoo-syntax-20101212 to / |
115 |
… |
116 |
1299369928: >>> emerge (79 of 251) sys-devel/gcc-4.4.5 to / |
117 |
1299369928: === (79 of 251) Merging Binary (sys-devel/gcc-4.4.5::/usr/portage-packages/sys-devel/gcc-4.4.5.tbz2) |
118 |
1299369935: *** Finished. Cleaning up... |
119 |
1299369935: *** exiting unsuccessfully with status '1'. |
120 |
1299369943: *** terminating. |
121 |
1299371614: Started emerge on: Mar 06, 2011 02:33:34 |
122 |
1299371614: *** emerge --with-bdeps --ask depclean |
123 |
1299371615: >>> depclean |
124 |
1299371639: *** exiting unsuccessfully with status 'None'. |
125 |
1299371639: *** terminating. |
126 |
1299406860: Started emerge on: Mar 06, 2011 12:21:00 |
127 |
1299406860: *** emerge --with-bdeps --resume |
128 |
1299406886: *** Resuming merge... |
129 |
1299406890: >>> emerge (1 of 162) sys-apps/iproute2-2.6.35-r2 to / |
130 |
|
131 |
В первом --resume всё нормально: 860-610+1 == 251. |
132 |
А во втором 251-79+1 = 173, а не 162! Куда делось ещё 11 пакетов? |
133 |
(Правда, я немного недоглядел, сонный был, решил что всё закончило |
134 |
собираться и запустил --depclean - но он никаких пакетов не удалял, |
135 |
так что из-за этого 10 пакетов потеряться не должно было!) |
136 |
|
137 |
Сейчас жду, пока всё закончит собираться, и тогда сравню все установленные |
138 |
пакеты согласно emerge.log и полный список пакетов из `qlist -I -v` чтобы |
139 |
выяснить какие именно пакеты не были установлены, может это что-то прояснит. |
140 |
|
141 |
-- |
142 |
WBR, Alex. |