GraphiteThree icon indicating copy to clipboard operation
GraphiteThree copied to clipboard

Lua Stack overflow

Open BrunoLevy opened this issue 3 years ago • 4 comments
trafficstars

Under some circumstances, Graphite crashes with a Lua stack overflow. There may be an event handler that enters an infinite recursion. It happens after a looong time though. To reproduce, start Graphite, open the preference windows, and leave the cursor over it.

BrunoLevy avatar Jul 15 '22 09:07 BrunoLevy

Error log:

| o-[Lua         ] Error: /home/blevy/Programming/GraphiteThree/lib/camera.lua |
|                  :193: stack overflow                                        |
|                  Error: /home/blevy/Programming/GraphiteThree/lib/camera.lua |
|                  :193: stack overflow                                        |
|                  Error: stack overflow                                       |
|                  Error: stack overflow                                       |
|                  Error: /home/blevy/Programming/GraphiteThree/lib/autogui.lu |
|                  a:38: stack overflow                                        |
|                  Error: /home/blevy/Programming/GraphiteThree/lib/autogui.lu |
|                  a:38: stack overflow                                        |
|                  Error: .../blevy/Programming/GraphiteThree/lib/graphite_com |
|                  mon.lua:31: stack overflow                                  |
|                  Error: /home/blevy/Programming/GraphiteThree/lib/autogui.lu |
|                  a:284: stack overflow                                       |
|                  Error: /home/blevy/Programming/GraphiteThree/lib/autogui.lu |
|                  a:284: stack overflow                                       |
|                  Error: /home/blevy/Programming/GraphiteThree/lib/autogui.lu |
|                  a:1211: stack overflow                                      |
|                  Error: /home/blevy/Programming/GraphiteThree/lib/autogui.lu |
|                  a:1211: stack overflow                                      |
|                  Error: /home/blevy/Programming/GraphiteThree/lib/autogui.lu |
|                  a:1211: stack overflow                                      |
|                  Error: /home/blevy/Programming/GraphiteThree/lib/autogui.lu |
|                  a:1254: stack overflow                                      |
|                  Error: /home/blevy/Programming/GraphiteThree/lib/scene_grap |
|                  h.lua:467: stack overflow                                   |
|                  Error: /home/blevy/Programming/GraphiteThree/lib/scene_grap |
|                  h.lua:467: stack overflow                                   |
|                  Error: /home/blevy/Programming/GraphiteThree/lib/scene_grap |
|                  h.lua:467: stack overflow                                   |
|                  Error: /home/blevy/Programming/GraphiteThree/lib/scene_grap |
|                  h.lua:467: stack overflow                                   |
|                  Error: /home/blevy/Programming/GraphiteThree/lib/scene_grap |
|                  h.lua:467: stack overflow                                   |
|                  Error: /home/blevy/Programming/GraphiteThree/lib/scene_grap |
|                  h.lua:467: stack overflow                                   |
|                  Error: /home/blevy/Programming/GraphiteThree/lib/scene_grap |
|                  h.lua:467: stack overflow                                   |
|                  Error: /home/blevy/Programming/GraphiteThree/lib/scene_grap |
|                  h.lua:467: stack overflow                                   |
|                  Error: ...e/blevy/Programming/GraphiteThree/lib/graphite_im |
|                  gui.lua:73: stack overflow                                  |
|                  Error: ...e/blevy/Programming/GraphiteThree/lib/graphite_im |
|                  gui.lua:45: stack overflow                                  |
|                  Error: ...e/blevy/Programming/GraphiteThree/lib/graphite_im |
|                  gui.lua:45: stack overflow                                  |
|                  Error: ...e/blevy/Programming/GraphiteThree/lib/graphite_im |
|                  gui.lua:45: stack overflow                                  |
|                  Error: ...e/blevy/Programming/GraphiteThree/lib/graphite_im |
|                  gui.lua:45: stack overflow                                  |
|                  Error: ...e/blevy/Programming/GraphiteThree/lib/graphite_im |
|                  gui.lua:45: stack overflow                                  |
|                  Error: ...e/blevy/Programming/GraphiteThree/lib/graphite_im |
|                  gui.lua:45: stack overflow                                  |
|                  Error: ...e/blevy/Programming/GraphiteThree/lib/graphite_im |
|                  gui.lua:45: stack overflow                                  |
|                  Error: ...e/blevy/Programming/GraphiteThree/lib/graphite_im |
|                  gui.lua:89: stack overflow                                  |
Error while displaying error (!):                 Error: ...e/blevy/Programming/GraphiteThree/lib/graphite_imgui.lua:89: stack overflow
stack overflow

|                  Error: stack overflow                                       |
Error while displaying error (!):                 Error: stack overflow
stack overflow

|                  Error: stack overflow                                       |
Error while displaying error (!):                 Error: stack overflow
stack overflow

|                  Error: stack overflow                                       |
Error while displaying error (!):                 Error: stack overflow
stack overflow

|                  Error: error in error handling                              |
|                  Error: error in error handling                              |
|                  Error: error in error handling                              |
|                  Error: error in error handling                              |
|                  Error: error in error handling                              |
|                  Error: error in error handling                              |
|                  Error: error in error handling                              |
|                  Error: error in error handling                              |
|                  Error: error in error handling                              |
|                  Error: error in error handling                              |
|                  Error: error in error handling                              |
|                  Error: error in error handling                              |
|                  Error: error in error handling                              |
|                  Error: error in error handling                              |
|                  Error: error in error handling                              |
|                  Error: error in error handling                              |
|                  Error: error in error handling                              |
|                  Error: error in error handling                              |
|                  Error: error in error handling                              |
|                  Error: error in error handling                              |
|                  Error: error in error handling                              |
|                  Error: error in error handling                              |
|                  Error: error in error handling                              |
|                  Error: error in error handling                              |
|                  Error: error in error handling                              |
|                  Error: error in error handling                              |
|                  Error: error in error handling                              |
|                  Error: error in error handling                              |
|                  Error: error in error handling                              |
|                  Error: error in error handling                              |
Error while displaying error (!):                 Error: error in error handling
error in error handling

|                  Error: error in error handling                              |
Error while displaying error (!):                 Error: error in error handling
error in error handling

|                  Error: error in error handling                              |
Error while displaying error (!):                 Error: error in error handling
error in error handling

|                  Error: error in error handling                              |
Error while displaying error (!):                 Error: error in error handling
error in error handling

|                  Error: error in error handling                              |

BrunoLevy avatar Jul 15 '22 12:07 BrunoLevy

Added a lock in graphite_gui.draw() to avoid recursive invocation (in lib/graphite_imgui.lua)

BrunoLevy avatar Jul 23 '22 14:07 BrunoLevy

Problem still occurs sometimes (and since it is after a loooonnnng time, it is hard to reproduce / hard to debug)

BrunoLevy avatar Jul 28 '22 11:07 BrunoLevy

  • could not reproduce the problem
  • it may be connected with the "histogram window" wanting to refresh the histogram too often. It may be the way to go to investigate the problem (if it is the same problem), because it is easier to reprodcue.

BrunoLevy avatar Dec 31 '22 11:12 BrunoLevy