MathNodes / meile-gui

Meile dVPN GUI for Linux, OS X, and Windows - Powered by the Sentinel Network
https://meile.app
GNU General Public License v3.0
36 stars 6 forks source link

[BUG] No country upon refresh with clickable pin causes crash #60

Closed MathNodes closed 2 months ago

MathNodes commented 11 months ago

If you refresh and nodes in a country go offline but the pin still remains, when you click the node listing for the country on the pin, it causes a crash. This is due to the pins not being remove and repopulated.

Trace:

[INFO   ] [Base        ] Leaving application in progress...
 Traceback (most recent call last):
   File "/home/bubonic/venv/meile/bin/meile-gui", line 8, in <module>
     sys.exit(main())
   File "/home/bubonic/venv/meile/lib/python3.10/site-packages/main/meile_gui.py", line 6, in main
     meilethread = Thread(target=Meile.app.run())
   File "/home/bubonic/venv/meile/lib/python3.10/site-packages/kivy/app.py", line 956, in run
     runTouchApp()
   File "/home/bubonic/venv/meile/lib/python3.10/site-packages/kivy/base.py", line 574, in runTouchApp
     EventLoop.mainloop()
   File "/home/bubonic/venv/meile/lib/python3.10/site-packages/kivy/base.py", line 339, in mainloop
     self.idle()
   File "/home/bubonic/venv/meile/lib/python3.10/site-packages/kivy/base.py", line 383, in idle
     self.dispatch_input()
   File "/home/bubonic/venv/meile/lib/python3.10/site-packages/kivy/base.py", line 334, in dispatch_input
     post_dispatch_input(*pop(0))
   File "/home/bubonic/venv/meile/lib/python3.10/site-packages/kivy/base.py", line 302, in post_dispatch_input
     wid.dispatch('on_touch_up', me)
   File "kivy/_event.pyx", line 731, in kivy._event.EventDispatcher.dispatch
   File "/home/bubonic/venv/meile/lib/python3.10/site-packages/kivymd/uix/button/button.py", line 1187, in on_touch_up
     return super().on_touch_up(touch)
   File "/home/bubonic/venv/meile/lib/python3.10/site-packages/kivymd/uix/behaviors/ripple_behavior.py", line 404, in on_touch_up
     return super().on_touch_up(touch)
   File "/home/bubonic/venv/meile/lib/python3.10/site-packages/kivy/uix/behaviors/button.py", line 179, in on_touch_up
     self.dispatch('on_release')
   File "kivy/_event.pyx", line 727, in kivy._event.EventDispatcher.dispatch
   File "kivy/_event.pyx", line 1307, in kivy._event.EventObservers.dispatch
   File "kivy/_event.pyx", line 1231, in kivy._event.EventObservers._dispatch
   File "/home/bubonic/venv/meile/lib/python3.10/site-packages/ui/screens.py", line 845, in load_country_nodes
     Meile.app.root.add_widget(NodeScreen(name="nodes",
   File "/home/bubonic/venv/meile/lib/python3.10/site-packages/ui/screens.py", line 1122, in __init__
     CountryNodes = self.NodeTree.NodeTree.children(country)
   File "/home/bubonic/venv/meile/lib/python3.10/site-packages/treelib/tree.py", line 376, in children
     return [self[i] for i in self.is_branch(nid)]
   File "/home/bubonic/venv/meile/lib/python3.10/site-packages/treelib/tree.py", line 526, in is_branch
     raise NodeIDAbsentError("Node '%s' is not in the tree" % nid)
 treelib.exceptions.NodeIDAbsentError: Node 'Slovakia' is not in the tree
MathNodes commented 2 months ago

Fixed in 2.0 now that we add countries based on node identities instead of countries from a db.