[Bf-committers] MSVC2008 debug build crash on exit with latest SVN

Benoit Bolsee benoit.bolsee at online.be
Fri Dec 7 00:12:55 CET 2012


There is a systematic crash in python33_d.dll when exiting from a
MSVC2008 debug build. The crash occurs with the default scene as well as
with any scene. Here is the stack trace with the default scene:
 
> msvcr90d.dll!_write(int fh=0x00000002, const void * buf=0x0835ad00,
unsigned int cnt=0x0000000e)  Line 69 + 0x46 bytes C
  msvcr90d.dll!_flush(_iobuf * str=0x10311428)  Line 154 + 0x1d bytes C
  msvcr90d.dll!_fflush_nolock(_iobuf * str=0x10311428)  Line 106 + 0x9
bytes C
  msvcr90d.dll!fflush(_iobuf * stream=0x10311428)  Line 68 + 0x9 bytes C
  python33_d.dll!1e23c09d()  
  [Frames below may be incorrect and/or missing, no symbols loaded for
python33_d.dll] 
  python33_d.dll!1e237129()  
  blender.exe!BPY_python_end()  Line 348 + 0x8 bytes C
  blender.exe!WM_exit_ext(bContext * C=0x05ead4e8, const short
do_python=0x0001)  Line 453 C
  blender.exe!WM_exit(bContext * C=0x05ead4e8)  Line 497 + 0xb bytes C
  blender.exe!wm_exit_blender_op(bContext * C=0x05ead4e8, wmOperator *
op=0x09aa5238)  Line 2252 + 0x9 bytes C
  blender.exe!wm_operator_invoke(bContext * C=0x05ead4e8, wmOperatorType
* ot=0x066177b8, wmEvent * event=0x00000000, PointerRNA *
properties=0x0022f628, ReportList * reports=0x00000000, short
poll_only=0x0000)  Line 879 + 0x15 bytes C
  blender.exe!wm_operator_call_internal(bContext * C=0x05ead4e8,
wmOperatorType * ot=0x066177b8, PointerRNA * properties=0x0022f628,
ReportList * reports=0x00000000, short context=0x000a, short
poll_only=0x0000)  Line 1055 + 0x1e bytes C
  blender.exe!WM_operator_name_call(bContext * C=0x05ead4e8, const
unsigned char * opstring=0x042ef79c, short context=0x000a, PointerRNA *
properties=0x0022f628)  Line 1090 + 0x1a bytes C
  blender.exe!ui_apply_but_funcs_after(bContext * C=0x05ead4e8)  Line
426 + 0x25 bytes C
  blender.exe!ui_handler_region_menu(bContext * C=0x05ead4e8, wmEvent *
event=0x09a442a0, void * UNUSED_userdata=0x09aae928)  Line 6948 + 0x9
bytes C
  blender.exe!wm_handler_ui_call(bContext * C=0x05ead4e8, wmEventHandler
* handler=0x09a45c18, wmEvent * event=0x09a442a0, int
always_pass=0x00000000)  Line 363 + 0x19 bytes C
  blender.exe!wm_handlers_do_intern(bContext * C=0x05ead4e8, wmEvent *
event=0x09a442a0, ListBase * handlers=0x067e4b34)  Line 1737 + 0x15
bytes C
  blender.exe!wm_handlers_do(bContext * C=0x05ead4e8, wmEvent *
event=0x09a442a0, ListBase * handlers=0x067e4b34)  Line 1816 + 0x11
bytes C
  blender.exe!wm_event_do_handlers(bContext * C=0x05ead4e8)  Line 2063 +
0x16 bytes C
  blender.exe!WM_main(bContext * C=0x05ead4e8)  Line 366 + 0x9 bytes C
  blender.exe!main(int argc=0x00000001, const unsigned char * *
UNUSED_argv_c=0x05df4240)  Line 1398 + 0x9 bytes C
  blender.exe!__tmainCRTStartup()  Line 266 + 0x19 bytes C
  blender.exe!mainCRTStartup()  Line 182 C
  kernel32.dll!7c817077()  

I get a slightly different stack trace sometimes or after loading a
scene:
 
> blender.exe!BLI_findstring(const ListBase * listbase=0x09b33540, const
unsigned char * id=0x0022e4e4, const int offset=0x00000012)  Line 375 +
0x3 bytes C
  blender.exe!bpy_text_import_name(const unsigned char *
name=0x082e12e8, int * found=0x0022e654)  Line 186 + 0x15 bytes C
  blender.exe!blender_import(_object * UNUSED_self=0x00000000, _object *
args=0x083fa8f0, _object * kw=0x00000000)  Line 297 + 0xd bytes C
  python33_d.dll!1e139177()  
  .... rest of stack is same as above.
 
In this case, the error is that bpy_import_main static variable points
to invalid memory (probably freed).  The crash does not occur with a
release build but that doesn't mean much because release builds don't
have the checks and safeguards of debug builds to detect that freed
memory is being used. 

 


More information about the Bf-committers mailing list