Updates:
Summary: Execution crashes if listener's `message` method fails
repeatingly
Status: Accepted
Labels: Target-2.6
Comment #3 on issue 832 by pekka.klarck: Execution crashes if listener's
`message` method fails repeatingly
http://code.google.com/p/robotframework/issues/detail?id=832
I finally understood what goes wrong. Robot reports an error if calling
listeners' methods fails and this error is reported also to listeners'
`message` method. If this `message` method itself fails, the failing method
ends up called again, failing again, etc. resulting with a recursion. You
can easily reproduce this with a listener like this:
ROBOT_LISTENER_API_VERSION = 2
def message(msg):
1/0
RIDE's run plugin uses listeners to communicate with Robot that is
executing tests. This listener and RIDE use sockets for communication and
in your original case there has been some kind of a socket problem and this
has initiated the recursion.
I believe we can fix this with some kind of a flag preventing same error to
be reported multiple times.