Menu

#68 Seg fault when clicking on a specific players name

None
closed-fixed
None
1
2018-08-28
2014-01-27
No

While reviewing a game, clicking on the players name usually opens a window showing various pieces of data about the player.

If the name happens to be my name, the app seg faults and crashes with a core dump. Sorry no useful information available on what might trigger the crash; app does spin for a bit with a "busy" cursor showing and then an abrupt seg fault.

Related

Bugs: #68

Discussion

  • Gregor Cramer

    Gregor Cramer - 2014-01-27
    • status: open --> accepted
    • assigned_to: Gregor Cramer
    • Priority: 5 --> 1
     
  • Gregor Cramer

    Gregor Cramer - 2014-01-27

    This means that an exception will be thrown, but unluckely on many systems the stack backtracing is crashing, I don't know why. Please install package gdb and try to get the error again, if gdb is installed you should get an error message (but sometimes it happens that gdb is hanging).

     
  • Drew Ferguson

    Drew Ferguson - 2014-01-27

    How can I run gdb on a bash script?
    Or how can I get gdb to get a backtrace?

     
  • Drew Ferguson

    Drew Ferguson - 2014-01-27

    Got gdb to attach to the app but had to logon as root; any easier way, let me know - was getting "ptrace: Operation not permitted " error

    Anyway feedback from gdb on this segfault is:

    Program received signal SIGSEGV, Segmentation fault.
    0x000000000076358e in mstl::backtrace::symbols_linux (this=0x7fff9f753230) at m_backtrace.cpp:712
    712                     m_addresses[m_nframes] = static_cast<void**>(address)[1];
    
     
  • Gregor Cramer

    Gregor Cramer - 2014-01-27

    Oh, sorry, I didn't explain this very well. Installation of gdb is sufficient. you don't need to use gdb, the program is doing this.

    ptrace: Operation not permitted

    This is the silly Ubuntu. Please have a look on this page how to prevent this. The SIGSEGV is normally a consequence of the corrupted ptrace (under Ubuntu). After applying the solution it should work.

     
    • Drew Ferguson

      Drew Ferguson - 2014-01-27

      I am using ArchLinux though the Ubuntu guidleines will probably work too,
      looks like it is some security issue.

      As for just installing gdb, I still was not getting and feed back on either
      occasion when the app crashed so I thought actually running gdb might give
      more info.

      Is the backtrace of any help? A bit odd that the same backtrace was
      reported for both issues.

      On 27 January 2014 17:05, Gregor Cramer gcramer@users.sf.net wrote:

      Oh, sorry, I didn't explain this very well. Installation of gdb is
      sufficient. you don't need to use gdb, the program is doing this.

      ptrace: Operation not permitted

      This is the silly Ubuntu. Please have a look on this pagehttps://sourceforge.net/mailarchive/forum.php?thread_name=20111118143650.38280%40gmx.net&forum_name=scidb-usershow to prevent this. The SIGSEGV is normally a consequence of the corrupted
      ptrace (under Ubuntu). After applying the solution it should work.


      Status: accepted

      Created: Mon Jan 27, 2014 04:36 AM UTC by Drew Ferguson
      Last Updated: Mon Jan 27, 2014 04:49 PM UTC
      Owner: Gregor Cramer

      While reviewing a game, clicking on the players name usually opens a
      window showing various pieces of data about the player.

      If the name happens to be my name, the app seg faults and crashes with a
      core dump. Sorry no useful information available on what might trigger the
      crash; app does spin for a bit with a "busy" cursor showing and then an
      abrupt seg fault.


      Sent from sourceforge.net because you indicated interest in
      https://sourceforge.net/p/scidb/bugs/68/

      To unsubscribe from further messages, please visit
      https://sourceforge.net/auth/subscriptions/

      --
      Drew

       

      Related

      Bugs: #68

  • Drew Ferguson

    Drew Ferguson - 2014-01-27

    After installing gdb, there was no stacktrace reported when app crashed so I tried monitoring the app directly in gdb. I'll rebuild source with the switch you suggested

    Are you saying the SIGSEGV fault is being produced by the ptrace issue?
    Man, how useful is that

     
  • Gregor Cramer

    Gregor Cramer - 2014-01-28

    Yes, the crash is a result of the ptrace issue. The backtrace works if the issue is solved, but sometimes it happens that gdb is hanging, the application is not reacting anymore, in this case it may help to kill gdb on the command line.

    Normally the stack backtrace is very useful, it is annoying that it does not work without complications anymore. This has changed with newer compiler versions. With older compiler version I could do the backtracing with the use of addr2line, but for any reasons it is crashing on newer systems.

     
  • Drew Ferguson

    Drew Ferguson - 2014-01-28

    Hey Gregor
    not much luck with the ptrace problem; none of tricks mention seem to have any effect.
    Anyway perhaps this might help

    #0  0x0000000000762b36 in mstl::backtrace::symbols_linux (this=0x7fff445481a0) at m_backtrace.cpp:712
    #1  0x0000000000762eca in mstl::backtrace::symbols (this=0x7fff445481a0) at m_backtrace.cpp:774
    #2  0x0000000000760f06 in mstl::backtrace::backtrace (this=0x7fff445481a0) at m_backtrace.cpp:469
    #3  0x000000000076a8ff in mstl::exception::exception (this=0x7fff44548190, fmt=0x891145 "precondition violation: %s") at m_exception.cpp:82
    #4  0x000000000075fd70 in mstl::precondition_violation_exception::precondition_violation_exception (this=0x7fff44548190, what=0x8902a5 "isUsed(code)")
        at m_assert.cpp:25
    #5  0x00000000007538ae in db::EcoTable::getEntry (this=0xc74e20 <db::EcoTable::m_specimen>, code=...) at db_eco_table.cpp:1054
    #6  0x000000000042ff46 in db::EcoTable::getLine (this=0xc74e20 <db::EcoTable::m_specimen>, code=...) at ../db/db_eco_table.ipp:60
    #7  0x000000000067cce3 in db::Player::emitPlayerCard (receptacle=..., player=..., stats=...) at db_player.cpp:3103
    #8  0x00000000005ecb1c in db::Database::emitPlayerCard (this=0x2d5c090, receptacle=..., player=...) at db_database.cpp:1918
    #9  0x0000000000424101 in cmdPlayerCard (ti=0x2302f90, objc=8, objv=0xcf595e0) at tcl_database.cpp:2644
    #10 0x0000000000412331 in safeCall (clientData=0x423e4d <cmdPlayerCard(ClientData, Tcl_Interp*, int, Tcl_Obj* const*)>, ti=0x2302f90, objc=8, objv=0xcf595e0)
        at tcl_base.cpp:764
    #11 0x00007f99fbb3da37 in TclNRRunCallbacks () from /usr/lib/libtcl8.6.so
    #12 0x00007f99fbb3fbbf in TclEvalEx () from /usr/lib/libtcl8.6.so
    #13 0x00007f99fbb3fed6 in Tcl_EvalEx () from /usr/lib/libtcl8.6.so
    #14 0x00007f99fc842485 in Tk_BindEvent () from /usr/lib/libtk8.6.so
    #15 0x00007f99fc887810 in CanvasDoEvent () from /usr/lib/libtk8.6.so
    #16 0x00007f99fc888f87 in CanvasBindProc () from /usr/lib/libtk8.6.so
    #17 0x00007f99fc84da7d in Tk_HandleEvent () from /usr/lib/libtk8.6.so
    #18 0x00007f99fc84def0 in WindowEventProc () from /usr/lib/libtk8.6.so
    #19 0x00007f99fbbf1e07 in Tcl_ServiceEvent () from /usr/lib/libtcl8.6.so
    #20 0x00007f99fbbf2065 in Tcl_DoOneEvent () from /usr/lib/libtcl8.6.so
    #21 0x00007f99fc84e5a2 in Tk_MainLoop () from /usr/lib/libtk8.6.so
    #22 0x00007f99fc85c72d in Tk_MainEx () from /usr/lib/libtk8.6.so
    #23 0x000000000040c360 in main (argc=2, argv=0x7fff44549d38) at tkscidb.cpp:108
    
     
  • Gregor Cramer

    Gregor Cramer - 2014-01-28

    Thanks for the trace. In this case I need your database for testing, for any reason one of the internal classification keys is invalid. Is it possible to attach it? Otherwise I can give you an upload address.

     
    • Drew Ferguson

      Drew Ferguson - 2014-01-28

      in the post

       
  • Gregor Cramer

    Gregor Cramer - 2014-01-29
    • status: accepted --> closed-fixed
     
  • Gregor Cramer

    Gregor Cramer - 2014-01-29

    Many thanks for the database, luckely it's was simple error. Will work in revision #1001.

     

Log in to post a comment.