Uploaded image for project: 'Subversion'
  1. Subversion
  2. SVN-3007

perl bindings segfault very often

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Blocker
    • Resolution: Fixed
    • 1.5.x
    • None
    • bindings_swig_perl
    • None
    • Linux

    Description

      x86_64 64bit platform, Linux 2.6.22, glibc 2.7, gcc 4.2.2, swig 1.3.31 (also 
      tested with swig 1.3.32rc1), subversion 1.4.5, perl 5.8.8
      
      When trying to use git svnimport or perl Makefile.PL in SVK then segfault happens 
      in subversion bindings:
      
      [arekm@carme-pld SVK-v2.0.2]$ gdb --args perl Makefile.PL
      GNU gdb 6.7.1
      Copyright (C) 2007 Free Software Foundation, Inc.
      License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
      This is free software: you are free to change and redistribute it.
      There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
      and "show warranty" for details.
      This GDB was configured as "x86_64-pld-linux"...
      (no debugging symbols found)
      Using host libthread_db library "/lib64/libthread_db.so.1".
      (gdb) r
      Starting program: /usr/bin/perl Makefile.PL
      (no debugging symbols found)
      (no debugging symbols found)
      (no debugging symbols found)
      [Thread debugging using libthread_db enabled]
      [New Thread 0x2b07f9ede160 (LWP 4166)]
      
      Program received signal SIGSEGV, Segmentation fault.
      [Switching to Thread 0x2b07f9ede160 (LWP 4166)]
      _swig_perl_type_query (typename=0x2b0800c383a6 "apr_pool_t *", klen=12)
          at /home/users/arekm/rpm/BUILD/subversion-1.4.5/subversion/bindings/swig/
      proxy/swig_perl_external_runtime.swg:546
      546         if (iter->size) {
      (gdb) bt
      #0  _swig_perl_type_query (typename=0x2b0800c383a6 "apr_pool_t *", klen=12)
          at /home/users/arekm/rpm/BUILD/subversion-1.4.5/subversion/bindings/swig/
      proxy/swig_perl_external_runtime.swg:546
      #1  0x00002b0800c35d40 in svn_swig_pl_make_pool (obj=0xd86510)
          at /home/users/arekm/rpm/BUILD/subversion-1.4.5/subversion/bindings/swig/perl/
      libsvn_swig_perl/swigutil_pl.c:1269
      #2  0x00002b07ff9113c1 in _wrap_svn_utf_initialize (my_perl=<value optimized 
      out>, cv=<value optimized out>) at core.c:11237
      #3  0x00002b07f8fca7b3 in Perl_pp_entersub () from /usr/lib64/perl5/5.8.8/x86_64-
      pld-linux-thread-multi/CORE/libperl.so.5.8.0
      #4  0x00002b07f8fb1a5e in Perl_runops_debug () from /usr/lib64/perl5/5.8.8/
      x86_64-pld-linux-thread-multi/CORE/libperl.so.5.8.0
      #5  0x00002b07f8f6c4c3 in Perl_call_sv () from /usr/lib64/perl5/5.8.8/x86_64-pld-
      linux-thread-multi/CORE/libperl.so.5.8.0
      #6  0x00002b07f8f6ca4a in Perl_call_list () from /usr/lib64/perl5/5.8.8/x86_64-
      pld-linux-thread-multi/CORE/libperl.so.5.8.0
      #7  0x00002b07f8fa0b96 in Perl_newATTRSUB () from /usr/lib64/perl5/5.8.8/x86_64-
      pld-linux-thread-multi/CORE/libperl.so.5.8.0
      #8  0x00002b07f8f9f094 in Perl_utilize () from /usr/lib64/perl5/5.8.8/x86_64-pld-
      linux-thread-multi/CORE/libperl.so.5.8.0
      #9  0x00002b07f8f91be8 in Perl_yyparse () from /usr/lib64/perl5/5.8.8/x86_64-pld-
      linux-thread-multi/CORE/libperl.so.5.8.0
      #10 0x00002b07f8ffe612 in ?? () from /usr/lib64/perl5/5.8.8/x86_64-pld-linux-
      thread-multi/CORE/libperl.so.5.8.0
      #11 0x00002b07f9000827 in Perl_pp_require () from /usr/lib64/perl5/5.8.8/x86_64-
      pld-linux-thread-multi/CORE/libperl.so.5.8.0
      #12 0x00002b07f8fb1a5e in Perl_runops_debug () from /usr/lib64/perl5/5.8.8/
      x86_64-pld-linux-thread-multi/CORE/libperl.so.5.8.0
      #13 0x00002b07f8f6d3ad in perl_run () from /usr/lib64/perl5/5.8.8/x86_64-pld-
      linux-thread-multi/CORE/libperl.so.5.8.0
      #14 0x000000000040198c in main ()
      (gdb) l
      541     SWIG_MangledTypeQueryModule(swig_module_info *start,
      542                                 swig_module_info *end,
      543                                 const char *name) {
      544       swig_module_info *iter = start;
      545       do {
      546         if (iter->size) {
      547           register size_t l = 0;
      548           register size_t r = iter->size - 1;
      549           do {
      550             /* since l+r >= 0, we can (>> 1) instead (/ 2) */
      (gdb) info threads
      * 1 Thread 0x2b07f9ede160 (LWP 4166)  _swig_perl_type_query 
      (typename=0x2b0800c383a6 "apr_pool_t *", klen=12)
          at /home/users/arekm/rpm/BUILD/subversion-1.4.5/subversion/bindings/swig/
      proxy/swig_perl_external_runtime.swg:546
      
      Reproducible, always happens in the same place with apr_pool_t.
      

      Original issue reported by arekm

      Attachments

        Activity

          People

            Unassigned Unassigned
            subversion-importer Subversion Importer
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: