[#30995] [Bug #3523] win32 exception c0000029 on exit using fibers — B Kelly <redmine@...>

Bug #3523: win32 exception c0000029 on exit using fibers

19 messages 2010/07/02

[#31100] [rubysoc] Queue C-extension patch to come — Ricardo Panaggio <panaggio.ricardo@...>

Hello,

26 messages 2010/07/07
[#31148] Re: [rubysoc] Queue C-extension patch to come — Roger Pack <rogerdpack2@...> 2010/07/09

> As this it my first patch to Ruby, I don't know where to begin with.

[#31320] Re: [rubysoc] Queue C-extension patch to come — Ricardo Panaggio <panaggio.ricardo@...> 2010/07/16

Sorry for leaving this thread for so long. I've tried to finish the

[#31322] Re: [rubysoc] Queue C-extension patch to come — Aaron Patterson <aaron@...> 2010/07/16

On Sat, Jul 17, 2010 at 06:55:35AM +0900, Ricardo Panaggio wrote:

[#31324] Re: [rubysoc] Queue C-extension patch to come — Caleb Clausen <vikkous@...> 2010/07/17

NB: I am Ricardo's mentor for this project.

[#31331] Re: [rubysoc] Queue C-extension patch to come — Benoit Daloze <eregontp@...> 2010/07/17

On 17 July 2010 06:00, Caleb Clausen <vikkous@gmail.com> wrote:

[#31332] Re: [rubysoc] Queue C-extension patch to come — Caleb Clausen <vikkous@...> 2010/07/17

On 7/17/10, Benoit Daloze <eregontp@gmail.com> wrote:

[#31138] Why is there no standard way of creating a String from a char *? — Nikolai Weibull <now@...>

Hi!

14 messages 2010/07/08
[#31146] Re: Why is there no standard way of creating a String from a char *? — Urabe Shyouhei <shyouhei@...> 2010/07/09

(2010/07/09 7:04), Nikolai Weibull wrote:

[#31149] Re: Why is there no standard way of creating a String from a char *? — Nikolai Weibull <now@...> 2010/07/09

On Fri, Jul 9, 2010 at 06:20, Urabe Shyouhei <shyouhei@ruby-lang.org> wrote:

[#31150] Re: Why is there no standard way of creating a String from a char *? — Urabe Shyouhei <shyouhei@...> 2010/07/09

(2010/07/09 18:28), Nikolai Weibull wrote:

[#31217] [Bug #3562] regression in respond_to? — Aaron Patterson <redmine@...>

Bug #3562: regression in respond_to?

14 messages 2010/07/12

[#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

14 messages 2010/07/13

[#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

17 messages 2010/07/21

[#31459] [Bug #3607] [trunk/r28731] Gem.path has disappeared? — Ollivier Robert <redmine@...>

Bug #3607: [trunk/r28731] Gem.path has disappeared?

22 messages 2010/07/23

[#31519] [Bug #3622] Net::HTTP does not wait to send request body with Expect: 100-continue — Eric Hodel <redmine@...>

Bug #3622: Net::HTTP does not wait to send request body with Expect: 100-continue

9 messages 2010/07/28

[ruby-core:31220] [Bug #3523] win32 exception c0000029 on exit using fibers

From: B Kelly <redmine@...>
Date: 2010-07-12 19:09:33 UTC
List: ruby-core #31220
Issue #3523 has been updated by B Kelly.


Hi,

Yusuke Endoh wrote:
> 
> What's going on?
> 
> Indeed, this looks like core's bug.  But we can't do anything unless
> there is reproducible code.  Meanwhile, I set the priority to Low.
> If you could create code that you can disclose, please reply to this
> thread.

Sorry for the delay.

Last week I made several attempts to create smaller sample 
programs which reproduced the error.  To my surprise, the
smaller programs fail to produce the error, but the larger
program still gets the error EVERY time.

Here is what I have learned so far:

1. The 0xc0000029 exception apparently means:
"An invalid unwind target was encountered during an unwind
operation."

2. I suspect the error may have something to do with having
a C++ stack frame when switching fibers.  I am using 
EventMachine, and changing fibers on the event callback.

Example:

  EM-fiber: callback into ruby (with C++ stack frame)
    transfer to Dispatch-fiber
    transfer back to EM-fiber
  return

But again, I can't reproduce the error with a program
as simple as the above.

3. I have back-ported the "cont.c" from trunk to 1.9.2, and
the 0xc0000029 problem disappears.

4. Apparently cont.c from trunk uses FIBER_USE_NATIVE, which
was briefly in 1.9.2, but was reverted.

That is all I know, so far.

By the way, I was interested to learn the reason why
FIBER_USE_NATIVE was reverted in 1.9.2.  I think the
following discussion may contain the answer, but, 
Google Translate was not very helpful:

http://redmine.ruby-lang.org/issues/show/3295

If possible, could anyone who understands Japanese
please summarize the reason for the revert in 
English?


Meanwhile, I will make another attempt to reduce
the amount of code needed to reproduce the problem,
in the next couple days.


Thanks,

Bill



----------------------------------------
http://redmine.ruby-lang.org/issues/show/3523

----------------------------------------
http://redmine.ruby-lang.org

In This Thread