Bug 12953

Summary: Attempt to free unreferenced scalar in simple script
Product: Sisyphus Reporter: Vitaly Kuznetsov <vitty>
Component: perl-threadsAssignee: at <at>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P2 CC: at, combr, crux, mike, viy
Version: unstable   
Hardware: all   
OS: Linux   

Description Vitaly Kuznetsov 2007-09-28 11:17:21 MSD
Исполнение скрипта
#!/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
Comment 1 at@altlinux.org 2007-09-28 14:11:18 MSD
В сизифе есть софт, который может пострадать от этой ошибки?
У Вас есть софт, который может пострадать от этой ошибки?

В общем-то треды в перле это глюкало, и я их специально отпилил в отдельный
пакет, чтобы их никто не требовал.

С другой стороны, наличие куска свободного кода, работоспособность которого
поставлена на кон в связи с этим багом, может существенно повлиять на решение по
его исправлению.
Comment 2 Vitaly Kuznetsov 2007-09-28 14:18:07 MSD
Я сейчас занят тем, что пытаюсь понять почему в нашем сизифовском окружении не
работает OTRS. ( http://otrs.org/ ) Наш перл сегфолтится.
Не возьмусь утверждать что эта ошибка имеет к тому отношение, но симптомы схожие.

влияет ли она на что-то, что уже есть в сизифе, я не знаю.
Comment 3 at@altlinux.org 2007-10-02 22:24:25 MSD
Какая у вас архитектура -- i586 или x86_64?
Comment 4 Vitaly Kuznetsov 2007-10-03 10:26:32 MSD
Такая картина наблюдается на обоих архитектурах
Comment 5 at@altlinux.org 2007-10-03 11:07:17 MSD
Отвечайте на вопрос.  Я думал собрать вам зопатченный perl-threads на
тестирование.
Comment 6 Vitaly Kuznetsov 2007-10-03 12:16:15 MSD
тогда x86_64
Comment 7 at@altlinux.org 2007-10-03 13:12:40 MSD
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
Comment 8 at@altlinux.org 2007-10-22 21:26:25 MSD
Как успехи?  Помогло/не помогло?
Comment 9 Vitaly Kuznetsov 2007-10-23 10:57:33 MSD
С otrs - не особенно. perl продолжает сегфолтится. Видимо дело не в тредах.
Comment 10 at@altlinux.org 2007-10-24 05:22:46 MSD
Тогда надо искать почему сегфолтится.  Занятие не из лёгких.  Желательно сделать
какой-то минимальный test case.  Ну или хотя бы steps to reproduce.
Comment 11 Vitaly Kuznetsov 2007-10-25 09:14:17 MSD
Поиск минимального test-case действительно оказывается не из лёгких, так как к
сегфолту приводят вполне обычные конструкции. 

Если Вы сможете выделить время и посмотреть - steps to reproduce:
1) установить otrs
2) настроить на БД с помощью стандартного установщика
3) echo 1 > /proc/sys/kernel/shm_destroy_unused
4) запустить /opt/otrs/bin/UnitTest.pl и увидеть сегфолт

Comment 12 Mike Lykov 2007-11-12 21:09:57 MSK
в том же треде описано и решение проблемы ;)

"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
Comment 13 Michael Shigorin 2010-10-31 01:20:51 MSD
JFYI, сейчас OTRS 3.0beta работает с 5.8.9-alt3.
Comment 14 Vladimir Lettiev 2010-11-16 22:13:28 MSK
На perl-threads-5.12.2-alt01 скрипт, приведённый в описании, работает без ошибок
Comment 15 Vitaly Kuznetsov 2010-11-17 02:13:51 MSK
Видимо рассосалось