rainmanwy / robotframework-SikuliLibrary

Sikuli Robot Framework Library provide keywords for Robot Framework to test UI through Sikuli.
Apache License 2.0
144 stars 61 forks source link

FAIL : unknown exception DEBUG : java.lang.Exception: unknown exception #132

Open candicenulud opened 4 years ago

candicenulud commented 4 years ago

image I am having an issue when running my robot script. It is having an error on SikuliLibrary.

java.lang.Exception: unknown exception at org.opencv.imgproc.Imgproc.matchTemplate_1(Native Method) at org.opencv.imgproc.Imgproc.matchTemplate(Imgproc.java:2616) at org.sikuli.script.Finder$Finder2.doFindMatch(Finder.java:733) at org.sikuli.script.Finder$Finder2.doFindImage(Finder.java:704) at org.sikuli.script.Finder$Finder2.doFind(Finder.java:622) at org.sikuli.script.Finder$Finder2.find(Finder.java:582) at org.sikuli.script.Finder.find(Finder.java:195) at org.sikuli.script.Region.runFinder(Region.java:2797) at org.sikuli.script.Region.doFind(Region.java:2751) at org.sikuli.script.Region.access$200(Region.java:28) at org.sikuli.script.Region$RepeatableFind.run(Region.java:2983) at org.sikuli.script.Region$Repeatable.repeat(Region.java:2926) at org.sikuli.script.Region.wait(Region.java:2196) at com.github.rainmanwy.robotframework.sikulilib.keywords.ScreenKeywords.wait(ScreenKeywords.java:304) at com.github.rainmanwy.robotframework.sikulilib.keywords.ScreenKeywords.waitUntilScreenContain(ScreenKeywords.java:329) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.robotframework.javalib.reflection.KeywordInvoker.invoke(KeywordInvoker.java:50) at org.robotframework.javalib.beans.annotation.AnnotationKeywordExtractor$1.execute(AnnotationKeywordExtractor.java:62) at org.robotframework.javalib.library.KeywordFactoryBasedLibrary.runKeyword(KeywordFactoryBasedLibrary.java:37) at org.robotframework.javalib.library.AnnotationLibrary.runKeyword(AnnotationLibrary.java:81) at com.github.rainmanwy.robotframework.sikulilib.SikuliLibrary.runKeyword(SikuliLibrary.java:40) at com.github.rainmanwy.robotframework.sikulilib.SikuliLibrary.runKeyword(SikuliLibrary.java:46) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.robotframework.remoteserver.library.DynamicApiRemoteLibrary.runKeyword(DynamicApiRemoteLibrary.java:65) at org.robotframework.remoteserver.servlet.ServerMethods.run_keyword(ServerMethods.java:90) at org.robotframework.remoteserver.servlet.ServerMethods.run_keyword(ServerMethods.java:154) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.invoke(ReflectiveXmlRpcHandler.java:115) at org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.execute(ReflectiveXmlRpcHandler.java:106) at org.apache.xmlrpc.server.XmlRpcServerWorker.execute(XmlRpcServerWorker.java:46) at org.apache.xmlrpc.server.XmlRpcServer.execute(XmlRpcServer.java:86) at org.apache.xmlrpc.server.XmlRpcStreamServer.execute(XmlRpcStreamServer.java:200) at org.apache.xmlrpc.webserver.XmlRpcServletServer.execute(XmlRpcServletServer.java:112) at org.apache.xmlrpc.webserver.XmlRpcServlet.doPost(XmlRpcServlet.java:196) at org.robotframework.remoteserver.servlet.RemoteServerServlet.doPost(RemoteServerServlet.java:122) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at org.robotframework.remoteserver.servlet.RemoteServerServlet.service(RemoteServerServlet.java:102) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:565) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:479) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1031) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:406) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:965) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:111) at org.eclipse.jetty.server.Server.handle(Server.java:348) at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:452) at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:894) at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:948) at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:851) at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:77) at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:606) at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:46) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:603) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:538) at java.lang.Thread.run(Unknown Source)

Environment Versions Python 3.7.7 SikuliLibrary 1.0.8 (also tried latest version) JDK/JRE 1.8.0_261

rainmanwy commented 4 years ago

How about the OS? And you may have a try to start sikuli java process manually , and could attach robot log file here?

candicenulud commented 4 years ago

This was working for how many weeks until there is a JRE update, after that the script was not already working. I tried to reinstall JRE, JDK, Python, and Robot framework libraries but the issue is still encountered. I've attached the robot log, the manual start of sikuli and the OS. image image image image

rainmanwy commented 4 years ago

You may have a try to remove Sikuli temp directory, it may in "C:\Users\\AppData\Roaming\Sikulix"

candicenulud commented 4 years ago

Error is still encountered after deleting Sikuli temp directory and restarting machine.

candicenulud commented 4 years ago

This error has been fixed, I removed the Sikulix 1.1.3 that I installed manually, then my script started working again. Thank you! :)

candicenulud commented 4 years ago

I thought the error has been fixed, but I am still encountering it after running twice. I removed all the temporary data of Sikuli but it still encountered. I also tried to reinstall the library but nothing happened

RaiMan commented 4 years ago

RaiMan from SikuliX Looks like a problem with OpenCV matchTemplate(). What version of SikuliX is used internally in your current setup? Any changes in your monitor setup?

candicenulud commented 4 years ago

The version of Sikulix that I installed is 1.1.3 and the SikuliLibrary is 1.0.8. There are no changes in my monitor setup, what I've noticed is that when the machine had a JRE update, my robot script encountered the issue.

candicenulud commented 4 years ago

I reinstalled Sikulix 1.1.3, but still the issue is encountered. I also tried running SikuliLibrary to new mode like this Settings Library SikuliLibrary mode=NEW Suite Setup Start Sikuli Process Suite Teardown Stop Remote Server

I also tried to uninstall Sikiulix 1.1.3 and then installed Sikulix 2.0.1, but same issue

image

candicenulud commented 4 years ago

I provisioned a new VM, and installed all the necessary tools but still issue is encountered. I also tried to install SikuliLibrary 2.0.0 and Sikulix 2.0.4 but still error. I also tried it in SikulixIDE and same error.

I also noticed this line when running on a debug

RunTime:libsExport: folder has wrong content: C:\Users\user\AppData\Roaming\Sikulix\SikulixLibs ( - )

image image

RaiMan commented 4 years ago

Apparently it is a problem with the OpenCV native code, which should use the exported openCV_java342.dll.

Please make sure, that nothing else in your environment might point to other OpenCV stuff at runtime of IDE. SikuliX at runtime tries to prepend the SikuliX library path to Windows PATH.

You might run from command line: java -jar <path-to>/sikulixide-2.0.4.jar -v -c

and send the complete log output to my mail (see https://github.com/RaiMan).

BTW: IMHO it is not necessary to hide the username in a log output coming from a VM ???

candicenulud commented 4 years ago

I think there is nothing else might point to other OpenCV stuff since its a newly provisioned VM and I just installed tools that will be used to run my script. I already sent the complete log output to your mail. Thanks!

candicenulud commented 4 years ago

Oh sorry, the email address that I input was incorrect. Sent it again with the correct address

RaiMan commented 4 years ago

I can only test on Windows 10, which you are not using (Windows 7?), but I am sure, that the exception is caused by the OpenCV DLL (function matchTemplate). I am sorry, but in your current setup I do not have a solution for you.

candicenulud commented 4 years ago

I'm using Windows server 2012 r2, windows 8. Actually this was working fine for about how many weeks, it stopped working when there was an update of jre. But for the new provisioned VM, jre and jdk was installed fresh and it's v261.

On Fri, 4 Sep 2020, 11:22 pm Raimund Hocke, notifications@github.com wrote:

I can only test on Windows 10, which you are not using (Windows 7?), but I am sure, that the exception is caused by the OpenCV DLL (function matchTemplate). I am sorry, but in your current setup I do not have a solution for you.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/rainmanwy/robotframework-SikuliLibrary/issues/132#issuecomment-687216327, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHQJPHZYN7VARXEHDIXY4Y3SEEAZ3ANCNFSM4QLZCBJA .

RaiMan commented 4 years ago

Finally I do not have another idea, than to go back to the running Java version or try with openJDK 11.

candicenulud commented 4 years ago

I tried openJDK 11, but still issue is encountered. I also tried JDK 11 itself, it ran successfully for a while but after how many hours the error was encountered again, and can't be fixed even thought I tried to reinstall the JDK that worked.