[BUG] rb_gc_mark()

I’m getting the following error quite frequently. What additional info
can I supply to get it fixed? BTW, I am using FxRuby.

[BUG] rb_gc_mark(): unknown data type 0x18(0xf9163c4) non object
ruby 1.8.4 (2005-12-24) [i386-mswin32]

This application has requested the Runtime to terminate it in an unusual
way.
Please contact the application’s support team for more information.

Hi,

In message “Re: [BUG] rb_gc_mark()”
on Thu, 16 Mar 2006 01:32:21 +0900, Eric C.
[email protected] writes:

|I’m getting the following error quite frequently. What additional info
|can I supply to get it fixed? BTW, I am using FxRuby.
|
|[BUG] rb_gc_mark(): unknown data type 0x18(0xf9163c4) non object
|ruby 1.8.4 (2005-12-24) [i386-mswin32]

This means an object in your application referring a broken
reference, i.e. a C extension you are using has a bug. Running your
application under the debugger and set breakpoint to rb_bug() where
the above message is printed, and send me a stack trace. But since
your are on mswin32, I’m not sure you can get the useful stack trace.

						matz.

I did not have a symbol file available, but I caught an access
violation as follows:

0:000> k 200
ChildEBP RetAddr
WARNING: Stack unwind information not available. Following frames may
be wrong.
023fd508 1004625d msvcrt_ruby18!st_foreach+0x1e
023fd51c 10046904 msvcrt_ruby18!rb_mark_tbl+0x3d
023fd5b8 1004649e msvcrt_ruby18!rb_gc_mark+0x454
023fd5d0 10046afb msvcrt_ruby18!rb_gc_mark_maybe+0x18e
023fd66c 1004649e msvcrt_ruby18!rb_gc_mark+0x64b
023fd684 1004620b msvcrt_ruby18!rb_gc_mark_maybe+0x18e
023fd6a8 1004612d msvcrt_ruby18!rb_gc_mark_locations+0xfb
023fd6bc 10046ee1 msvcrt_ruby18!rb_gc_mark_locations+0x1d
023fd724 10045c49 msvcrt_ruby18!rb_gc_mark_frame+0x161
023fd730 10045d19 msvcrt_ruby18!ruby_xmalloc+0x49
023fd740 10056d94 msvcrt_ruby18!ruby_xrealloc+0x29
023fd754 10057a80 msvcrt_ruby18!rb_str_resize+0x64
023fd774 100595ef msvcrt_ruby18!rb_str_update+0x360
023fd788 1000d6f1 msvcrt_ruby18!Init_String+0xa5f
023fd984 1000c8e3 msvcrt_ruby18!rb_with_disable_interrupt+0x1171
023fd9c4 1000e9a7 msvcrt_ruby18!rb_with_disable_interrupt+0x363
023fd9e8 100111ed msvcrt_ruby18!rb_funcall2+0x87
023fda08 1003da24 msvcrt_ruby18!rb_obj_call_init+0x3d
023fda20 1000d6f1 msvcrt_ruby18!rb_class_new_instance+0x24
023fdc1c 1000c8e3 msvcrt_ruby18!rb_with_disable_interrupt+0x1171
023fdc5c 1000646f msvcrt_ruby18!rb_with_disable_interrupt+0x363
023fe290 1000757e msvcrt_ruby18!rb_Array+0x22bf
023fe8b0 1000e1fa msvcrt_ruby18!rb_Array+0x33ce
023fead4 1000c8e3 msvcrt_ruby18!rb_with_disable_interrupt+0x1c7a
023feb14 1000680e msvcrt_ruby18!rb_with_disable_interrupt+0x363
023ff14c 10004718 msvcrt_ruby18!rb_Array+0x265e
023ff76c 1000af66 msvcrt_ruby18!rb_Array+0x568
023ff8d8 1000b524 msvcrt_ruby18!rb_need_block+0x566
023ff8f4 10081b09 msvcrt_ruby18!rb_yield+0x14
023ff908 1000c4d5 msvcrt_ruby18!Init_Dir+0x6e9
023ff984 1008255a msvcrt_ruby18!rb_ensure+0x75
023ff9a0 1000d721 msvcrt_ruby18!Init_Dir+0x113a
023ffb98 1000c8e3 msvcrt_ruby18!rb_with_disable_interrupt+0x11a1
023ffbd8 1000646f msvcrt_ruby18!rb_with_disable_interrupt+0x363
0240020c 1000515c msvcrt_ruby18!rb_Array+0x22bf
02400830 1000e1fa msvcrt_ruby18!rb_Array+0xfac
02400a3c 1000c8e3 msvcrt_ruby18!rb_with_disable_interrupt+0x1c7a
02400a7c 1000680e msvcrt_ruby18!rb_with_disable_interrupt+0x363
024010b4 100056d6 msvcrt_ruby18!rb_Array+0x265e
024016d4 1000af66 msvcrt_ruby18!rb_Array+0x1526
02401840 1000b524 msvcrt_ruby18!rb_need_block+0x566
0240185c 10081b09 msvcrt_ruby18!rb_yield+0x14
02401870 1000c4d5 msvcrt_ruby18!Init_Dir+0x6e9
024018ec 1008255a msvcrt_ruby18!rb_ensure+0x75
02401908 1000d721 msvcrt_ruby18!Init_Dir+0x113a
02401b00 1000c8e3 msvcrt_ruby18!rb_with_disable_interrupt+0x11a1
02401b40 1000646f msvcrt_ruby18!rb_with_disable_interrupt+0x363
02402174 1000515c msvcrt_ruby18!rb_Array+0x22bf
02402798 1000e1fa msvcrt_ruby18!rb_Array+0xfac
024029a4 1000c8e3 msvcrt_ruby18!rb_with_disable_interrupt+0x1c7a
024029e4 1000680e msvcrt_ruby18!rb_with_disable_interrupt+0x363
0240301c 100056d6 msvcrt_ruby18!rb_Array+0x265e
0240363c 1000af66 msvcrt_ruby18!rb_Array+0x1526
024037a8 1000b524 msvcrt_ruby18!rb_need_block+0x566
024037c4 10081b09 msvcrt_ruby18!rb_yield+0x14
024037d8 1000c4d5 msvcrt_ruby18!Init_Dir+0x6e9
02403854 1008255a msvcrt_ruby18!rb_ensure+0x75
02403870 1000d721 msvcrt_ruby18!Init_Dir+0x113a
02403a68 1000c8e3 msvcrt_ruby18!rb_with_disable_interrupt+0x11a1
02403aa8 1000646f msvcrt_ruby18!rb_with_disable_interrupt+0x363
024040dc 1000515c msvcrt_ruby18!rb_Array+0x22bf
02404700 1000e1fa msvcrt_ruby18!rb_Array+0xfac
0240490c 1000c8e3 msvcrt_ruby18!rb_with_disable_interrupt+0x1c7a
0240494c 1000680e msvcrt_ruby18!rb_with_disable_interrupt+0x363
02404f84 100056d6 msvcrt_ruby18!rb_Array+0x265e
024055a4 1000af66 msvcrt_ruby18!rb_Array+0x1526
02405710 1000b524 msvcrt_ruby18!rb_need_block+0x566
0240572c 10081b09 msvcrt_ruby18!rb_yield+0x14
02405740 1000c4d5 msvcrt_ruby18!Init_Dir+0x6e9
024057bc 1008255a msvcrt_ruby18!rb_ensure+0x75
024057d8 1000d721 msvcrt_ruby18!Init_Dir+0x113a
024059d0 1000c8e3 msvcrt_ruby18!rb_with_disable_interrupt+0x11a1
02405a10 1000646f msvcrt_ruby18!rb_with_disable_interrupt+0x363
02406044 1000515c msvcrt_ruby18!rb_Array+0x22bf
02406668 1000e1fa msvcrt_ruby18!rb_Array+0xfac
02406874 1000c8e3 msvcrt_ruby18!rb_with_disable_interrupt+0x1c7a
024068b4 1000680e msvcrt_ruby18!rb_with_disable_interrupt+0x363
02406eec 100056d6 msvcrt_ruby18!rb_Array+0x265e
0240750c 1000af66 msvcrt_ruby18!rb_Array+0x1526
02407678 1000b524 msvcrt_ruby18!rb_need_block+0x566
02407694 10081b09 msvcrt_ruby18!rb_yield+0x14
024076a8 1000c4d5 msvcrt_ruby18!Init_Dir+0x6e9
02407724 1008255a msvcrt_ruby18!rb_ensure+0x75
02407740 1000d721 msvcrt_ruby18!Init_Dir+0x113a
02407938 1000c8e3 msvcrt_ruby18!rb_with_disable_interrupt+0x11a1
02407978 1000646f msvcrt_ruby18!rb_with_disable_interrupt+0x363
02407fac 1000515c msvcrt_ruby18!rb_Array+0x22bf
024085d0 1000e1fa msvcrt_ruby18!rb_Array+0xfac
024087dc 1000c8e3 msvcrt_ruby18!rb_with_disable_interrupt+0x1c7a
0240881c 1000680e msvcrt_ruby18!rb_with_disable_interrupt+0x363
02408e54 100056d6 msvcrt_ruby18!rb_Array+0x265e
02409474 1000af66 msvcrt_ruby18!rb_Array+0x1526
024095e0 1000b524 msvcrt_ruby18!rb_need_block+0x566
024095fc 10081b09 msvcrt_ruby18!rb_yield+0x14
02409610 1000c4d5 msvcrt_ruby18!Init_Dir+0x6e9
0240968c 1008255a msvcrt_ruby18!rb_ensure+0x75
024096a8 1000d721 msvcrt_ruby18!Init_Dir+0x113a
024098a0 1000c8e3 msvcrt_ruby18!rb_with_disable_interrupt+0x11a1
024098e0 1000646f msvcrt_ruby18!rb_with_disable_interrupt+0x363
02409f14 1000515c msvcrt_ruby18!rb_Array+0x22bf
0240a538 1000e1fa msvcrt_ruby18!rb_Array+0xfac
0240a744 1000c8e3 msvcrt_ruby18!rb_with_disable_interrupt+0x1c7a
0240a784 1000680e msvcrt_ruby18!rb_with_disable_interrupt+0x363
0240adbc 100056d6 msvcrt_ruby18!rb_Array+0x265e
0240b3dc 1000af66 msvcrt_ruby18!rb_Array+0x1526
0240b548 1000b524 msvcrt_ruby18!rb_need_block+0x566
0240b564 10081b09 msvcrt_ruby18!rb_yield+0x14
0240b578 1000c4d5 msvcrt_ruby18!Init_Dir+0x6e9
0240b5f4 1008255a msvcrt_ruby18!rb_ensure+0x75
0240b610 1000d721 msvcrt_ruby18!Init_Dir+0x113a
0240b808 1000c8e3 msvcrt_ruby18!rb_with_disable_interrupt+0x11a1
0240b848 1000646f msvcrt_ruby18!rb_with_disable_interrupt+0x363
0240be7c 1000515c msvcrt_ruby18!rb_Array+0x22bf
0240c4a0 1000e1fa msvcrt_ruby18!rb_Array+0xfac
0240c6ac 1000c8e3 msvcrt_ruby18!rb_with_disable_interrupt+0x1c7a
0240c6ec 1000680e msvcrt_ruby18!rb_with_disable_interrupt+0x363
0240cd28 1000e1fa msvcrt_ruby18!rb_Array+0x265e
0240cf34 1000c8e3 msvcrt_ruby18!rb_with_disable_interrupt+0x1c7a
0240cf74 1000646f msvcrt_ruby18!rb_with_disable_interrupt+0x363
0240d5a4 1000e1fa msvcrt_ruby18!rb_Array+0x22bf
0240d7ac 1000c8e3 msvcrt_ruby18!rb_with_disable_interrupt+0x1c7a
0240d7ec 1000680e msvcrt_ruby18!rb_with_disable_interrupt+0x363
0240de20 1000e1fa msvcrt_ruby18!rb_Array+0x265e
0240e030 10014d50 msvcrt_ruby18!rb_with_disable_interrupt+0x1c7a
0240e070 1000d6f1 msvcrt_ruby18!rb_f_lambda+0xa90
0240e26c 1000c8e3 msvcrt_ruby18!rb_with_disable_interrupt+0x1171
0240e2ac 1000646f msvcrt_ruby18!rb_with_disable_interrupt+0x363
0240e8e8 1000757e msvcrt_ruby18!rb_Array+0x22bf
0240ef08 1000e1fa msvcrt_ruby18!rb_Array+0x33ce
0240f120 1000c8e3 msvcrt_ruby18!rb_with_disable_interrupt+0x1c7a
0240f160 1000e815 msvcrt_ruby18!rb_with_disable_interrupt+0x363
0240f19c 1000e70f msvcrt_ruby18!rb_funcall+0x125
0240f1b8 07389cf7 msvcrt_ruby18!rb_funcall+0x1f
0240f1e0 073883a3 fox14!Init_fx3d+0x7d997
0240f218 0737b71b fox14!Init_fx3d+0x7c043
0240f244 0759395b fox14!Init_fx3d+0x6f3bb
0240f274 075dacec fox14!Init_ui+0xb52fb
0240f2a8 0736e6a5 fox14!Init_ui+0xfc68c
0240f2cc 07597b19 fox14!Init_fx3d+0x62345
0240f468 07596f38 fox14!Init_ui+0xb94b9
0240f4a8 7739c484 fox14!Init_ui+0xb88d8
0240f520 7739c73c USER32!EnableMenuItem+0x4da1
0240f588 7738e406 USER32!GetWindowLongW+0x183
0240f598 07595f09 USER32!DispatchMessageA+0xf
0240f5cc 07595faf fox14!Init_ui+0xb78a9
0240f604 07233da7 fox14!Init_ui+0xb794f
0240f618 1000d6f1 fox14!Init_core+0x1d7d7
0240f814 1000c8e3 msvcrt_ruby18!rb_with_disable_interrupt+0x1171
0240f854 1000646f msvcrt_ruby18!rb_with_disable_interrupt+0x363
0240fe9c 10002fc6 msvcrt_ruby18!rb_Array+0x22bf
0240feb0 10002f4b msvcrt_ruby18!ruby_exec+0x136
0240ff2c 10002ea5 msvcrt_ruby18!ruby_exec+0xbb
0240ff38 10002fea msvcrt_ruby18!ruby_exec+0x15
0240ff44 0040102d msvcrt_ruby18!ruby_run+0x1a
0240ff4c 0040112b ruby+0x102d
0240ffc0 77e523cd ruby+0x112b
0240fff0 00000000 kernel32!IsProcessorFeaturePresent+0x9e

msvcrt_ruby18!st_foreach:
1003c930 55 push ebp
1003c931 8bec mov ebp,esp
1003c933 83ec18 sub esp,0x18
1003c936 c745f000000000 mov dword ptr [ebp-0x10],0x0
1003c93d eb09 jmp msvcrt_ruby18!st_foreach+0x18
(1003c948)
1003c93f 8b45f0 mov eax,[ebp-0x10]
1003c942 83c001 add eax,0x1
1003c945 8945f0 mov [ebp-0x10],eax
1003c948 8b4d08 mov ecx,[ebp+0x8]
1003c94b 8b55f0 mov edx,[ebp-0x10]
1003c94e 3b5104 cmp edx,[ecx+0x4]
ds:0023:00000005=???
1003c951 0f8d10010000 jnl msvcrt_ruby18!st_foreach+0x137
(1003ca67)
1003c957 c745f800000000 mov dword ptr [ebp-0x8],0x0
1003c95e 8b4508 mov eax,[ebp+0x8]
1003c961 8b480c mov ecx,[eax+0xc]
1003c964 8b55f0 mov edx,[ebp-0x10]
1003c967 8b0491 mov eax,[ecx+edx*4]
1003c96a 8945fc mov [ebp-0x4],eax
1003c96d 837dfc00 cmp dword ptr [ebp-0x4],0x0
1003c971 0f84eb000000 je msvcrt_ruby18!st_foreach+0x132
(1003ca62)

eax=00000002 ebx=07962001 ecx=00000001 edx=00000000 esi=023feb3c
edi=023fe8d4
eip=1003c94e esp=023fd4f0 ebp=023fd508 iopl=0 nv up ei pl nz na
po nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000
efl=00010206

There is a very strong correlation between this fault and using an
FXDriveBox in fxRuby.