Package: libsvn-perl
Version: 1.8.10-5
Severity: important
Tags: upstream

Hi,

when I use git-svn to clone or fetch from a repository, and the repository
contains a commit that modifies a large number of files, then perl will die
with a segfault when trying to apply that commit:

$ git svn fetch
        A       scenario-simulator/test/test-simulator.properties
        A       scenario-simulator/test/log4j.properties
...
[snip long list]
...
        A       
core-util/test/com/opencloud/util/concurrent/fibers/WhenUsingDefaultFiberFactory.java
        A       
core-util/test/com/opencloud/util/concurrent/TimingWheelExecutorTest.java
error: git-svn died of signal 11
$

This is 100% reproducible with the affected commits, making it essentially
impossible to fully clone these repositories. The only workaround I can think
of is doing a shallow clone starting at the next commit, which means you won't
get the full history.

I have attached a backtrace, and here is the output of running the command
with the perl debugger:

Signal SEGV at /usr/share/perl5/Git/SVN/Fetcher.pm line 361.
        Git::SVN::Fetcher::apply_textdelta(Git::SVN::Fetcher=HASH(0x26a51b0), 
HASH(0x2b14238), undef, _p_apr_pool_t=SCALAR(0x2b14148)) called at 
/usr/lib/x86_64-linux-gnu/perl5/5.20/SVN/Ra.pm line 623
        SVN::Ra::Reporter::AUTOLOAD(SVN::Ra::Reporter=ARRAY(0x26e2510), 
SVN::Pool=REF(0x26e1e98)) called at /usr/share/perl5/Git/SVN/Ra.pm line 300
        Git::SVN::Ra::gs_do_update(Git::SVN::Ra=HASH(0x26a4fe8), 49802, 49802, 
Git::SVN=HASH(0x26a4ad8), Git::SVN::Fetcher=HASH(0x26a51b0)) called at 
/usr/share/perl5/Git/SVN.pm line 1210
        Git::SVN::do_fetch(Git::SVN=HASH(0x26a4ad8), HASH(0x26eb380), 49802) 
called at /usr/share/perl5/Git/SVN/Ra.pm line 451
        Git::SVN::Ra::gs_fetch_loop_common(Git::SVN::Ra=HASH(0x26a4fe8), 49800, 
91763, ARRAY(0x1c2acc0), ARRAY(0x1c2acf0)) called at 
/usr/share/perl5/Git/SVN.pm line 184
        Git::SVN::fetch_all("svn", HASH(0x11fd4b8)) called at 
/usr/lib/git-core/git-svn line 560
        main::cmd_fetch("svn") called at /usr/lib/git-core/git-svn line 377
        eval {...} called at /usr/lib/git-core/git-svn line 375


-Jan

-- System Information:
Debian Release: 8.0
  APT prefers unstable
  APT policy: (500, 'unstable'), (102, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.16.0-4-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_NZ.UTF-8, LC_CTYPE=en_NZ.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages libsvn-perl depends on:
ii  libapr1                     1.5.1-3
ii  libc6                       2.19-15
ii  libsvn1                     1.8.10-5
ii  multiarch-support           2.19-15
ii  perl                        5.20.2-2
ii  perl-base [perlapi-5.20.1]  5.20.2-2

libsvn-perl recommends no packages.

libsvn-perl suggests no packages.

-- no debconf information

-- 
-[ OpenPGP key ID: 00A0FD5F ]-
The most dangerous phrase in the language is, "We've always done it this
way."
                -- Grace Hopper
#0  _wrap_svn_txdelta_apply (my_perl=<optimized out>, cv=<optimized out>) at 
svn_delta.c:3918
        arg2 = 0x7f60d749afa0
        arg6 = 0x7fffeb7313a8
        res4 = <optimized out>
        argvi = 1
        arg3 = 0x7f60d738c0a0 
"\224\a\214QS\357~\342\314\345\312Ϙ\330\300\070\327`\177"
        arg7 = 0x7fffeb7313b0
        _global_pool = <optimized out>
        buf4 = 0x0
        temp6 = 0x7f60ddc2f700 <apply_window at 
/build/subversion-Hohtq2/subversion-1.8.10/subversion/libsvn_delta/text_delta.c:759>
        sp = 0x7f60d733ff60
        arg4 = <optimized out>
        temp7 = 0x7f60d73880a0
        arg1 = 0x7f60d749af28
        arg5 = <optimized out>
        alloc4 = 0
        ax = 24039
        items = 4
#1  0x00007f60e13cc9ab in Perl_pp_entersub (my_perl=0x1cc6010) at pp_hot.c:2794
        markix = <optimized out>
        sp = <optimized out>
        sv = 0x2759310
        gv = 0x1cc6001
        cv = <optimized out>
        cx = <optimized out>
        gimme = 3
        hasargs = <optimized out>
#2  0x00007f60e13c5216 in Perl_runops_standard (my_perl=0x1cc6010) at run.c:42
        op = <optimized out>
#3  0x00007f60e13fc84f in S_docatch (my_perl=0x1cc6010, o=<optimized out>) at 
pp_ctl.c:3227
        ret = <optimized out>
        oldop = 0x2350ac0
        cur_env = {
          je_prev = 0x7fffeb731b30, 
          je_buf =             {[0] = {
              __jmpbuf =                 {[0] = 30171152,
                [1] = 7282039959158873762,
                [2] = 140053904097112,
                [3] = 140737143576160,
                [4] = 30171152,
                [5] = 53365432,
                [6] = -7282091381711085918,
                [7] = -7219616678411936094}, 
              __mask_was_saved = 0, 
              __saved_mask = {
                __val =                   {[0] = 30171152,
                  [1] = 140054072444977,
                  [2] = 140053904097080,
                  [3] = 30195984,
                  [4] = 18446744073709551615,
                  [5] = 140054072515172,
                  [6] = 140737143576160,
                  [7] = 30171152,
                  [8] = 30196064,
                  [9] = 30182960,
                  [10] = 0,
                  [11] = 140054072705844,
                  [12] = 19,
                  [13] = 30171152,
                  [14] = 53365720,
                  [15] = 140053904097112}
              }
            }}, 
          je_ret = 0, 
          je_mustcatch = false
        }
#4  0x00007f60e13c5216 in Perl_runops_standard (my_perl=0x1cc6010) at run.c:42
        op = <optimized out>
#5  0x00007f60e134e181 in Perl_call_sv (my_perl=0x1cc6010, sv=0x32e4bd8, 
flags=<optimized out>) at perl.c:2756
        sp = 0x7f60d733ff58
        myop = {
          op_next = 0x0, 
          op_sibling = 0x0, 
          op_ppaddr = 0x7f60e13cc4f0 <Perl_pp_entersub at pp_hot.c:2530>, 
          op_targ = 0, 
          op_type = 176, 
          op_opt = 0, 
          op_slabbed = 0, 
          op_savefree = 0, 
          op_static = 0, 
          op_folded = 0, 
          op_spare = 0, 
          op_flags = 66 'B', 
          op_private = 0 '\000', 
          op_first = 0x0, 
          op_other = 0x0
        }
        method_unop = {
          op_next = 0x7fffeb731660, 
          op_sibling = 0x0, 
          op_ppaddr = 0x7f60e13cddc0 <Perl_pp_method at pp_hot.c:2945>, 
          op_targ = 0, 
          op_type = 175, 
          op_opt = 0, 
          op_slabbed = 0, 
          op_savefree = 0, 
          op_static = 0, 
          op_folded = 0, 
          op_spare = 0, 
          op_flags = 0 '\000', 
          op_private = 0 '\000', 
          op_first = 0x0
        }
        method_svop = {
          op_next = 0x7fffeb731690, 
          op_sibling = 0x100000000, 
          op_ppaddr = 0x1cc6158, 
          op_targ = 15, 
          op_type = 13, 
          op_opt = 0, 
          op_slabbed = 0, 
          op_savefree = 0, 
          op_static = 0, 
          op_folded = 0, 
          op_spare = 0, 
          op_flags = 0 '\000', 
          op_private = 0 '\000', 
          op_sv = 0x1
        }
        oldmark = 24037
        retval = 0
        oldscope = 18
        oldcatch = false
        ret = <optimized out>
        oldop = 0x2b1a918
        cur_env = {
          je_prev = 0x7fffeb73170f, 
          je_buf =             {[0] = {
              __jmpbuf =                 {[0] = 140054064104992,
                [1] = 17,
                [2] = 30171152,
                [3] = 140054032851169,
                [4] = 140053904105512,
                [5] = 53365432,
                [6] = 140054060798064,
                [7] = 140054032851152}, 
              __mask_was_saved = 53365720, 
              __saved_mask = {
                __val =                   {[0] = 17,
                  [1] = 140054072291362,
                  [2] = 53365720,
                  [3] = 140054072504480,
                  [4] = 53365720,
                  [5] = 15,
                  [6] = 30171152,
                  [7] = 140054072515172,
                  [8] = 53365432,
                  [9] = 53365720,
                  [10] = 30171152,
                  [11] = 524288,
                  [12] = 140054032852116,
                  [13] = 140054072516082,
                  [14] = 53365432,
                  [15] = 30171152}
              }
            }}, 
          je_ret = 2, 
          je_mustcatch = false
        }
#6  0x00007f60e134e830 in Perl_call_method (my_perl=<optimized out>, 
methname=methname@entry=0x7f60dee0a0e1 "apply_textdelta", flags=flags@entry=2)
    at perl.c:2671
        len = <optimized out>
        sv = <optimized out>
#7  0x00007f60dee06398 in svn_swig_pl_callback_thunk 
(caller_func=caller_func@entry=CALL_METHOD, func=func@entry=0x7f60dee0a0e1, 
    result=result@entry=0x7fffeb731880, fmt=fmt@entry=0x7f60dee0a0ba "OOsS")
    at 
/build/subversion-Hohtq2/subversion-1.8.10/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c:625
        fp = 0x7f60dee0a0be ""
        ap =           {[0] = {
            gp_offset = 48, 
            fp_offset = 0, 
            overflow_arg_area = 0x7fffeb731878, 
            reg_save_area = 0x7fffeb7317f0
          }}
        count = <optimized out>
        call_flags = 2
        sp = 0x7f60d733ff58
#8  0x00007f60dee06865 in thunk_apply_textdelta (file_baton=0x7f60e16df0d0, 
base_checksum=0x0, pool=0x7f60d7342028, handler=0x7fffeb7318e0, 
    h_baton=0x7fffeb7318e8) at 
/build/subversion-Hohtq2/subversion-1.8.10/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c:873
        svn_err__temp = <optimized out>
        ib = 0x7f60e16df0d0
        result = 0x7fffeb731980
#9  0x00007f60da9e634c in ra_svn_handle_apply_textdelta (conn=<optimized out>, 
pool=<optimized out>, params=<optimized out>, ds=0x7fffeb731980)
    at 
/build/subversion-Hohtq2/subversion-1.8.10/subversion/libsvn_ra_svn/editorp.c:717
        svn_err__temp = <optimized out>
        token = 0x7f60e16e11c8 "c4681"
        entry = 0x7f60e16df0a0
        wh = 0x7f60e16e6000
        wh_baton = 0x7f60debe9ca0 <apr_pool_clear+144>
        base_checksum = 0x0
#10 0x00007f60da9e665e in svn_ra_svn_drive_editor2 (conn=0x7f60e16e6000, 
pool=0x7f60e16e3028, editor=0x7f60e16e30a0, edit_baton=0x7f60e16e3120, 
    aborted=aborted@entry=0x0, for_replay=for_replay@entry=0) at 
/build/subversion-Hohtq2/subversion-1.8.10/subversion/libsvn_ra_svn/editorp.c:938
        state = {
          editor = 0x7f60e16e30a0, 
          edit_baton = 0x7f60e16e3120, 
          tokens = 0x7f60e16e34a8, 
          aborted = 0x0, 
          done = 0, 
          pool = 0x7f60e16e3028, 
          file_pool = 0x7f60e16df028, 
          file_refs = 1, 
          for_replay = 0
        }
        subpool = 0x7f60e16e1028
        cmd = 0x7f60e16e1130 "apply-textdelta"
        i = <optimized out>
        err = <optimized out>
        write_err = <optimized out>
        params = 0x7f60e16e1148
#11 0x00007f60da9e0fbc in ra_svn_finish_report (baton=0x7f60e16e32f0, 
pool=<optimized out>)
    at 
/build/subversion-Hohtq2/subversion-1.8.10/subversion/libsvn_ra_svn/client.c:299
        svn_err__temp = <optimized out>
        b = 0x7f60e16e32f0
#12 0x00007f60d855c83d in svn_ra_reporter2_invoke_finish_report 
(_obj=0x7f60db44d480 <reporter_3in2_wrapper>, pool=0x7f60e16e3028, 
    report_baton=<optimized out>) at svn_ra.c:2066
No locals.
#13 _wrap_svn_ra_reporter2_invoke_finish_report (my_perl=<optimized out>, 
cv=<optimized out>) at svn_ra.c:12746
        arg2 = 0x7f60e16e3150
        argvi = 0
        items = <optimized out>
        arg3 = <optimized out>
        _global_pool = <optimized out>
        argp1 = 0x7f60db44d480 <reporter_3in2_wrapper>
        sp = <optimized out>
        ax = <optimized out>
        arg1 = 0x7f60db44d480 <reporter_3in2_wrapper>
        res1 = <optimized out>
        result = 0x0
#14 0x00007f60e13cc9ab in Perl_pp_entersub (my_perl=0x1cc6010) at pp_hot.c:2794
        markix = <optimized out>
        sp = <optimized out>
        sv = 0x2affa30
        gv = 0x1
        cv = <optimized out>
        cx = <optimized out>
        gimme = 1
        hasargs = <optimized out>
#15 0x00007f60e13c5216 in Perl_runops_standard (my_perl=0x1cc6010) at run.c:42
        op = <optimized out>
#16 0x00007f60e1355d7d in S_run_body (oldscope=1, my_perl=0x1cc6010) at 
perl.c:2451
No locals.
#17 perl_run (my_perl=0x1cc6010) at perl.c:2372
        oldscope = 1
        ret = <optimized out>
        cur_env = {
          je_prev = 0x1cc6350, 
          je_buf =             {[0] = {
              __jmpbuf =                 {[0] = 0,
                [1] = 7282046399673097890,
                [2] = 4197928,
                [3] = 140737143577936,
                [4] = 0,
                [5] = 0,
                [6] = -7282091381828526430,
                [7] = -7219616596398088542}, 
              __mask_was_saved = 0, 
              __saved_mask = {
                __val =                   {[0] = 0,
                  [1] = 0,
                  [2] = 0,
                  [3] = 140054075588103,
                  [4] = 7165064481289011201,
                  [5] = 0,
                  [6] = 7596496373740942904,
                  [7] = 140054071660504,
                  [8] = 0,
                  [9] = 0,
                  [10] = 4197928,
                  [11] = 140054075613989,
                  [12] = 0,
                  [13] = 0,
                  [14] = 0,
                  [15] = 0}
              }
            }}, 
          je_ret = 3, 
          je_mustcatch = true
        }
#18 0x0000000000400e19 in main (argc=3, argv=0x7fffeb731d58, 
env=0x7fffeb731d78) at perlmain.c:114
        exitstatus = <optimized out>
        i = <optimized out>
quit

Attachment: signature.asc
Description: Digital signature

Reply via email to