ALT Linux Sisyphus discussions
 help / color / mirror / Atom feed
From: Vladimir Lettiev <crux@gorodmasterov.com>
To: ALT Linux Sisyphus discussion list <sisyphus@lists.altlinux.org>
Subject: Re: [sisyphus] I: updated package - subversion
Date: Sat, 26 Nov 2005 12:12:03 +0300
Message-ID: <438826E3.8090908@gorodmasterov.com> (raw)
In-Reply-To: <20051125225511.GA17307@basalt.office.altlinux.org>

Dmitry V. Levin пишет:
> On Sat, Nov 26, 2005 at 12:08:43AM +0200, Sviatoslav Sviridov wrote:
>> Dmitry V. Levin wrote:
>>> On Wed, Aug 17, 2005 at 12:51:32AM +0300, Sviataslau Svirydau
>>>> проблему, которую я описывал в 
>>>> http://lists.altlinux.ru/pipermail/sisyphus/2005-August/066367.html
>> 
>> Проблема до сих пор не решена. Помогите кто чем может :) Сам я в 
>> разумные сроки исправить не смогу...
> 
> Тут нужен специалист по перлу более высокого уровня.

Алексей не откликается, я попробую ;)

...
> У меня тоже не получилось, даже --query-repackage --build='--with
> swig_pl' не помогло (какой-то макрос не был определён), пришлось в
> spec-файл залезть.
> 
> В результате имеем то же самое (лишь номер строки изменился): Use of
> uninitialized value in string eq at
> /usr/src/tmp/subversion-buildroot/usr/lib/perl5/vendor_perl/i386-linux/SVN/Core.pm
> line 410 during global destruction.

Пока лишь могу попытаться объяснить причину ошибки. Фикс теоретически 
готов, но надо время затестить (уж больно долго собирается subversion).

Причина ошибки, вот это такое изменение в коде Core.pm:

+our $gpool = SVN::Pool->new_default;
+SVN::Core::utf_initialize($gpool);
+

Добавляется создание объекта SVN::Pool. А значит и все warnnings 
связанные с его отработкой.

После отработки кода собиратель мусора унижтожает все объекты: при 
нормальном завершении работы выполняются код END {} затем код процедуры 
DESTROY модуля SVN::Pool.
Что будет если запустить проверку кода с помощью `perl -c`? Выполнятся 
только секции BEGIN{}, CHECK{} и после perl выполнит процедуру DESTROY 
модуля (если требуется). Т.о. из цепочки выпала секция END{}, которая и 
обеспечивала нормальное выполнение кода процедуры DESTROY в SVN::Pool.

Похоже, что в perl.req работает такой же принцип проверки (без вызова 
END{}).

Самый простой фикс, добавить строчку в тело SVN::Pool :
no warnings 'uninitialized';

Чуть сложнее и наверное корректнее (пока не проверил):

--- Core.pm.old 2005-11-26 11:13:58 +0300
+++ Core.pm     2005-11-26 12:03:11 +0300
@@ -406,6 +406,7 @@
  sub DESTROY {
      return if $globaldestroy;
      my $self = shift;
+    return unless ($$self && $SVN::_Core::current_pool);
      if ($$self eq $SVN::_Core::current_pool) {
         $SVN::_Core::current_pool = pop @POOLSTACK;
      }


-- 
С уважением, Владимир Леттиев aka crux <crux@gorodmasterov.com>


  reply	other threads:[~2005-11-26  9:12 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-08-16 21:51 Sviataslau Svirydau
2005-08-17  8:56 ` [sisyphus] " Anton Farygin
2005-08-17  9:10   ` Sviataslau Svirydau
2005-11-25 16:37 ` [sisyphus] " Dmitry V. Levin
2005-11-25 17:27   ` Alexander Bokovoy
2005-11-25 17:38     ` Dmitry V. Levin
2005-11-25 17:50       ` Alexander Bokovoy
2005-11-25 18:26         ` [sisyphus] " Michael Shigorin
2005-11-25 18:43           ` Dmitry V. Levin
2005-11-25 20:16             ` Michael Shigorin
2005-11-25 19:20           ` Alexander Bokovoy
2005-11-25 22:08   ` [sisyphus] " Sviatoslav Sviridov
2005-11-25 22:55     ` Dmitry V. Levin
2005-11-26  9:12       ` Vladimir Lettiev [this message]
2005-11-26 11:57         ` Vladimir Lettiev
2005-11-26 15:12           ` Dmitry V. Levin
2005-11-26 18:10           ` Sviatoslav Sviridov
2005-11-26 20:42             ` Aleksey Avdeev
2005-11-26 21:52               ` Sviataslau Svirydau
2005-11-26 22:08                 ` Aleksey Avdeev
2005-11-27 22:34             ` Sviataslau Svirydau
2005-11-30 15:06       ` Sviatoslav Sviridov
2005-11-30 15:27         ` [sisyphus][JT] " Sviataslau Svirydau
2005-11-30 15:37           ` [sisyphus] Re: [JT] " Vitaly Ostanin
2005-11-30 15:43             ` Sviataslau Svirydau
2005-11-30 16:26           ` Grigory Batalov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=438826E3.8090908@gorodmasterov.com \
    --to=crux@gorodmasterov.com \
    --cc=sisyphus@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Sisyphus discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
		sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
	public-inbox-index sisyphus

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.sisyphus


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git