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
signature.asc
Description: Digital signature