I need some help in collecting more information from a 32-bit Windows
JVM crash. Here are the first 60 or so lines of the resulting hs_err*
It’s calling from Ruby -> Java -> C to make some COM calls. Note the
native frames listed in the pastie… every crash has the same offset
for the racob-x86.dll and more often that not it the frame above it is
the same memory address (0xc6608a41).
Unfortunately, the code to reproduce this uses a proprietary Windows
program that I can’t distribute so getting other people to duplicate the
error is difficult/impossible. Does anyone have any suggestions on tools
or techniques I could use to narrow down the problem?
Please note that the code runs okay under MRI 1.9.2-p180. There are
threads in the Ruby code (WIN32OLE events fire on their own native
thread) so I am assuming there is some threading issue that MRI avoids
due to its GIL that JRuby cannot avoid. I have checked over my Ruby code
and verified that all events firing on other threads is serialized back
to a single “main” thread for processing.
I cannot run this code in production under MRI because it is too slow.
JRuby’s perf rocks on Windows, so I’d love to get this resolved. Thanks
in advance for any suggestions.