Исполнение скрипта #!/usr/bin/perl use threads; use strict; my $test = sub { print("Hello, world\n"); }; my $thr = threads->create($test); $thr->join(); приводит к ошибке: Attempt to free unreferenced scalar: SV 0x810bcec, Perl interpreter: 0x8068590. Проблема описана тут: http://www.nntp.perl.org/group/perl.ithreads/2007/06/msg1175.html
В сизифе есть софт, который может пострадать от этой ошибки? У Вас есть софт, который может пострадать от этой ошибки? В общем-то треды в перле это глюкало, и я их специально отпилил в отдельный пакет, чтобы их никто не требовал. С другой стороны, наличие куска свободного кода, работоспособность которого поставлена на кон в связи с этим багом, может существенно повлиять на решение по его исправлению.
Я сейчас занят тем, что пытаюсь понять почему в нашем сизифовском окружении не работает OTRS. ( http://otrs.org/ ) Наш перл сегфолтится. Не возьмусь утверждать что эта ошибка имеет к тому отношение, но симптомы схожие. влияет ли она на что-то, что уже есть в сизифе, я не знаю.
Какая у вас архитектура -- i586 или x86_64?
Такая картина наблюдается на обоих архитектурах
Отвечайте на вопрос. Я думал собрать вам зопатченный perl-threads на тестирование.
тогда x86_64
git.alt:/people/at/packages/perl.git 5.8.8-alt14-4-gcd01a56 ftp://ftp.altlinux.org/pub/people/at/perl-threads-5.8.8-alt14.x86_64.rpm
Как успехи? Помогло/не помогло?
С otrs - не особенно. perl продолжает сегфолтится. Видимо дело не в тредах.
Тогда надо искать почему сегфолтится. Занятие не из лёгких. Желательно сделать какой-то минимальный test case. Ну или хотя бы steps to reproduce.
Поиск минимального test-case действительно оказывается не из лёгких, так как к сегфолту приводят вполне обычные конструкции. Если Вы сможете выделить время и посмотреть - steps to reproduce: 1) установить otrs 2) настроить на БД с помощью стандартного установщика 3) echo 1 > /proc/sys/kernel/shm_destroy_unused 4) запустить /opt/otrs/bin/UnitTest.pl и увидеть сегфолт
в том же треде описано и решение проблемы ;) "Dave Mitchell came up with a fix for this, so this particular bug is fixed in threads 1.63 on CPAN." однако поглядите, у меня возникли аналогичные проблемы, и я нашел версию perl (прошлогодний сизиф) с которой как CGI оно работает: https://bugzilla.altlinux.org/show_bug.cgi?id=13366
JFYI, сейчас OTRS 3.0beta работает с 5.8.9-alt3.
На perl-threads-5.12.2-alt01 скрипт, приведённый в описании, работает без ошибок
Видимо рассосалось