← Back to team overview

sikuli-driver team mailing list archive

[Bug 769924] [NEW] Scripts with catch all except: uses 100% cpu after pressing stop key

 

Public bug reported:

Using Sikuli from bzr
x64 Ubuntu 10.10

To Reproduce...
* Run the attached script, wait a second, press the stop hotkey.
* May need to do it a few times until you get the below error...
* When the error appears, the script looks like it's stopped but the CPU is at 100%

It maybe unnoticeable on your average multicore cpu, but after pressing
stop a few times, the computer starts running very slowly.

java.lang.InterruptedException: sleep interrupted
 at java.lang.Thread.sleep(Native Method)
 at java.awt.Robot.delay(Robot.java:449)
 at org.sikuli.script.SikuliRobot.delay(SikuliRobot.java:23)
 at org.sikuli.script.Region$Repeatable.repeat(Region.java:1244)
 at org.sikuli.script.Region.wait(Region.java:437)
 at org.python.proxies.sikuli.Region$Region$1.super__wait(Unknown Source)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:616)
 at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:175)
 at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:190)
 at org.python.core.PyObject.__call__(PyObject.java:432)
 at org.python.core.PyObject.__call__(PyObject.java:436)
 at sikuli.Region$py.wait$7(/opt/sikuli_src/sikuli-x/sikuli-ide/target/linux/Sikuli-IDE/sikuli-script.jar/Lib/sikuli/Region.py:95)
 at sikuli.Region$py.call_function(/opt/sikuli_src/sikuli-x/sikuli-ide/target/linux/Sikuli-IDE/sikuli-script.jar/Lib/sikuli/Region.py)
 at org.python.core.PyTableCode.call(PyTableCode.java:165)
 at org.python.core.PyBaseCode.call(PyBaseCode.java:297)
 at org.python.core.PyBaseCode.call(PyBaseCode.java:191)
 at org.python.core.PyFunction.__call__(PyFunction.java:385)
 at org.python.core.PyMethod.__call__(PyMethod.java:215)
 at org.python.core.PyMethod.instancemethod___call__(PyMethod.java:221)
 at org.python.core.PyMethod.__call__(PyMethod.java:206)
 at org.python.core.PyObject.__call__(PyObject.java:367)
 at org.python.core.PyObject._jcallexc(PyObject.java:3500)
 at org.python.proxies.sikuli.Region$Region$1.wait(Unknown Source)
 at org.sikuli.script.Region.find(Region.java:330)
 at org.python.proxies.sikuli.Region$Region$1.super__find(Unknown Source)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:616)
 at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:175)
 at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:190)
 at org.python.core.PyObject.__call__(PyObject.java:414)
 at org.python.core.PyObject.__call__(PyObject.java:418)
 at sikuli.Region$py.find$5(/opt/sikuli_src/sikuli-x/sikuli-ide/target/linux/Sikuli-IDE/sikuli-script.jar/Lib/sikuli/Region.py:60)
 at sikuli.Region$py.call_function(/opt/sikuli_src/sikuli-x/sikuli-ide/target/linux/Sikuli-IDE/sikuli-script.jar/Lib/sikuli/Region.py)
 at org.python.core.PyTableCode.call(PyTableCode.java:165)
 at org.python.core.PyBaseCode.call(PyBaseCode.java:297)
 at org.python.core.PyBaseCode.call(PyBaseCode.java:191)
 at org.python.core.PyFunction.__call__(PyFunction.java:385)
 at org.python.core.PyMethod.__call__(PyMethod.java:215)
 at org.python.core.PyMethod.instancemethod___call__(PyMethod.java:221)
 at org.python.core.PyMethod.__call__(PyMethod.java:206)
 at org.python.core.PyObject.__call__(PyObject.java:397)
 at org.python.core.PyObject.__call__(PyObject.java:401)
 at org.python.pycode._pyx152.f$0(/tmp/sikuli-tmp9057597696209918498.py:2)
 at org.python.pycode._pyx152.call_function(/tmp/sikuli-tmp9057597696209918498.py)
 at org.python.core.PyTableCode.call(PyTableCode.java:165)
 at org.python.core.PyCode.call(PyCode.java:18)
 at org.python.core.Py.runCode(Py.java:1204)
 at org.python.core.__builtin__.execfile_flags(__builtin__.java:541)
 at org.python.util.PythonInterpreter.execfile(PythonInterpreter.java:190)
 at org.sikuli.script.ScriptRunner.runPython(ScriptRunner.java:61)
 at org.sikuli.ide.SikuliIDE$ButtonRun.runPython(SikuliIDE.java:1511)
 at org.sikuli.ide.SikuliIDE$ButtonRun$1.run(SikuliIDE.java:1616) 
java.lang.InterruptedException: sleep interrupted
 at java.lang.Thread.sleep(Native Method)
 at java.awt.Robot.delay(Robot.java:449)
 at org.sikuli.script.SikuliRobot.delay(SikuliRobot.java:23)
 at org.sikuli.script.Region$Repeatable.repeat(Region.java:1244)
 at org.sikuli.script.Region.wait(Region.java:437)
 at org.python.proxies.sikuli.Region$Region$1.super__wait(Unknown Source)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:616)
 at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:175)
 at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:190)
 at org.python.core.PyObject.__call__(PyObject.java:432)
 at org.python.core.PyObject.__call__(PyObject.java:436)
 at sikuli.Region$py.wait$7(/opt/sikuli_src/sikuli-x/sikuli-ide/target/linux/Si 
kuli-IDE/sikuli-script.jar/Lib/sikuli/Region.py:95)
 at sikuli.Region$py.call_function(/opt/sikuli_src/sikuli-x/sikuli-ide/target/linux/Sikuli-IDE/sikuli-script.jar/Lib/sikuli/Region.py)
 at org.python.core.PyTableCode.call(PyTableCode.java:165)
 at org.python.core.PyBaseCode.call(PyBaseCode.java:297)
 at org.python.core.PyBaseCode.call(PyBaseCode.java:191)
 at org.python.core.PyFunction.__call__(PyFunction.java:385)
 at org.python.core.PyMethod.__call__(PyMethod.java:215)
 at org.python.core.PyMethod.instancemethod___call__(PyMethod.java:221)
 at org.python.core.PyMethod.__call__(PyMethod.java:206)
 at org.python.core.PyObject.__call__(PyObject.java:367)
 at org.python.core.PyObject._jcallexc(PyObject.java:3500)
 at org.python.proxies.sikuli.Region$Region$1.wait(Unknown Source)
 at org.sikuli.script.Region.find(Region.java:330)
 at org.python.proxies.sikuli.Region$Region$1.super__find(Unknown Source)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:616)
 at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:175)
 at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:190)
 at org.python.core.PyObject.__call__(PyObject.java:414)
 at org.python.core.PyObject.__call__(PyObject.java:418)
 at sikuli.Region$py.find$5(/opt/sikuli_src/sikuli-x/sikuli-ide/target/linux/Sikuli-IDE/sikuli-script.jar/Lib/sikuli/Region.py:60)
 at sikuli.Region$py.call_function(/opt/sikuli_src/sikuli-x/sikuli-ide/target/linux/Sikuli-IDE/sikuli-script.jar/Lib/sikuli/Region.py)
 at org.python.core.PyTableCode.call(PyTableCode.java:165)
 at org.python.core.PyBaseCode.call(PyBaseCode.java:297)
 at org.python.core.PyBaseCode.call(PyBaseCode.java:191)
 at org.python.core.PyFunction.__call__(PyFunction.java:385)
 at org.python.core.PyMethod.__call__(PyMethod.java:215)
 at org.python.core.PyMethod.instancemethod___call__(PyMethod.java:221)
 at org.python.core.PyMethod.__call__(PyMethod.java:206)
 at org.python.core.PyObject.__call__(PyObject.java:397)
 at org.python.core.PyObject.__call__(PyObject.java:401)
 at org.python.pycode._pyx232.f$0(/tmp/sikuli-tmp5121737367665630777.py:2)
 at org.python.pycode._pyx232.call_function(/tmp/sikuli-tmp5121737367665630777.py)
 at org.python.core.PyTableCode.call(PyTableCode.java:165)
 at org.python.core.PyCode.call(PyCode.java:18)
 at org.python.core.Py.runCode(Py.java:1204)
 at org.python.core.__builtin__.execfile_flags(__builtin__.java:541)
 at org.python.util.PythonInterpreter.execfile(PythonInterpreter.java:190)
 at org.sikuli.script.ScriptRunner.runPython(ScriptRunner.java:61)
 at org.sikuli.ide.SikuliIDE$ButtonRun.runPython(SikuliIDE.java:1511)
 at org.sikuli.ide.SikuliIDE$ButtonRun$1.run(SikuliIDE.java:1616)

** Affects: sikuli
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Sikuli
Drivers, which is subscribed to Sikuli.
https://bugs.launchpad.net/bugs/769924

Title:
  Scripts with catch all except: uses 100% cpu after pressing stop key

Status in Sikuli:
  New

Bug description:
  Using Sikuli from bzr
  x64 Ubuntu 10.10

  To Reproduce...
  * Run the attached script, wait a second, press the stop hotkey.
  * May need to do it a few times until you get the below error...
  * When the error appears, the script looks like it's stopped but the CPU is at 100%

  It maybe unnoticeable on your average multicore cpu, but after
  pressing stop a few times, the computer starts running very slowly.

  java.lang.InterruptedException: sleep interrupted
   at java.lang.Thread.sleep(Native Method)
   at java.awt.Robot.delay(Robot.java:449)
   at org.sikuli.script.SikuliRobot.delay(SikuliRobot.java:23)
   at org.sikuli.script.Region$Repeatable.repeat(Region.java:1244)
   at org.sikuli.script.Region.wait(Region.java:437)
   at org.python.proxies.sikuli.Region$Region$1.super__wait(Unknown Source)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:616)
   at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:175)
   at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:190)
   at org.python.core.PyObject.__call__(PyObject.java:432)
   at org.python.core.PyObject.__call__(PyObject.java:436)
   at sikuli.Region$py.wait$7(/opt/sikuli_src/sikuli-x/sikuli-ide/target/linux/Sikuli-IDE/sikuli-script.jar/Lib/sikuli/Region.py:95)
   at sikuli.Region$py.call_function(/opt/sikuli_src/sikuli-x/sikuli-ide/target/linux/Sikuli-IDE/sikuli-script.jar/Lib/sikuli/Region.py)
   at org.python.core.PyTableCode.call(PyTableCode.java:165)
   at org.python.core.PyBaseCode.call(PyBaseCode.java:297)
   at org.python.core.PyBaseCode.call(PyBaseCode.java:191)
   at org.python.core.PyFunction.__call__(PyFunction.java:385)
   at org.python.core.PyMethod.__call__(PyMethod.java:215)
   at org.python.core.PyMethod.instancemethod___call__(PyMethod.java:221)
   at org.python.core.PyMethod.__call__(PyMethod.java:206)
   at org.python.core.PyObject.__call__(PyObject.java:367)
   at org.python.core.PyObject._jcallexc(PyObject.java:3500)
   at org.python.proxies.sikuli.Region$Region$1.wait(Unknown Source)
   at org.sikuli.script.Region.find(Region.java:330)
   at org.python.proxies.sikuli.Region$Region$1.super__find(Unknown Source)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:616)
   at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:175)
   at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:190)
   at org.python.core.PyObject.__call__(PyObject.java:414)
   at org.python.core.PyObject.__call__(PyObject.java:418)
   at sikuli.Region$py.find$5(/opt/sikuli_src/sikuli-x/sikuli-ide/target/linux/Sikuli-IDE/sikuli-script.jar/Lib/sikuli/Region.py:60)
   at sikuli.Region$py.call_function(/opt/sikuli_src/sikuli-x/sikuli-ide/target/linux/Sikuli-IDE/sikuli-script.jar/Lib/sikuli/Region.py)
   at org.python.core.PyTableCode.call(PyTableCode.java:165)
   at org.python.core.PyBaseCode.call(PyBaseCode.java:297)
   at org.python.core.PyBaseCode.call(PyBaseCode.java:191)
   at org.python.core.PyFunction.__call__(PyFunction.java:385)
   at org.python.core.PyMethod.__call__(PyMethod.java:215)
   at org.python.core.PyMethod.instancemethod___call__(PyMethod.java:221)
   at org.python.core.PyMethod.__call__(PyMethod.java:206)
   at org.python.core.PyObject.__call__(PyObject.java:397)
   at org.python.core.PyObject.__call__(PyObject.java:401)
   at org.python.pycode._pyx152.f$0(/tmp/sikuli-tmp9057597696209918498.py:2)
   at org.python.pycode._pyx152.call_function(/tmp/sikuli-tmp9057597696209918498.py)
   at org.python.core.PyTableCode.call(PyTableCode.java:165)
   at org.python.core.PyCode.call(PyCode.java:18)
   at org.python.core.Py.runCode(Py.java:1204)
   at org.python.core.__builtin__.execfile_flags(__builtin__.java:541)
   at org.python.util.PythonInterpreter.execfile(PythonInterpreter.java:190)
   at org.sikuli.script.ScriptRunner.runPython(ScriptRunner.java:61)
   at org.sikuli.ide.SikuliIDE$ButtonRun.runPython(SikuliIDE.java:1511)
   at org.sikuli.ide.SikuliIDE$ButtonRun$1.run(SikuliIDE.java:1616) 
  java.lang.InterruptedException: sleep interrupted
   at java.lang.Thread.sleep(Native Method)
   at java.awt.Robot.delay(Robot.java:449)
   at org.sikuli.script.SikuliRobot.delay(SikuliRobot.java:23)
   at org.sikuli.script.Region$Repeatable.repeat(Region.java:1244)
   at org.sikuli.script.Region.wait(Region.java:437)
   at org.python.proxies.sikuli.Region$Region$1.super__wait(Unknown Source)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:616)
   at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:175)
   at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:190)
   at org.python.core.PyObject.__call__(PyObject.java:432)
   at org.python.core.PyObject.__call__(PyObject.java:436)
   at sikuli.Region$py.wait$7(/opt/sikuli_src/sikuli-x/sikuli-ide/target/linux/Si 
  kuli-IDE/sikuli-script.jar/Lib/sikuli/Region.py:95)
   at sikuli.Region$py.call_function(/opt/sikuli_src/sikuli-x/sikuli-ide/target/linux/Sikuli-IDE/sikuli-script.jar/Lib/sikuli/Region.py)
   at org.python.core.PyTableCode.call(PyTableCode.java:165)
   at org.python.core.PyBaseCode.call(PyBaseCode.java:297)
   at org.python.core.PyBaseCode.call(PyBaseCode.java:191)
   at org.python.core.PyFunction.__call__(PyFunction.java:385)
   at org.python.core.PyMethod.__call__(PyMethod.java:215)
   at org.python.core.PyMethod.instancemethod___call__(PyMethod.java:221)
   at org.python.core.PyMethod.__call__(PyMethod.java:206)
   at org.python.core.PyObject.__call__(PyObject.java:367)
   at org.python.core.PyObject._jcallexc(PyObject.java:3500)
   at org.python.proxies.sikuli.Region$Region$1.wait(Unknown Source)
   at org.sikuli.script.Region.find(Region.java:330)
   at org.python.proxies.sikuli.Region$Region$1.super__find(Unknown Source)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:616)
   at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:175)
   at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:190)
   at org.python.core.PyObject.__call__(PyObject.java:414)
   at org.python.core.PyObject.__call__(PyObject.java:418)
   at sikuli.Region$py.find$5(/opt/sikuli_src/sikuli-x/sikuli-ide/target/linux/Sikuli-IDE/sikuli-script.jar/Lib/sikuli/Region.py:60)
   at sikuli.Region$py.call_function(/opt/sikuli_src/sikuli-x/sikuli-ide/target/linux/Sikuli-IDE/sikuli-script.jar/Lib/sikuli/Region.py)
   at org.python.core.PyTableCode.call(PyTableCode.java:165)
   at org.python.core.PyBaseCode.call(PyBaseCode.java:297)
   at org.python.core.PyBaseCode.call(PyBaseCode.java:191)
   at org.python.core.PyFunction.__call__(PyFunction.java:385)
   at org.python.core.PyMethod.__call__(PyMethod.java:215)
   at org.python.core.PyMethod.instancemethod___call__(PyMethod.java:221)
   at org.python.core.PyMethod.__call__(PyMethod.java:206)
   at org.python.core.PyObject.__call__(PyObject.java:397)
   at org.python.core.PyObject.__call__(PyObject.java:401)
   at org.python.pycode._pyx232.f$0(/tmp/sikuli-tmp5121737367665630777.py:2)
   at org.python.pycode._pyx232.call_function(/tmp/sikuli-tmp5121737367665630777.py)
   at org.python.core.PyTableCode.call(PyTableCode.java:165)
   at org.python.core.PyCode.call(PyCode.java:18)
   at org.python.core.Py.runCode(Py.java:1204)
   at org.python.core.__builtin__.execfile_flags(__builtin__.java:541)
   at org.python.util.PythonInterpreter.execfile(PythonInterpreter.java:190)
   at org.sikuli.script.ScriptRunner.runPython(ScriptRunner.java:61)
   at org.sikuli.ide.SikuliIDE$ButtonRun.runPython(SikuliIDE.java:1511)
   at org.sikuli.ide.SikuliIDE$ButtonRun$1.run(SikuliIDE.java:1616)


Follow ups

References