<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>24564</bug_id>
          
          <creation_ts>2010-11-15 01:24:16 +0300</creation_ts>
          <short_desc>PerlReq.pm crashes</short_desc>
          <delta_ts>2011-01-15 10:47:20 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>rpm-build-perl</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dmitry V. Levin">ldv</reporter>
          <assigned_to name="at@altlinux.org">at</assigned_to>
          <cc>at</cc>
    
    <cc>crux</cc>
    
    <cc>ldv</cc>
    
    <cc>viy</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>115311</commentid>
    <comment_count>0</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2010-11-15 01:24:16 +0300</bug_when>
    <thetext>$ /usr/lib/rpm/perl.req /usr/libexec/git-core/git-svn
# perl(Compress/Zlib.pm) at line 48 (depth 4) inside eval SKIP
dying at /usr/libexec/git-core/git-svn line 5583
 at /usr/lib/perl5/vendor_perl/B/PerlReq.pm line 309
	B::PerlReq::__ANON__(&apos;Can\&apos;t locate object method &quot;XSUB&quot; via package &quot;B::PV&quot; at /us...&apos;) called at /usr/lib/perl5/vendor_perl/B/Walker.pm line 103
	B::Walker::walk_gv(&apos;B::GV=SCALAR(0x152fc730)&apos;) called at /usr/lib/perl5/vendor_perl/B/Walker.pm line 122
	B::Walker::walk_stash(&apos;HASH(0x149fb630)&apos;, &apos;Git::SVN::Log::&apos;) called at /usr/lib/perl5/vendor_perl/B/Walker.pm line 117
	B::Walker::walk_stash(&apos;HASH(0x149fb300)&apos;, &apos;Git::SVN::&apos;) called at /usr/lib/perl5/vendor_perl/B/Walker.pm line 117
	B::Walker::walk_stash(&apos;HASH(0x149fb2b8)&apos;, &apos;Git::&apos;) called at /usr/lib/perl5/vendor_perl/B/Walker.pm line 117
	B::Walker::walk_stash(&apos;HASH(0x14841be8)&apos;, &apos;&apos;) called at /usr/lib/perl5/vendor_perl/B/Walker.pm line 129
	B::Walker::walk_subs() called at /usr/lib/perl5/vendor_perl/B/PerlReq.pm line 313
	B::PerlReq::__ANON__() called at (eval 1) line 31
	O::CHECK() called at /usr/libexec/git-core/git-svn line 0
	eval {...} called at /usr/libexec/git-core/git-svn line 0
Can&apos;t locate object method &quot;XSUB&quot; via package &quot;B::PV&quot; at /usr/lib/perl5/vendor_perl/B/Walker.pm line 103.
CHECK failed--call queue aborted.
# /usr/libexec/git-core/git-svn: deparse failed. isPerl=0.055435727756259.

$ rpmquery -f /usr/bin/perl /usr/lib/rpm/perl.req
perl-base-5.12.2-alt00
rpm-build-perl-0.73-alt1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115349</commentid>
    <comment_count>1</comment_count>
    <who name="Vladimir Lettiev">crux</who>
    <bug_when>2010-11-15 17:48:32 +0300</bug_when>
    <thetext>Простейший тесткейс:

 perl -MO=PerlReq -e &apos;use constant a=&gt;&quot;a&quot;; print a,&quot;a&quot;;&apos;

любопытно также сравнить вывод на perl-5.8.9 и на perl-5.12.2:
 
 perl -MData::Dumper -e &apos;print Dumper(\%::)&apos; | grep &quot;&apos;,&apos;&quot;

В данном примере ошибка происходит в функции walk_gv(), метод CV возвращает объект класса B::PV для символа &apos;a,&quot;a&quot;;&apos;, вместо ожидаемого B:CV, соответственно вызов метода XSUB для этого класса приводит к фатальной ошибке.

Вариант решения проблемы: http://git.altlinux.org/people/crux/packages/rpm-build-perl.git?p=rpm-build-perl.git;a=commitdiff;h=1136a3172304460cd96b75fe58c872c67b391f46</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115361</commentid>
    <comment_count>2</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2010-11-16 01:30:22 +0300</bug_when>
    <thetext>rpm-build-perl-0.73-alt2 -&gt; sisyphus:

* Mon Nov 15 2010 Vladimir Lettiev &lt;crux@altlinux&gt; 0.73-alt2
- fixed fatal error in walk_gv() when method CV return not B::CV class
  object (Closes: #24564)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115535</commentid>
    <comment_count>3</comment_count>
    <who name="at@altlinux.org">at</who>
    <bug_when>2010-11-21 12:58:46 +0300</bug_when>
    <thetext>Deparse тоже не работает, надо файлить перлбаг.

$ perl -MO=Deparse /usr/libexec/git-core/git-svn
Can&apos;t locate object method &quot;GV&quot; via package &quot;B::PV&quot; at /usr/share/perl5/B/Deparse.pm line 506.
CHECK failed--call queue aborted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115539</commentid>
    <comment_count>4</comment_count>
    <who name="Vladimir Lettiev">crux</who>
    <bug_when>2010-11-21 18:18:24 +0300</bug_when>
    <thetext>http://rt.perl.org/rt3/Ticket/Display.html?id=79520</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>115841</commentid>
    <comment_count>5</comment_count>
    <who name="Vladimir Lettiev">crux</who>
    <bug_when>2010-11-29 10:43:48 +0300</bug_when>
    <thetext>Ошибка была исправлена в blead perl в коммите e5c69c9, для решения подобной проблемы в http://rt.perl.org/rt3//Public/Bug/Display.html?id=76540

Можно сделать cherry-pick на этот коммит (а также зависимый e3d2b9e). Я уже проверил сборку с этими изменениями - B::Deparse заработал. Можно, в принципе, отправлять в Sisyphus.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117199</commentid>
    <comment_count>6</comment_count>
    <who name="Vladimir Lettiev">crux</who>
    <bug_when>2011-01-15 10:47:20 +0300</bug_when>
    <thetext>Исправление будет в 5.12.3
http://www.nntp.perl.org/group/perl.perl5.porters/2011/01/msg168102.html</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>