Bug 29514

Summary: поднять размеры внутренних буферов для поддержки репозитория autoimports.
Product: Sisyphus Reporter: viy <viy>
Component: aptAssignee: placeholder <placeholder>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: boyarsh, enp, evg, glebfm, icesik, ildar, imz, ldv, mike, placeholder
Version: unstable   
Hardware: all   
OS: Linux   
Bug Depends on:    
Bug Blocks: 30482    
Attachments:
Description Flags
hsh.log.i586 none

Description viy 2013-10-24 00:29:03 MSK
под i586 (но не x86_64) при подключении репозиториев mgaimport и autoimports 
apt отказывается работать с сообщением
E: Wow, you exceeded the number of versions this APT is capable of.

попробовал на всякий APT::Cache-Limit 200000000; - не помог.
Comment 1 Dmitry V. Levin 2013-10-24 01:52:14 MSK
Число версий превысило предельное значение 2^16-1 (unsigned short ID в структуре pkgCache::Version), без увеличения типа ID (со сменой soname у libapt) проблема не решается.  В качестве альтернативы могу предложить отказаться от идеи подключать все мыслимые репозитории одновременно.
Comment 2 viy 2013-10-24 02:39:58 MSK
там по другому никак - mgaimport не замкнутый репозиторий,
его unmets можно удоволетворить только подключением одновременно
и Сизифа, и autoimports. Это и есть минимальное необходимое число репозиториев :(
меньше некуда.

> В качестве альтернативы могу предложить
> отказаться от идеи подключать все мыслимые репозитории одновременно.
не подходит - не удастся сформировать сборочное окружение из-за unmets :(

со сменой soname у libapt - не так страшно? если заранее,
легче грабли оттестировать и выполоть.
Comment 3 viy 2013-10-24 02:53:07 MSK
кроме того, в mgaimport всего 1000 пакетов.
Это означает, что еще чуть-чуть и простое подключение autoimports 
к Сизифу будет ронять apt :(
Comment 4 viy 2013-10-25 20:22:24 MSK
(В ответ на комментарий №3)
> кроме того, в mgaimport всего 1000 пакетов.
> Это означает, что еще чуть-чуть и простое подключение autoimports 
> к Сизифу будет ронять apt :(

так как есть запас, то не обязательно ее выкладывать сразу в Сизиф,
главное, чтобы была официальная сборка. Я ее установлю на всех
виртуальных машинах, и это позволит мне продолжить работу.
А в Сизиф можно и немного позже.
Comment 5 Dmitry V. Levin 2013-10-28 01:25:36 MSK
Можно попробовать "поменять внутренности" таким образом:

--- a/apt/apt-pkg/pkgcache.h
+++ b/apt/apt-pkg/pkgcache.h
@@ -278,8 +278,8 @@ struct pkgCache::Version
    
    map_ptrloc Size;              // These are the .deb size
    map_ptrloc InstalledSize;
-   unsigned short Hash;
-   unsigned short ID;
+   unsigned long Hash;
+   unsigned int ID;
    unsigned char Priority;
 };
 
Возможно, после этого закончится еще какой-нибудь ресурс.
Comment 6 viy 2013-10-29 17:19:53 MSK
Created attachment 5981 [details]
hsh.log.i586
Comment 7 viy 2013-10-29 17:41:11 MSK
Установил в host систему (autoextra, x86_64) патченный apt,
только там на всякий сделал int Hash вместо long Hash.
-   unsigned short Hash;
-   unsigned short ID;
+   unsigned int Hash;
+   unsigned int ID;
5 минут, полет нормальный.
Можно в production ;)
Comment 8 viy 2013-10-30 17:20:18 MSK
а когда будет официальный commit с soname change?
ABI ведь таки изменился, например, у меня лоально synaptic стал segfault'иться.
Comment 9 viy 2014-03-07 22:24:18 MSK
(В ответ на комментарий №8)
> а когда будет официальный commit с soname change?

Плюсую. Очень неудобно зоопарк поддерживать.
Comment 10 Dmitry V. Levin 2014-03-11 00:36:32 MSK
(In reply to comment #9)
> (В ответ на комментарий №8)
> > а когда будет официальный commit с soname change?
> 
> Плюсую. Очень неудобно зоопарк поддерживать.

Кто будет тестировать (авто?)пересобранные пакеты?
Comment 11 viy 2014-03-11 00:54:55 MSK
(В ответ на комментарий №10)
> Кто будет тестировать (авто?)пересобранные пакеты?

не совсем понял вопрос. Имеется в виду autoimports?
Comment 12 Dmitry V. Levin 2014-03-11 01:30:09 MSK
(In reply to comment #11)
> (В ответ на комментарий №10)
> > Кто будет тестировать (авто?)пересобранные пакеты?
> 
> не совсем понял вопрос. Имеется в виду autoimports?

Допустим, сейчас подзадание, в котором apt с увеличенными целочисленными типами в этой структурке и увеличенным soname, соберется.  Что дальше?
Comment 13 viy 2014-03-11 01:36:03 MSK
apt с этим патчем у мены уже полгода работает, проблем быть не должно.
Comment 14 Dmitry V. Levin 2014-03-11 02:00:45 MSK
(In reply to comment #13)
> apt с этим патчем у мены уже полгода работает, проблем быть не должно.

Этому патчу еще и 5 месяцев не исполнилось, какие там полгода. :)

В task #116138 хорошо бы добавить несколько пакетов.
Comment 15 viy 2014-03-11 02:15:43 MSK
добавил, можно перезапускать:
 400:dir=/people/viy/packages/python-module-apt.git
 400:tag_name=0.5.15cnc6-alt5.1
 400:tag_id=b217272cd80d6e3c1a416deac3cc6aed3ae4cdd3
 400:tag_author=Igor Vlasenko (ALT Linux Sisyphus) <viy@altlinux.org>
 400:userid=viy
 500:dir=/people/viy/packages/synaptic.git
 500:tag_name=0.58-alt14.1
 500:tag_id=cebe93fcd5204c910281c692d335864395edccc0
 500:tag_author=Igor Vlasenko (ALT Linux Sisyphus) <viy@altlinux.org>
 500:userid=viy
 600:dir=/people/viy/packages/aptitude.git
 600:tag_name=0.4.5-alt6.1
 600:tag_id=fa35846df6d94c4f0a89571496694b51d69bda5e
 600:tag_author=Igor Vlasenko (ALT Linux Sisyphus) <viy@altlinux.org>
 600:userid=viy
 700:dir=/people/viy/packages/apt-indicator.git
 700:tag_name=0.2.10-alt1.1
 700:tag_id=df81fd0a8a6011251f567ae324aed8544cb1f901
 700:tag_author=Igor Vlasenko (ALT Linux Sisyphus) <viy@altlinux.org>
 700:userid=viy
Comment 16 Repository Robot 2014-03-11 17:32:54 MSK
apt-0.5.15lorg2-alt44 -> sisyphus:

* Tue Mar 11 2014 Dmitry V. Levin <ldv@altlinux> 0.5.15lorg2-alt44
- libapt: enlarged integer types in pkgCache::Version (closes: #29514).
Comment 17 viy 2014-03-11 18:18:06 MSK
Спасибо!