You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Some of Robot's own acceptance and unit test sporadically fail with exception like this:
TypeError: Unable to cast object of type 'Microsoft.Scripting.Runtime.Uninitialized'
to type 'System.Exception'.
The exact place has varied, but after some investigation it turned out that the problem is related to timeouts. Timeouts didn't even need to exceed, it was enough that they were used. Interestingly actually acceptance tests for timeouts passed and these weird failures were seen elsewhere.
Apparently the root cause is that with IronPython we use a pretty hackish stoppable thread implementation to make it possible to stop keywords if a timeout occurs. I have already prototyped that it is possible to use .NET threads instead and that seems to avoid these strange failures. More testing still needed, though.
The text was updated successfully, but these errors were encountered:
Now that IronPython has its own timeout implementation, Jython was the
only one using timeoutthread module and nobody used stoppablethread it
used when not run on Jython. Moved Jython related stuff to new module
and removed not used modules.
Jython and IronPython thread usage is very similar, and it would be
pretty easy to create facades to avoid duplication. Decided to keep
them separate because that would require more code, including a new
module, and added abstraction level would make things a little more
complicated.
Some of Robot's own acceptance and unit test sporadically fail with exception like this:
The exact place has varied, but after some investigation it turned out that the problem is related to timeouts. Timeouts didn't even need to exceed, it was enough that they were used. Interestingly actually acceptance tests for timeouts passed and these weird failures were seen elsewhere.
Apparently the root cause is that with IronPython we use a pretty hackish stoppable thread implementation to make it possible to stop keywords if a timeout occurs. I have already prototyped that it is possible to use .NET threads instead and that seems to avoid these strange failures. More testing still needed, though.
The text was updated successfully, but these errors were encountered: