skype-4.0.0.7-r2 Ошибка сегментирования[РЕШЕНО]

Всем привет!

При обновления skype до версии 4.0.0.7-r2, после нескольких запусков, отказывается запускаться. Запуск в терминале выдаёт “Ошибка сегментирования”.

Выхлоп в /var/log/messages выдаёт следующее:

kernel: skype[4569]: segfault at 3f ip 0807dc0d sp bfd4c720 error 6 in skype[8048000+19ba000]

После переустановки (emerge skype), он запускается. Но после нескольких запусков всё повторяется.

Одинаковая ситуация на CLD i686 и x86_64.

Есть у кого идеи?

Prelink установлен?

У меня такая же проблема. После нескольких перестановок скайпа просто замаскировал новую версию и вернулся на старую.

Филипп Васькин wrote:

Prelink установлен?

eix prelink -I
[I] sys-devel/prelink
Available versions: 20100106 20110511 ~20111012
Installed versions: 20110511(22:03:54 29.11.2011)
Homepage: http://people.redhat.com/jakub/prelink
Description: Modifies ELFs to avoid runtime symbol resolutions resulting in faster load times

Пару дней назад установил систему со стейджа от 18 июня.

убрал prelink для skype.
создал файл
$ cat /etc/env.d/99skype
# discard /opt/bin/skype, because prelink call segafault
# for some applications (chromium,libreoffice and etc)
PRELINK_PATH_MASK=/opt/bin/skype
далее
# env-update
# /etc/cron.daily/prelink
$ . /etc/profile
$ skype
Ошибка сегментирования

в общем не помогло.

совет из http://www.calculate-linux.ru/boards/9/topics/15791?r=15809#message-15809 со статусом [РЕШЕНО] тоже не помог.

Закинул аффторам - http://community.skype.com/t5/Linux/skype-4-0-0-7-r2-segmentation-fault/td-p/821012

мне помогло rm -rf ~/.Skype
CLD x86_64

rm -rf ~/.Skype в моём случае тоже не помог.

Попробуй

USE="pax_kernel" emerge net-im/skype

Вроде как помогает

А мне помогло следущее. Убиваем скайп идущий с дистрибутивом. Идем на skype.com и качаем статический пакет. Запускаем и работаем.

Отсюда вопрос к разработчикам, может как то он кривовато в дистрибутиве установлен?

Попробуйте создать в .Skype папку Logs

У меня это решило проблему с вылетами, но обращаю внимание - начинает писать БОЛЬШИЕ ЛОГИ (за час разговора логов гига на полтора), которые надо как-то чистить.

не помогло ни папка Logs, ни скаченный с skype.com
а USE=“pax_kernel” не собирается:

Failed to set PaX markings -Cm for:
/var/calculate/tmp/portage/net-im/skype-4.0.0.7-r2/image//opt/bin/skype
Executables may be killed by PaX kernels.
ERROR: net-im/skype-4.0.0.7-r2 failed (install phase):
(no error message)
Call stack:
ebuild.sh, line 85: Called src_install
environment, line 2578: Called die
The specific snippet of code:
pax-mark Cm “${ED}”/opt/bin/${PN} || die;

спасибо всем за участие

Было то же самое, но USE=“pax_kernel” emerge net-im/skype нормально собрался. Сейчас запускается, но где-то читал, что через сутки его размер меняется и он перестаёт запускаться. Попробуйте работающий /opt/bin/skype скопировать себе, а как он перестанет работать, вернуть скопированный обратно.

Я тут где-то на параллельной ветке видел решение:

chmod -w /opt/bin/skype

пара недель уже полёт нормальный.

Иван Платонов wrote:

Я тут где-то на параллельной ветке видел решение:

chmod -w /opt/bin/skype

пара недель уже полёт нормальный.

другое решение той же проблемы, запретить запись. Тоже должно помочь, проверю. Видимо он и правда самоизменяется через какое-то время=) только непонятно как=)

Было то же самое, но USE=“pax_kernel” emerge net-im/skype нормально собрался.

Да, действительно, если прописать use-флаг в файл, то не собирается, а из командной строки — да. При этом качает другой файл http://download.skype.com/linux/skype-4.0.0.7.tar.bz2 . Это нужно автору ebuild-а показать.
Но всё равно сегфолтится.

где-то читал, что через сутки его размер меняется и он перестаёт запускаться.

Это его prelink меняет.
Поэтому советы chmod -w /opt/bin/skype можно сказать даже вредные.
В ebuild-е уже есть файл

$ cat /etc/env.d/99skype
# discard /opt/bin/skype, because prelink call segafault
PRELINK_PATH_MASK=/opt/bin/skype

Главное после установки сделать env-update и source /etc/profile
В переменных окружения должно появиться примерно следующее

# echo $PRELINK_PATH_MASK
/usr/lib64/klibc:/usr/lib64/libfreebl3.so:/usr/lib64/libnssdbm3.so:/usr/lib64/libsoftokn3.so:/usr/lib64/gimp/2.0/plug-ins/hot:/usr/lib64/*nvidia*:/opt/bin/skype

И тогда prelink исключит скайп для оптимизации.
Но, в моём случае (видимо из-за моего ну очень своеобразного окружения) все советы не помогает. А стрэйсить мне лень.

ls -l /opt/bin/skype
-r-xr-xr-x 1 root audio 26973044 июня 15 20:04 /opt/bin/skype

Не совсем понятно для какой цели скайп в группе audio, ведь он запускается от обычного пользователя, который и так в этой группе. Вероятно отсюда и все проблемы. Может подстава нового владельца сервиса Skype?

Разобрался, заработало.
И всё-таки пришлось стрэйсить.
Оказалось, что скайп не понятно зачем грузит /usr/lib32/libnvidia-glcore.so.302.17 из состава драйверов nvidia и потом валится.
Что характерно, prelink не оптимизирует библиотеки nvidia, но только 64-битные! И это упущение. Поэтому сделал следующее от root

cp /etc/env.d/99nvidia /etc/env.d/99nvidia.my
nano /etc/env.d/99nvidia.my
заменил /usr/lib64/*nvidia* на /usr/lib32/*nvidia* - PRELINK_PATH_MASK=/usr/lib32/*nvidia*
env-update
. /etc/profile
/etc/cron.daily/prelink
emerge x11-drivers/nvidia-drivers net-im/skype

в рабочей консоли

$ . /etc/profile
$ skype

И всё заработало.
Вот так гениальное опенсорсное решение prelink дискредитируется 2-я посредственными блобами :wink:

Ох ничего себе. Поправил шаблон.
Спасибо Виктор!