Сайт | Скачать | Видео | Wiki

Автор Тема: PRA64-08. После подключении модуля: symbol lookup error: ... undefined symbol  (Прочитано 3628 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ramd

  • Старожил
  • ****
  • Сообщений: 324
  • Репутация: +8/-0
  • Автор темы
Заметил странный глюк: после подключения модуля (двойным щелчком в ФМ - подключить)
Modemmanager-1.6.12-1-180101-sf03.pfs
перестают открываться (из меню) MC, htop (мелькает на момент окошко и пропадает).
Терминал открывается, но при запуске MC пишет:
mc: symbol lookup error: /usr/lib/libgpm.so.2: undefined symbol: wgetch
оболочка LXDE

ПС -- если модуль положить в папку модулей и перезагрузиться, то всё ок,
т.е. глюк только при горячем подключении модуля
« Последнее редактирование: 19 Июнь 2019, 16:21:52 от ramd »
Acer Aspire One AO532h (Intel Atom 1,6GHz / 2Gb RAM / SATA-HDD / 1024x600 screen)
Samsung 300E4A (Core i3 / 4Gb)

Оффлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Заметил странный глюк:
В виртуалке повторить не смог
Но встречал аналогичную ошибку. Лечил отключением модуля
Если сможете повторить - попробуйте подключить модуль в нижний слой AUFS (галка в подключалке - "в безопас.")

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
Modemmanager-1.6.12-1-180101-sf03.pfs
перестают открываться (из меню) MC, htop
Тоже не смог повторить.
Скрин (вирт).

« Последнее редактирование: 19 Июнь 2019, 18:28:39 от krasnyh »

Оффлайн ramd

  • Старожил
  • ****
  • Сообщений: 324
  • Репутация: +8/-0
  • Автор темы
В нижний слой попробую. Хорошо бы понять вообще почему такое происходит, т.к. действительно бывало и с другими модулями.
« Последнее редактирование: 20 Июнь 2019, 10:13:29 от sfs »
Acer Aspire One AO532h (Intel Atom 1,6GHz / 2Gb RAM / SATA-HDD / 1024x600 screen)
Samsung 300E4A (Core i3 / 4Gb)

Оффлайн Neyel

  • Ветеран
  • *****
  • Сообщений: 1548
  • Репутация: +28/-0
symbol lookup error: /usr/lib/libgpm.so.2: undefined symbol: wgetch
Нужный символ содержится в библиотеке libncursesw.so.6:
Код
live@pra6408:~$ readelf -s /usr/lib/libncursesw.so.6 | grep "wgetch"
   207: 0000000000010940    34 FUNC    GLOBAL DEFAULT    9 mvwgetch
   343: 0000000000011fb0  3472 FUNC    GLOBAL DEFAULT    9 _nc_wgetch
   599: 0000000000012d40    94 FUNC    GLOBAL DEFAULT    9 wgetch
live@pra6408:~$
Скорее всего что то происходит с этой библиотекой при горячем подключении модуля

Оффлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Проявляется стабильно? Как повторить?

Оффлайн Neyel

  • Ветеран
  • *****
  • Сообщений: 1548
  • Репутация: +28/-0
Я не повторял - просто решил написать где этот символ расположен  :) Мне кажется это юзерский косяк а не баг дистрибутива

Оффлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Как вылечить?

Оффлайн Neyel

  • Ветеран
  • *****
  • Сообщений: 1548
  • Репутация: +28/-0
Проверил - скачал modemmanager, подключил на горячую, после запустил mc - всё норм

Оффлайн Neyel

  • Ветеран
  • *****
  • Сообщений: 1548
  • Репутация: +28/-0
Как вылечить?
Эта ошибка может возникать из-за того что используется более старая библиотека, где этого символа ещё нет - или наоборот - более новая библиотека, где этот символ выкинули. Лечение - скачать нужную версию библиотеки и заменить

Оффлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Проверил. libgpm.so.2 и libncursesw.so.6 родные. Из одного среза арчрепы

Оффлайн Neyel

  • Ветеран
  • *****
  • Сообщений: 1548
  • Репутация: +28/-0
ibncursesw.so.6 родные
Да, в родном libncursesw.so.6 этот символ есть, а у автора поста происходит какой-то косяк с этой библиотекой

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
Может имеет отношение к теме.

Даже если вы установили пакет, существующие долго работающие программы (например, демоны и серверы) все еще продолжают использовать код из старых библиотек пакетов. И не стоит запускать эти программы, если старая библиотека содержит ошибку безопасности.
Вот способ, как найти все программы, которые используют старый код пакетов:

Код
# lsof +c 0 | grep -w DEL | awk '1 { print $1 ": " $NF }' | sort -u
https://wiki.archlinux.org/index.php/Pacman/Tips_and_tricks#Find_applications_that_use_libraries_from_older_packages