[#30995] [Bug #3523] win32 exception c0000029 on exit using fibers — B Kelly <redmine@...>
Bug #3523: win32 exception c0000029 on exit using fibers
Issue #3523 has been updated by B Kelly.
Issue #3523 has been updated by Usaku NAKAMURA.
Hello,
Hi,
Bill Kelly wrote:
Hi,
Hello,
[#31047] [bug:trunk] psych tests sometimes fail — Tanaka Akira <akr@...>
psych tests sometimes fail.
Issue #3538 has been updated by Aaron Patterson.
[#31053] [Bug #3540] IO.copy_stream fails to detect client disconnect w/sendfile — Eric Wong <redmine@...>
Bug #3540: IO.copy_stream fails to detect client disconnect w/sendfile
2010/7/6 Eric Wong <redmine@ruby-lang.org>:
Tanaka Akira <akr@fsij.org> wrote:
[#31072] Why is the inherited callback invoked at different times for static vs. dynamic subclasses? — Jacob Lauemøller <jacob.lauemoeller@...>
Hi all,
Hi Jacob,
Masaya TARUI wrote:
Hi,
[#31100] [rubysoc] Queue C-extension patch to come — Ricardo Panaggio <panaggio.ricardo@...>
Hello,
On Wed, Jul 07, 2010 at 10:55:58AM +0900, Ricardo Panaggio wrote:
> As this it my first patch to Ruby, I don't know where to begin with.
Sorry for leaving this thread for so long. I've tried to finish the
On Sat, Jul 17, 2010 at 06:55:35AM +0900, Ricardo Panaggio wrote:
NB: I am Ricardo's mentor for this project.
On 17 July 2010 06:00, Caleb Clausen <vikkous@gmail.com> wrote:
On 7/17/10, Benoit Daloze <eregontp@gmail.com> wrote:
I've done this using the existing test of Queue, modifying it a little
Hi,
Hi,
On Sun, Jul 18, 2010 at 09:43:07PM +0900, Benoit Daloze wrote:
Nobu,
Hi,
[#31117] [Bug #3549] Segfault when using god — David Kelso <redmine@...>
Bug #3549: Segfault when using god
[#31138] Why is there no standard way of creating a String from a char *? — Nikolai Weibull <now@...>
Hi!
(2010/07/09 7:04), Nikolai Weibull wrote:
On Fri, Jul 9, 2010 at 06:20, Urabe Shyouhei <shyouhei@ruby-lang.org> wrote:
(2010/07/09 18:28), Nikolai Weibull wrote:
On Fri, Jul 9, 2010 at 11:58, Urabe Shyouhei <shyouhei@ruby-lang.org> wrote:
(2010/07/09 19:22), Nikolai Weibull wrote:
On Fri, Jul 9, 2010 at 15:12, Urabe Shyouhei <shyouhei@ruby-lang.org> wrote:
[#31169] [Bug #3555] segvs since r28570 — Aaron Patterson <redmine@...>
Bug #3555: segvs since r28570
[#31177] [Bug #3556] FileUtils.mkdir_p fails trying to create C: under Windows — Luis Lavena <redmine@...>
Bug #3556: FileUtils.mkdir_p fails trying to create C: under Windows
[#31178] [Bug #3557] Marshal.dump fails for large Arrays of Arrays — Andrew Jankevics <redmine@...>
Bug #3557: Marshal.dump fails for large Arrays of Arrays
[#31186] [Bug #3558] Passing args with rb_block_call — Asher Haig <redmine@...>
Bug #3558: Passing args with rb_block_call
[#31217] [Bug #3562] regression in respond_to? — Aaron Patterson <redmine@...>
Bug #3562: regression in respond_to?
Issue #3562 has been updated by Yusuke Endoh.
[#31234] [Bug #3563] problems with exponentiation, cbrt — Kevin Olbrich <redmine@...>
Bug #3563: problems with exponentiation, cbrt
[#31238] [Bug #3564] 'gem uninstall' doesn't remove executables which were installed with --format-executable option — Kenta Murata <redmine@...>
Bug #3564: 'gem uninstall' doesn't remove executables which were installed with --format-executable option
[#31269] [Bug #3566] memory leak when spawning+joining Threads in a loop — Eric Wong <redmine@...>
Bug #3566: memory leak when spawning+joining Threads in a loop
Hi,
Yusuke ENDOH <mame@tsg.ne.jp> wrote:
Eric Wong <normalperson@yhbt.net> wrote:
Hi,
On Fri, Jul 16, 2010 at 7:42 AM, Yusuke ENDOH <mame@tsg.ne.jp> wrote:
[#31272] [Bug #3466][Open] leak when using Rails and Ruby 1.9.2 — Aaron Patterson <redmine@...>
Issue #3466 has been updated by Aaron Patterson.
[#31336] Bug? Ruby 1.9.2-rc1: instance_eval can't handle a lambda (needs a proc) — Gavin Sinclair <gsinclair@...>
I raised this on ruby-talk ( http://bit.ly/bruL6B ) and Caleb Clausen
[#31349] [Bug #3586] Using Nokogiri-1.4.2 with ruby 1.9.2dev (2010-07-06 revision 28549) and Rails3.beta4 — TJ Koblentz <redmine@...>
Bug #3586: Using Nokogiri-1.4.2 with ruby 1.9.2dev (2010-07-06 revision 28549) and Rails3.beta4
[#31352] --export-all revisited — Roger Pack <rogerdpack2@...>
Hi . Noted that in 1.9.x the "--export-all" parameter has been removed
Hi,
>> However this requires *all* authors who want their gems to compile on
[#31353] [Bug #3587] windows: unable to sleep < 0.015s — Roger Pack <redmine@...>
Bug #3587: windows: unable to sleep < 0.015s
[#31373] [Bug #3462] gem activation fails for native gems — Yusuke Endoh <redmine@...>
Issue #3462 has been updated by Yusuke Endoh.
[#31377] [Bug #3590] RubyGems is Broken — Sora Harakami <redmine@...>
Bug #3590: RubyGems is Broken
[#31385] [Feature #3591] Adding Numeric#divisor? (Have working implementation) — Nick Markwell <redmine@...>
Feature #3591: Adding Numeric#divisor? (Have working implementation)
[#31399] [Backport #3595] Theres no encoding to differentiate a stream of Binary data from an 8-Bit ASCII string — Dreamcat Four <redmine@...>
Backport #3595: Theres no encoding to differentiate a stream of Binary data from an 8-Bit ASCII string
Issue #3595 has been updated by Dreamcat Four.
[#31454] [Bug #3606] Thread.stop and puts fail to work as documented. — Heesob Park <redmine@...>
Bug #3606: Thread.stop and puts fail to work as documented.
[#31459] [Bug #3607] [trunk/r28731] Gem.path has disappeared? — Ollivier Robert <redmine@...>
Bug #3607: [trunk/r28731] Gem.path has disappeared?
Issue #3607 has been updated by Jon Forums.
There are custom changes to rubygems in trunk that are not yet in rubygems master. You can not use rubygems master or any other version of rubygems with 1.9 trunk other than the version that 1.9 trunk ships with.
[#31462] IO.new do not inherit the mode specified in IO.sysopen? — Luis Lavena <luislavena@...>
Hello,
Hi,
[#31484] [Bug #3616] IRB + readline incorrectly counts non-printing characters in prompt — Sung Pae <redmine@...>
Bug #3616: IRB + readline incorrectly counts non-printing characters in prompt
[#31485] [Bug #3617] respond_to?(:gem) is false in 1.9.2-rc2 — Suraj Kurapati <redmine@...>
Bug #3617: respond_to?(:gem) is false in 1.9.2-rc2
[#31559] non-blocking I/O constantly clearing cache in 1.9.2 — Eric Wong <normalperson@...>
Hi all,
[#31567] [Bug #3637] win32ole: Remove definition of NONAMELESSUNION in MinGW — Luis Lavena <redmine@...>
Bug #3637: win32ole: Remove definition of NONAMELESSUNION in MinGW
[ruby-core:31307] Re: [Bug #3523][Assigned] win32 exception c0000029 on exit using fibers
Hello,
> http://redmine.ruby-lang.org/issues/show/3523
Interim report:
There is a patch for ruby_1_9_2, to save and restore SEH frame.
After this patch is applied, Bill's 0xC0000029 error vanishes!
... But another error 0xC0000374 occurs.
This error means heap corruption.
I cannot confirm yet whether this error is due to ruby or EventMachine.
Index: cont.c
===================================================================
--- cont.c (revision 28653)
+++ cont.c (working copy)
@@ -39,6 +39,9 @@ typedef struct rb_context_struct {
VALUE *machine_register_stack_src;
int machine_register_stack_size;
#endif
+#if _WIN32 && (defined(_M_IX86) || defined(__i386__))
+ VALUE win32_exception_list;
+#endif
rb_thread_t saved_thread;
rb_jmpbuf_t jmpbuf;
size_t machine_stack_size;
@@ -224,6 +227,44 @@ fiber_memsize(const void *ptr)
return 0;
}
+#if _WIN32 && (defined(_M_IX86) || defined(__i386__))
+static inline VALUE
+win32_get_exception_list(void)
+{
+ VALUE p;
+# if defined _MSC_VER
+# ifdef _M_IX86
+# if _MSC_VER >= 1310
+ /* warning: unsafe assignment to fs:0 ... this is ok */
+# pragma warning(disable: 4733)
+# endif
+ __asm mov eax, fs:[0];
+ __asm mov p, eax;
+# endif
+# elif defined __GNUC__
+# ifdef __i386__
+ __asm__("movl %%fs:0,%0" : "=r"(p));
+# endif
+# endif
+ return p;
+}
+
+static inline void
+win32_set_exception_list(VALUE p)
+{
+# if defined _MSC_VER
+# ifdef _M_IX86
+ __asm mov eax, p;
+ __asm mov fs:[0], eax;
+# endif
+# elif defined __GNUC__
+# ifdef __i386__
+ __asm__("movl %0,%%fs:0" :: "r"(p));
+# endif
+# endif
+}
+#endif
+
static void
cont_save_machine_stack(rb_thread_t *th, rb_context_t *cont)
{
@@ -267,6 +308,9 @@ cont_save_machine_stack(rb_thread_t *th,
MEMCPY(cont->machine_register_stack, cont->machine_register_stack_src, VALUE, size);
#endif
+#if _WIN32 && (defined(_M_IX86) || defined(__i386__))
+ cont->win32_exception_list = win32_get_exception_list();
+#endif
sth->machine_stack_start = sth->machine_stack_end = 0;
#ifdef __ia64
@@ -403,6 +447,9 @@ cont_restore_1(rb_context_t *cont)
}
#endif
if (cont->machine_stack_src) {
+#if _WIN32 && (defined(_M_IX86) || defined(__i386__))
+ win32_set_exception_list(cont->win32_exception_list);
+#endif
FLUSH_REGISTER_WINDOWS;
MEMCPY(cont->machine_stack_src, cont->machine_stack,
VALUE, cont->machine_stack_size);
Regards,
--
U.Nakamura <usa@garbagecollect.jp>