Bug 12953 - Attempt to free unreferenced scalar in simple script
: Attempt to free unreferenced scalar in simple script
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/perl-threads)
: unstable
: all Linux
: P2 normal
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2007-09-28 11:17 by
Modified: 2010-11-17 02:13 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


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

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

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

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

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