Bug 24250

Summary: [FR] явная диагностика обнаружения блокировки
Product: Sisyphus Reporter: Michael Shigorin <mike>
Component: libaptAssignee: Ivan Zakharyaschev <imz>
Status: NEW --- QA Contact: qa-sisyphus
Severity: enhancement    
Priority: P3 CC: boyarsh, darktemplar, glebfm, imz, ldv, placeholder, vseleznv
Version: unstable   
Hardware: all   
OS: Linux   

Description Michael Shigorin 2010-10-09 11:45:36 MSD
В процессе проверки #9576 наступил на недостающую проверку в aptitude-0.4.5-alt5 состояния, когда база уже залочена:

$ sudo aptitude install gcc4.4-fortran
[sudo] password for mike:
Reading Package Lists... Done
Building Dependency Tree       
Reading extended state information       
Initializing package states... Done
Writing extended state information... Done
The following NEW packages will be automatically installed:
  gcc-fortran-common libgfortran4.4-devel 
The following packages have been kept back:
  WindowMaker branding-altlinux-desktop-graphics gammu libWINGs libbluez 
  libgammu libwraster psi qemu qemu-common qemu-system qemu-user wmsetbg 
The following NEW packages will be installed:
  gcc-fortran-common gcc4.4-fortran libgfortran4.4-devel 
0 packages upgraded, 3 newly installed, 0 to remove and 13 not upgraded.
aptitude: rpm/rpmhandler.cc:119: virtual std::string RPMFileHandler::Directory(): Assertion `HeaderP != __null' failed.
zsh: abort      sudo aptitude install gcc4.4-fortran

Оформляя багрепорт, в процессе воспроизведения заметил, что на соседнем десктопе висел ожидающий подтверждения apt-get dist-upgrade.  Прибив его, получил нормальную работу aptitude. :)
Comment 1 Sir Raorn 2010-11-06 01:02:10 MSK
В aptitude нет файла rpm/rpmhandler.cc.
Comment 2 Michael Shigorin 2020-06-09 09:11:30 MSK
Да, такой файл есть в apt.git.

Как вариант, можно переформулировать багу о том, что хотелось бы в случае наличия блокировки по крайней мере оповещать об этом факте на stderr (с pid держащего, если его несложно выяснить).  Люди, включая меня, продолжают порой натыкаться на ситуации "в соседнем шелле висит apt-get с вопросом или apt-shell, отвлёкся, пошёл доделывать, запустил ещё один, отвлёкся, вернулся -- висит").