Bug 215510 - exp-ptrcheck: the 'impossible' happened: argh: clientcall
Summary: exp-ptrcheck: the 'impossible' happened: argh: clientcall
Status: RESOLVED UNMAINTAINED
Alias: None
Product: valgrind
Classification: Developer tools
Component: sgcheck (show other bugs)
Version: 3.5.0
Platform: Mandriva RPMs Linux
: NOR crash
Target Milestone: ---
Assignee: Julian Seward
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-11-21 01:45 UTC by Matthew Cline
Modified: 2020-10-28 11:05 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Matthew Cline 2009-11-21 01:45:46 UTC
Version:           3.5.0 (using KDE 4.3.2)
OS:                Linux
Installed from:    Mandriva RPMs

Trying out ptrcheck on the SDL version of Dungeon Crawl Stone Soup, I get the following error:

<<<<
f = 0x38002c40
name = h_replace_malloc_usable_size

exp-ptrcheck: the 'impossible' happened:
   argh: clientcall
==11302==    at 0x38014430: report_and_quit (m_libcassert.c:145)
==11302==    by 0x38014486: panic (m_libcassert.c:227)
==11302==    by 0x380144D7: vgPlain_tool_panic (m_libcassert.c:242)
==11302==    by 0x38003791: h_post_reg_write_clientcall (h_main.c:2081)
==11302==    by 0x3805316D: vgPlain_scheduler (scheduler.c:1378)
==11302==    by 0x3807EB64: run_a_thread_NORETURN (syswrap-linux.c:91)

sched status:
  running_tid=1
>>>>

I'm not sure if I trust the resulting stack trace, since it tells me that the Lua interpreter's memory management code is calling the OpenGL library:

<<<<
Thread 1: status = VgTs_Runnable
==11302==    at 0x40233CC: malloc_usable_size (vg_replace_malloc.c:689)
==11302==    by 0x41F25CD: ??? (in /usr/lib/libGL.so.190.42)
==11302==    by 0x852D2AC: luaM_realloc_ (lmem.c:79)
==11302==    by 0x8530EE3: luaS_resize (lstring.c:44)
==11302==    by 0x85310D5: luaS_newlstr (lstring.c:70)
==11302==    by 0x854013E: luaX_init (llex.c:67)
==11302==    by 0x8530C1E: f_luaopen (lstate.c:78)
==11302==    by 0x852AB66: luaD_rawrunprotected (ldo.c:116)
==11302==    by 0x8530A30: lua_newstate (lstate.c:182)
==11302==    by 0x810DF77: CLua::init_lua() (clua.cc:603)
==11302==    by 0x810DFDF: CLua::state() (clua.cc:70)
==11302==    by 0x811047B: CLua::callbooleanfn(bool, char const*, char const*, ...) (clua.cc:473)
==11302==    by 0x8202EA0: game_options::read_option_line(std::string const&, bool) (initfile.cc:3242)
==11302==    by 0x820757E: read_init_file(bool) (initfile.cc:1216)
==11302==    by 0x82988FB: main (main.cc:239)
>>>>

MemCheck is reporting some memory errors in OpenGL with the app (sometimes leading to crashes), so those might be confusing PtrCheck.  On the other-hand, maybe PtrCheck is catching something that's leading to the crashes.

Unfortunately, /usr/lib/libGL.so.190.42 is closed source (Nvidia), so I don't think I can further track down what's causing the problem.

Oh, and running Ptrcheck on the text-only version of Crawl doesn't crash (though it runs really slow).