On 10/30/07, Maarten <[EMAIL PROTECTED]> wrote:
>
> Accidentally I spent most of today tracing "stack level to deep"
> errors in my application. The log showed that the overflow occurred
> when workitem#dup was called by the engine. Finally I discovered the
> cause of the problem.
>
> The result of the block used by a BlockParticipant is stored as
> attribute in the workitem. If the result of the last expression in the
> block is a workitem, then a workitem is stored in a workitem. Since
> the workitem#dup (via OpenWFE.fulldup) makes use of recursion, this
> results in a stack overflow.
>
> Maybe openwferu should protect itself against users which return a
> workitem from a block. To reproduce the problem, one only needs to use
> the following participant:
>
> engine.register_participant("crash_me") do |workitem|
> puts "one last message..."
> workitem
> end
Well done !
http://rubyforge.org/tracker/index.php?func=detail&aid=15172&group_id=2609&atid=10023
Thank you very much,
--
John Mettraux -///- http://jmettraux.openwfe.org
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"OpenWFEru users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/openwferu-users?hl=en
-~----------~----~----~----~------~----~------~--~---