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
-~----------~----~----~----~------~----~------~--~---

Reply via email to