Om te beginnen: ik hoop dat dit de juiste plek is voor het melden van een probleem bij het updaten (met zypper) van het systeem.
jopes:~ # zypper clean && zypper ref && zypper lp
All repositories have been cleaned up.
Repository 'Packman Repository' is up to date.
Repository 'Non-OSS opslagruimte' is up to date.
Repository 'Hoofd-opslagruimte' is up to date.
Repository 'Hoofd-opslagruimte voor bijwerken' is up to date.
Repository 'Opslagruimte voor bijwerken (niet-Oss)' is up to date.
All repositories have been refreshed.
Loading repository data...
Reading installed packages...
/usr/include/c++/7/bits/stl_vector.h:797: std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator](std::vector<_Tp, _Alloc>::size_type) [with _Tp = std::__cxx11::basic_string<char>; _Alloc = std::allocator<std::__cxx11::basic_string<char> >; std::vector<_Tp, _Alloc>::reference = std::__cxx11::basic_string<char>&; std::vector<_Tp, _Alloc>::size_type = long unsigned int]: Assertion '__builtin_expect(__n < this->size(), true)' failed.
Aborted (core dumped)
jopes:~ #
Daarna met fsck de rootpartitie en de home partitie gecontroleerd: geen fouten.
Nee. Mijn logica was dat ‘zypper clean’ alles megmikt behalve de keys, en elke repo dus ook ververst zou moeten worden. En dat ‘zypper lp’ triggert dat ook, en daar zie je alleen de repos actief die behalve Packman van de systeeminstallatie in de output. Als er URLs niet zouden kloppen zou je dat daar ook zien als foutmelding.
Wat betreft het originele probleem, dat is gewoon een bug in de code en eigenlijk zou het goed zijn daar een ticket van te maken, zeker als het reproduceerbaar is.
Ik denk dat je het probleem triggert omdat er niet veel mensen zijn die “zypper list-patches” doen, om eerlijk te zeggen, ik had het nog nooit gebruikt en de drie keer dat ik het nu heb gerunt (onder Tumbleweed) krijg ik altijd “No updates found.”
Wat kan helpen om het probleem te onderzoeken is een zogenaamde call-stack, het bestand waar de foutmelding het over heeft, /usr/include/c++/7/bits/stl_vector.h:797 is niet onderdeel van de zypper code maar wordt via-via door zypper aangeroepen.
Om een call stack te krijgen kan je draaien
gdb --args zypper list-patches
Typ vervolgens “run” om te starten en als je op de “Assertion failed” loopt typ je “where”
Als het goed is komt daar een lijst van stukken code die elkaar aangeroepen heeft en daar staat ook zypper in.
Die soort informatie kan ontwikkelaars helpen om het probleem te pin-pointen.
Dat is logisch. Tumbleweed verstrekt nooit patches (dat zijn verbeterde (ge-“patchte”) pakketten in de Update repos). Tumbleweed wordt telkens al nieuwe distributie verstrekt (vandaar zypper dist-upgrade om Tumbleweedd bij te werken) en de Update repos van Tumbleweed zijn leeg.
Laten we maar bij het onderwerp Leap blijven in deze draad.