Ruby Issue Tracking System: Issues
https://bugs.ruby-lang.org/
https://bugs.ruby-lang.org/favicon.ico?1711330511
2011-07-03T19:51:08Z
Ruby Issue Tracking System
Redmine
Ruby master - Feature #4967 (Rejected): dmalloc reported memory leaks in ruby
https://bugs.ruby-lang.org/issues/4967
2011-07-03T19:51:08Z
jojelino (jojelino _)
<p>hi i've modified dmalloc,pthreads-win32 to make it work win32. and dmalloc_t passed so far.<br>
and then, ruby is chosen to check memory leaks.<br>
for dmalloc to work with ruby, some part of ruby has been patched.<br>
after successful build of ruby trunk, i ran 'make test'.<br>
here's dmalloc reported.</p>
Ruby master - Bug #4566 (Third Party's Issue): followup of [ruby-core:32747]
https://bugs.ruby-lang.org/issues/4566
2011-04-10T13:41:32Z
jojelino (jojelino _)
<p>=begin<br>
<a href="/issues/3930">[ruby-core:32747]</a></p>
<a name="Index-vm_execc"></a>
<h1 >Index: vm_exec.c<a href="#Index-vm_execc" class="wiki-anchor">¶</a></h1>
<p>--- vm_exec.c (revision 31234)<br>
+++ vm_exec.c (working copy)<br>
@@ -11,7 +11,7 @@</p>
<p>#include <math.h></p>
<p>-#if VMDEBUG > 0<br>
+#if (VMDEBUG > 0) | ((<strong>GNUC</strong> >= 4) && (<strong>GNUC_MINOR</strong> >= 6) && (<strong>GNUC_PATCHLEVEL</strong> >= 0))<br>
#define DECL_SC_REG(type, r, reg) register type reg_##r</p>
<p>#elif <strong>GNUC</strong> && <strong>x86_64</strong> && !<strong>clang</strong></p>
<p>please apply this, it resolves segmentation fault in gcc > 4.6<br>
specifying register name explicitly fails. although it worked in previous version.<br>
if you continue using explicit register name, you gotta find workaround about it ;)<br>
=end</p>
Ruby master - Bug #3559 (Rejected): sigsegv in gc.c:1051
https://bugs.ruby-lang.org/issues/3559
2010-07-12T07:49:25Z
jojelino (jojelino _)
<p>=begin<br>
it occasionally crashes, but i dun know where to start.<br>
it occured when freelist dereferences invalid freelist->as.free.next address.<br>
because the process accidentally terminated during collecting stack dump, you 'll need to wait for more crashes....<br>
30 rb_newobj_from_heap() \tmp\ruby\gc.c:1051 0x62d5368a<br>
29 rb_newobj() \tmp\ruby\gc.c:1128 0x62d5368a<br>
28 str_alloc() \tmp\ruby\string.c:378 0x62dfea9d<br>
27 rb_str_resurrect() \tmp\ruby\string.c:901 0x62dfea9d<br>
26 vm_exec_core() \tmp\ruby\insns.def:379 0x62e47887<br>
25 vm_exec() \tmp\ruby\vm.c:1145 0x62e4e16f<br>
24 invoke_block_from_c() \tmp\ruby\vm.c:557 0x62e4ed38<br>
23 vm_yield() \tmp\ruby\vm.c:587 0x62e5427e<br>
22 rb_yield_0() \tmp\ruby\vm_eval.c:730 0x62e5427e<br>
21 loop_i() \tmp\ruby\vm_eval.c:788 0x62e5427e<br>
20 rb_rescue2() \tmp\ruby\eval.c:646 0x62d3f61f<br>
19 rb_f_loop() \tmp\ruby\vm_eval.c:816 0x62e443e4<br>
18 vm_call_cfunc() \tmp\ruby\vm_insnhelper.c:401 0x62e53981<br>
17 vm_call_method() \tmp\ruby\vm_insnhelper.c:523 0x62e53981<br>
16 vm_exec_core() \tmp\ruby\insns.def:1006 0x62e49292<br>
15 vm_exec() \tmp\ruby\vm.c:1145 0x62e4e16f<br>
14 vm_call0() \tmp\ruby\vm_eval.c:66 0x62e4f518<br>
13 rb_obj_call_init() \tmp\ruby\eval.c:860 0x62d3fae2<br>
12 rb_class_new_instance() \tmp\ruby\object.c:1547 0x62d8abfa<br>
11 call_cfunc() \tmp\ruby\vm_insnhelper.c:314 0x62e43d8d<br>
10 vm_call_cfunc() \tmp\ruby\vm_insnhelper.c:401 0x62e53981<br>
9 vm_call_method() \tmp\ruby\vm_insnhelper.c:523 0x62e53981<br>
8 vm_exec_core() \tmp\ruby\insns.def:1006 0x62e49292<br>
7 vm_exec() \tmp\ruby\vm.c:1145 0x62e4e16f<br>
6 invoke_block_from_c() \tmp\ruby\vm.c:557 0x62e4ed38<br>
5 rb_vm_invoke_proc() \tmp\ruby\vm.c:603 0x62e4f1a0<br>
4 thread_start_func_2() \tmp\ruby\thread.c:441 0x62e5c055<br>
3 thread_start_func_1() \tmp\ruby\thread_win32.c:479 0x62e5c190<br>
=end</p>
Ruby master - Feature #3399 (Closed): UNC path is not handled properly
https://bugs.ruby-lang.org/issues/3399
2010-06-07T02:18:25Z
jojelino (jojelino _)
<p>=begin<br>
(gdb)<br>
0x62d4a4f1 2835 BUFINIT();<br>
(gdb) print s<br>
$5 = 0xc7dfa0 "//?/D:/ruby2/lib/ruby/site_ruby/1.9.1"<br>
this is from rbconfig.rb<br>
CONFIG = {}<br>
CONFIG["DESTDIR"] = DESTDIR<br>
CONFIG["MAJOR"] = "1"<br>
CONFIG["MINOR"] = "9"<br>
CONFIG["TEENY"] = "1"<br>
CONFIG["PATCHLEVEL"] = "-1"<br>
CONFIG["INSTALL"] = '/usr/bin/ginstall -c'<br>
CONFIG["EXEEXT"] = ".exe"<br>
CONFIG["prefix"] = (TOPDIR || DESTDIR + "d:/ruby2")<br>
CONFIG["ruby_install_name"] = "ruby"<br>
CONFIG["RUBY_INSTALL_NAME"] = "ruby"<br>
CONFIG["RUBY_SO_NAME"] = "msvcrt-ruby191"<br>
CONFIG["PACKAGE"] = "ruby"<br>
CONFIG["BUILTIN_TRANSSRCS"] = " newline.c"<br>
CONFIG["MANTYPE"] = "doc"<br>
CONFIG["NROFF"] = "/usr/bin/nroff"<br>
CONFIG["vendorhdrdir"] = "$(rubyhdrdir)/vendor_ruby"<br>
CONFIG["sitehdrdir"] = "$(rubyhdrdir)/site_ruby"<br>
CONFIG["rubyhdrdir"] = "$(includedir)/$(RUBY_BASE_NAME)-$(ruby_version)"<br>
CONFIG["UNIVERSAL_INTS"] = ""<br>
CONFIG["UNIVERSAL_ARCHNAMES"] = ""<br>
CONFIG["configure_args"] = " 'optflags=-mno-cygwin -O4' '--enable-load-relative' '--target=i686-pc-mingw32' '--prefix=/usr/mingw' '--disable-install-doc' 'target_alias=i686-pc-mingw32'"<br>
CONFIG["vendordir"] = "$(rubylibprefix)/vendor_ruby"<br>
CONFIG["sitedir"] = "$(rubylibprefix)/site_ruby"<br>
CONFIG["ruby_version"] = "1.9.1"<br>
CONFIG["sitearch"] = "i386-msvcrt"<br>
CONFIG["arch"] = "i386-mingw32"<br>
CONFIG["RI_BASE_NAME"] = "ri"<br>
CONFIG["ridir"] = "$(datarootdir)/$(RI_BASE_NAME)"<br>
CONFIG["rubylibprefix"] = "$(libdir)/$(RUBY_BASE_NAME)"<br>
CONFIG["MAKEFILES"] = "Makefile GNUmakefile"<br>
CONFIG["THREAD_MODEL"] = "win32"<br>
CONFIG["EXPORT_PREFIX"] = " "<br>
CONFIG["COMMON_HEADERS"] = "winsock2.h windows.h"<br>
CONFIG["COMMON_MACROS"] = ""<br>
CONFIG["COMMON_LIBS"] = "m"<br>
CONFIG["MAINLIBS"] = ""<br>
CONFIG["ENABLE_SHARED"] = "yes"<br>
CONFIG["DLDLIBS"] = ""<br>
CONFIG["SOLIBS"] = "$(LIBS)"<br>
CONFIG["LIBRUBYARG_SHARED"] = "-l$(RUBY_SO_NAME)"<br>
CONFIG["LIBRUBYARG_STATIC"] = "-l$(RUBY_SO_NAME)-static"<br>
CONFIG["LIBRUBYARG"] = "$(LIBRUBYARG_SHARED)"<br>
CONFIG["LIBRUBY"] = "lib$(RUBY_SO_NAME).dll.a"<br>
CONFIG["LIBRUBY_ALIASES"] = ""<br>
CONFIG["LIBRUBY_SO"] = "$(RUBY_SO_NAME).dll"<br>
CONFIG["LIBRUBY_A"] = "lib$(RUBY_SO_NAME)-static.a"<br>
CONFIG["RUBYW_INSTALL_NAME"] = "$(RUBYW_BASE_NAME)"<br>
CONFIG["rubyw_install_name"] = "$(RUBYW_INSTALL_NAME)"<br>
CONFIG["LIBRUBY_DLDFLAGS"] = " -mno-cygwin -Wl,--enable-auto-image-base,--enable-auto-import -Wl,--out-implib=$(LIBRUBY) $(RUBYDEF)"<br>
CONFIG["LIBRUBY_LDSHARED"] = "$(CC) -mno-cygwin -shared $(if $(filter-out -g -g0,$(debugflags)),,-g3)"<br>
CONFIG["warnflags"] = "-Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wno-long-long"<br>
CONFIG["debugflags"] = "-g"<br>
CONFIG["optflags"] = "-mno-cygwin -O4"<br>
CONFIG["cxxflags"] = " $(optflags) $(debugflags) $(warnflags)"<br>
CONFIG["cflags"] = " $(optflags) $(debugflags) $(warnflags)"<br>
CONFIG["cppflags"] = ""<br>
CONFIG["INSTALLDOC"] = "nodoc"<br>
CONFIG["RDOCTARGET"] = "nodoc"<br>
CONFIG["EXECUTABLE_EXTS"] = ".exe .com .cmd .bat"<br>
CONFIG["ARCHFILE"] = ""<br>
CONFIG["EXTOUT"] = ".ext"<br>
CONFIG["PREP"] = "miniruby$(EXEEXT)"<br>
CONFIG["TEST_RUNNABLE"] = "yes"<br>
CONFIG["setup"] = "Setup"<br>
CONFIG["EXTSTATIC"] = ""<br>
CONFIG["STRIP"] = "strip"<br>
CONFIG["TRY_LINK"] = ""<br>
CONFIG["LIBPATHENV"] = ""<br>
CONFIG["RPATHFLAG"] = ""<br>
CONFIG["LIBPATHFLAG"] = " -L%s"<br>
CONFIG["LINK_SO"] = ""<br>
CONFIG["LIBEXT"] = "a"<br>
CONFIG["DLEXT2"] = ""<br>
CONFIG["DLEXT"] = "so"<br>
CONFIG["LDSHAREDXX"] = "$(CXX) -mno-cygwin -shared $(if $(filter-out -g -g0,$(debugflags)),,-g3)"<br>
CONFIG["LDSHARED"] = "$(CC) -mno-cygwin -shared $(if $(filter-out -g -g0,$(debugflags)),,-g3)"<br>
CONFIG["CCDLFLAGS"] = " -mno-cygwin "<br>
CONFIG["STATIC"] = ""<br>
CONFIG["ARCH_FLAG"] = ""<br>
CONFIG["DLDFLAGS"] = " -mno-cygwin -Wl,--enable-auto-image-base,--enable-auto-import $(DEFFILE)"<br>
CONFIG["ALLOCA"] = ""<br>
CONFIG["CHDIR"] = "cd -P"<br>
CONFIG["RMALL"] = "rm -fr"<br>
CONFIG["RMDIRS"] = "rmdir -p"<br>
CONFIG["CP"] = "cp"<br>
CONFIG["RM"] = "rm -f"<br>
CONFIG["CAPITARGET"] = "nodoc"<br>
CONFIG["DOXYGEN"] = "doxygen"<br>
CONFIG["DOT"] = ""<br>
CONFIG["MAKEDIRS"] = "/usr/bin/mkdir -p"<br>
CONFIG["MKDIR_P"] = "/usr/bin/mkdir -p"<br>
CONFIG["INSTALL_DATA"] = "$(INSTALL) -m 644"<br>
CONFIG["INSTALL_SCRIPT"] = "$(INSTALL)"<br>
CONFIG["INSTALL_PROGRAM"] = "$(INSTALL)"<br>
CONFIG["SET_MAKE"] = ""<br>
CONFIG["LN_S"] = "ln -s"<br>
CONFIG["DLLWRAP"] = "dllwrap"<br>
CONFIG["WINDRES"] = "windres"<br>
CONFIG["NM"] = "nm"<br>
CONFIG["OBJCOPY"] = ":"<br>
CONFIG["OBJDUMP"] = "objdump"<br>
CONFIG["ASFLAGS"] = ""<br>
CONFIG["AS"] = "as"<br>
CONFIG["AR"] = "ar"<br>
CONFIG["RANLIB"] = "ranlib"<br>
CONFIG["try_header"] = ""<br>
CONFIG["COUTFLAG"] = "-o "<br>
CONFIG["OUTFLAG"] = "-o "<br>
CONFIG["CPPOUTFILE"] = "-o conftest.i"<br>
CONFIG["GNU_LD"] = "yes"<br>
CONFIG["GCC"] = "yes"<br>
CONFIG["EGREP"] = "/usr/bin/grep -E"<br>
CONFIG["GREP"] = "/usr/bin/grep"<br>
CONFIG["CPP"] = "$(CC) -E"<br>
CONFIG["CXXFLAGS"] = "$(cxxflags)"<br>
CONFIG["CXX"] = "g++"<br>
CONFIG["OBJEXT"] = "o"<br>
CONFIG["CPPFLAGS"] = " $(DEFS) $(cppflags)"<br>
CONFIG["LDFLAGS"] = "-L. -mno-cygwin "<br>
CONFIG["CFLAGS"] = "$(cflags)"<br>
CONFIG["CC"] = "gcc"<br>
CONFIG["target_os"] = "mingw32"<br>
CONFIG["target_vendor"] = "pc"<br>
CONFIG["target_cpu"] = "i386"<br>
CONFIG["target"] = "i386-pc-mingw32"<br>
CONFIG["host_os"] = "cygwin"<br>
CONFIG["host_vendor"] = "pc"<br>
CONFIG["host_cpu"] = "i686"<br>
CONFIG["host"] = "i686-pc-cygwin"<br>
CONFIG["build_os"] = "cygwin"<br>
CONFIG["build_vendor"] = "pc"<br>
CONFIG["build_cpu"] = "i686"<br>
CONFIG["build"] = "i686-pc-cygwin"<br>
CONFIG["RUBYW_BASE_NAME"] = "rubyw"<br>
CONFIG["RUBY_BASE_NAME"] = "ruby"<br>
CONFIG["RUBY_RELEASE_DATE"] = "2010-06-05"<br>
CONFIG["RUBY_PROGRAM_VERSION"] = "1.9.3"<br>
CONFIG["BASERUBY"] = "ruby"<br>
CONFIG["target_alias"] = "i386-pc-mingw32"<br>
CONFIG["host_alias"] = ""<br>
CONFIG["build_alias"] = ""<br>
CONFIG["LIBS"] = " -mno-cygwin -lshell32 -lws2_32 -limagehlp "<br>
CONFIG["ECHO_T"] = ""<br>
CONFIG["ECHO_N"] = "-n"<br>
CONFIG["ECHO_C"] = ""<br>
CONFIG["DEFS"] = ""<br>
CONFIG["mandir"] = "$(datarootdir)/man"<br>
CONFIG["localedir"] = "$(datarootdir)/locale"<br>
CONFIG["libdir"] = "$(exec_prefix)/lib"<br>
CONFIG["psdir"] = "$(docdir)"<br>
CONFIG["pdfdir"] = "$(docdir)"<br>
CONFIG["dvidir"] = "$(docdir)"<br>
CONFIG["htmldir"] = "$(docdir)"<br>
CONFIG["infodir"] = "$(datarootdir)/info"<br>
CONFIG["docdir"] = "$(datarootdir)/doc/$(PACKAGE)"<br>
CONFIG["oldincludedir"] = "/usr/include"<br>
CONFIG["includedir"] = "$(prefix)/include"<br>
CONFIG["localstatedir"] = "$(prefix)/var"<br>
CONFIG["sharedstatedir"] = "$(prefix)/com"<br>
CONFIG["sysconfdir"] = "$(prefix)/etc"<br>
CONFIG["datadir"] = "$(datarootdir)"<br>
CONFIG["datarootdir"] = "$(prefix)/share"<br>
CONFIG["libexecdir"] = "$(exec_prefix)/libexec"<br>
CONFIG["sbindir"] = "$(exec_prefix)/sbin"<br>
CONFIG["bindir"] = "$(exec_prefix)/bin"<br>
CONFIG["exec_prefix"] = "$(prefix)"<br>
CONFIG["PACKAGE_URL"] = ""<br>
CONFIG["PACKAGE_BUGREPORT"] = ""<br>
CONFIG["PACKAGE_STRING"] = ""<br>
CONFIG["PACKAGE_VERSION"] = ""<br>
CONFIG["PACKAGE_TARNAME"] = ""<br>
CONFIG["PACKAGE_NAME"] = ""<br>
CONFIG["PATH_SEPARATOR"] = ":"<br>
CONFIG["SHELL"] = "/bin/sh"<br>
CONFIG["rubylibdir"] = "$(rubylibprefix)/$(ruby_version)"<br>
CONFIG["archdir"] = "$(rubylibdir)/$(arch)"<br>
CONFIG["sitelibdir"] = "$(sitedir)/$(ruby_version)"<br>
CONFIG["sitearchdir"] = "$(sitelibdir)/$(sitearch)"<br>
CONFIG["vendorlibdir"] = "$(vendordir)/$(ruby_version)"<br>
CONFIG["vendorarchdir"] = "$(vendorlibdir)/$(sitearch)"<br>
CONFIG["topdir"] = File.dirname(<strong>FILE</strong>)</p>
<p>i use gdb(cygwin) to debug ruby, cygwin thinks unc path \?\ is appended to debugee path. but this could have been eliminated or leaved as it is. i suspeced that ruby thinks it as regular path and substitutes \ to /. the result is total disaster. it is clear that every corresponding native win32 api fails because there is no //?/ unc path.<br>
(gdb)<br>
0x62d4a4f1 2835 BUFINIT();<br>
(gdb) print s<br>
$5 = 0xc7dfa0 "//?/D:/ruby2/lib/ruby/site_ruby/1.9.1"<br>
3072 HANDLE h = FindFirstFile(skipprefix(b), &wfd);<br>
1: $eax = 0x0<br>
(gdb) print b<br>
$5 = 0xc7ec78 "//?/D:/ruby2/lib/ruby/site_ruby/1.9.1"<br>
=end</p>