pyfa-org / Pyfa

Python fitting assistant, cross-platform fitting tool for EVE Online
GNU General Public License v3.0
1.61k stars 408 forks source link

character creation triggers pyfa crash #1670

Closed Bazzek closed 6 years ago

Bazzek commented 6 years ago

I am trying to add my characters to Pyfa, but i am running into strange behavior.

Previously i had the characters in there, but something went wrong and my character got bugged. I removed the pyfa git, all the settings i could find and recloned the git (i am working on linux).

What happens:

I start pyfa, go to "EVE SSO" and add my character.

In the character pull down, the character does not show up, so i assumed that i would need to go to the character editor and create it, connecting it to my EVE SSO info.

In the character editor i click the icono to add a new character, fill in my character name and click okay.

And suddenly pyfa is gone, crashed, no more processes tied to pyfa in memory or anything.

When i start Pyfa, the character exists in character editor, so i select it and pyfa crashes again.

Rinse and repeat.

What am i doing wrong, or did i miss a "database" osf sorts when i removed all settings (.pyfa directory in my home dir)

blitzmann commented 6 years ago

Since you're on Linux, I would think this is due to a library issue, possible wxPython. Can you let me know the following:

1) Linux distro and version 2) python version 3) version for all the pip packages listed in https://github.com/pyfa-org/Pyfa/blob/master/requirements.txt If you did not use pip to install these things, but instead used your package manger, please reference your package manager to figure out the version to the above python packages (or you can get the version by importing them in a python interpreter and getting the version string, though the way to do this can differ from library to library)

I'm almost positive it's probably an issue with the wxPython version. pyfa requires a very specific version to work properly (versions before and after have had bugs, haven't tried yet the latest release for stability).

Bazzek commented 6 years ago

1: Xubuntu 18.04 2: Python 3.6-minimal 3: PIP 9.0.1 List of package in pip: ansible (2.6.1) apache-libcloud (2.3.0) arandr (0.1.9) asn1crypto (0.24.0) backports.functools-lru-cache (1.5) bcrypt (3.1.4) beautifulsoup4 (4.6.0) certifi (2018.4.16) cffi (1.11.5) chardet (3.0.4) cryptography (2.2.2) cycler (0.10.0) defusedxml (0.5.0) diskcache (3.0.6) enum34 (1.1.6) functools32 (3.2.3.post2) httplib2 (0.9.2) idna (2.7) ipaddress (1.0.22) Jinja2 (2.10) jmespath (0.9.3) keyring (10.6.0) keyrings.alt (3.0) lockfile (0.12.2) Logbook (1.4.0) Markdown (2.6.11) MarkupSafe (1.0) matplotlib (2.1.1) netaddr (0.7.19) numpy (1.13.3) olefile (0.45.1) packaging (17.1) paramiko (2.4.1) Pillow (5.1.0) pip (9.0.1) pip-review (1.0) psutil (5.4.2) pyasn1 (0.4.3) pycairo (1.16.2) pycparser (2.18) pycrypto (2.6.1) pygobject (3.26.1) pykerberos (1.1.14) pyliblzma (0.5.3) PyNaCl (1.2.1) pyOpenSSL (17.5.0) pyparsing (2.2.0) Pypubsub (4.0.0) pysqlite (1.0.1) python-dateutil (2.6.1) python-magic (0.4.16) pytz (2018.3) pyudev (0.21.0) pyxdg (0.25) PyYAML (3.13) requests (2.19.1) roman (3.0) SecretStorage (2.3.1) setuptools (40.0.0) simplejson (3.13.2) six (1.11.0) SOAPpy (0.12.22) SQLAlchemy (1.1.11) subprocess32 (3.2.7) typing (3.6.4) urllib3 (1.23) wheel (0.30.0) wstools (0.4.3) xmltodict (0.11.0)

You are correct, for some reason the wxPython seems to have been downgraded as well as a ton of other requirements (some even disappeared and i know i had them installed).

But i cannot for the life of me get wxPython 4.0.3 (it does not know version 4.0.0b2, so it has to be 4.0.3 i guess) installed, it hangs at running setup.py bdist_wheel for wxPython and has been for the last 20 minutes. I removed the wxPython i had and tried again, same thing. Gonna have to figure out how to get pip to do what it needs to do i guess.

EDIT: It seems that the setup just takes forever, it is doing SOMETHING, albeit not done yet.

NEW LIST OF PIP PACKAGES: A cleaned up list with cryptography 2.1.4 and wxPython 4.0.0b2: ansible (2.6.1) apache-libcloud (2.3.0) arandr (0.1.9) asn1crypto (0.24.0) backports.functools-lru-cache (1.5) bcrypt (3.1.4) beautifulsoup4 (4.6.0) certifi (2018.4.16) cffi (1.11.5) chardet (3.0.4) cryptography (2.1.4) cycler (0.10.0) defusedxml (0.5.0) diskcache (3.0.6) enum34 (1.1.6) functools32 (3.2.3.post2) httplib2 (0.9.2) idna (2.7) ipaddress (1.0.22) Jinja2 (2.10) jmespath (0.9.3) keyring (10.6.0) keyrings.alt (3.0) lockfile (0.12.2) Logbook (1.4.0) Markdown (2.6.11) markdown2 (2.3.5) MarkupSafe (1.0) matplotlib (2.1.1) netaddr (0.7.19) numpy (1.13.3) olefile (0.45.1) packaging (17.1) paramiko (2.4.1) Pillow (5.1.0) pip (9.0.1) pip-review (1.0) psutil (5.4.2) pyasn1 (0.4.3) pycairo (1.16.2) pycparser (2.18) pycrypto (2.6.1) pygobject (3.26.1) pykerberos (1.1.14) pyliblzma (0.5.3) PyNaCl (1.2.1) pyOpenSSL (17.5.0) pyparsing (2.2.0) Pypubsub (4.0.0) pysqlite (1.0.1) python-dateutil (2.7.3) python-magic (0.4.16) pytz (2018.3) pyudev (0.21.0) pyxdg (0.25) PyYAML (3.13) requests (2.19.1) roman (3.0) SecretStorage (2.3.1) setuptools (40.0.0) simplejson (3.13.2) six (1.11.0) SOAPpy (0.12.22) SQLAlchemy (1.1.11) subprocess32 (3.2.7) typing (3.6.4) urllib3 (1.23) wheel (0.30.0) wstools (0.4.3) wxPython (4.0.0b2) xmltodict (0.11.0)

Bazzek commented 6 years ago

Okay, wxPython in stalled, but making a character cases a crash.

blitzmann commented 6 years ago

The reason it takes so long is because it needs to build wxWidgets. This is a common problem for wxPython on Linux - the wheel isn't actually the binary for wxPython, but rather it tells it to build on command. Yu can find more information on the reasons behind this here: https://wxpython.org/pages/downloads/index.html

You're really going to want to use 4.0.0b2, as I haven't test 4.0.3 yet and this might be why it's breaking.

You're using a ubuntu-based distro, so it might be feasible to use one of these packages: https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-16.04/

Unfortunately, 4.0.0b2 is not built for 18.04 (https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-18.04/). You could try 4.0.2, but again, I haven't personally tested this one either. The only one that I know pyfa works with is 4.0.0b2. It may very well be required to build this from source so that you can get it installed. Unfortunately the state of wxPython on linux is a mess, specifically for all these reasons lol

I will be evaluating 4.0.3 very soon, so alternatively you can wait until I can do that and fix whatever compatibility may be broken there.

@minlexx is one of the regulars that use Linux... any idea? If you're using 4.0.0b2, would you be able to install 4.0.3 in a virtualenv and run pyfa with that to see if you can reproduce @Bazzek's issue?

minlexx commented 6 years ago

@blitzmann @Bazzek I have not tested Pyfa with wxPython-4.0.2 or 4.0.3 yet, but will do soon (hopefully 😉 )

minlexx commented 6 years ago

Well, in Kubuntu 16.04 I had Pyfa running with wxPython-4.0.0b2 OK. But after upgrading to wxPython-4.0.3 it dows not even start... I did $ /usr/local/bin/python3.6 -m pip install --user --upgrade https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-16.04/wxPython-4.0.3-cp36-cp36m-linux_x86_64.whl Then after $ /usr/local/bin/python3.6 ./pyfa.py I get error popup with:

OS version: Linux-4.10.0-38-generic-x86_64-with-debian-stretch-sid
Python version: 3.6.4+ (heads/3.6:73a4396, May 15 2018, 11:46:35) 
[GCC 5.4.0 20160609]
wxPython version: 4.0.3 (wxWidgets 3.0.5)
SQLAlchemy version: 1.2.7
Logbook version: 1.4.0
Requests version: 2.18.4
Dateutil version: 2.7.3

####################

Traceback (most recent call last):
  File "./pyfa.py", line 131, in <module>
    from gui.mainFrame import MainFrame
  File "/home/a.minnekhanov/projects/py/Pyfa/gui/mainFrame.py", line 64, in <module>
    from gui.updateDialog import UpdateDialog
  File "/home/a.minnekhanov/projects/py/Pyfa/gui/updateDialog.py", line 25, in <module>
    import wx.html2
  File "/home/a.minnekhanov/.local/lib/python3.6/site-packages/wx/html2.py", line 15, in <module>
    from ._html2 import *
ImportError: libwebkit2gtk-4.0.so.37: cannot open shared object file: No such file or directory

:scream:

minlexx commented 6 years ago

It turned out that I should also manually install sudo apt install libwebkit2gtk-4.0-37 (I don't remember doing that for previous wxPython installation....) and then all was OK. I removed ~/.pyfa and started fresh new pyfa, I was able to create character, log in with eve sso, link sso character and fetch skills OK.

I repeated those steps (remove ~/.pyfa, ...) removed wxPython and installed wxPython-4.0.2. Character creation and SSO login and fetching skills was OK, too.

P.S. Tested all with current Pyfa master

blitzmann commented 6 years ago

Thanks for you testing! Yeah, some distros / versions require an additional package for some webkit stuff, I feel someone else ran into that issue as well.

But according to you, it doesn't seem to be a versioning thing, at least for your environment. But that's still the only thing I can think of that would cause a hard crash - it doesn't seem like this is a python error, but rather something lower level.

@Bazzek Is there anything output to the console when this happens? Is there anything in the logs? (can be found in ~/.pyfa)

minlexx commented 6 years ago

@Bazzek if you can, try to run Pyfa from command line under gdb like this (with correct full path to your python3.6 interpreter):

gdb --args /usr/bin/python3.6 ./pyfa.py

after getting a crash, type bt, then q to quit. Paste backtrace here...

Bazzek commented 6 years ago

I will check on Tuesday, I have no access to the PC till then. I will try the suggested package install first as that seems an easy possible sollution. If that does work I will provide logging and gdb output.

On Fri, Jul 13, 2018, 18:06 Alexey Min notifications@github.com wrote:

@Bazzek https://github.com/Bazzek if you can, try to run Pyfa from command line under gdb like this (with correct full path to your python3.6 interpreter):

gdb --args /usr/bin/python3.6 ./pyfa.py

after getting a crash, type bt, then q to quit. Paste backtrace here...

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/pyfa-org/Pyfa/issues/1670#issuecomment-404878404, or mute the thread https://github.com/notifications/unsubscribe-auth/ALBHiwdO9L94mDNtLQ1PMLB9tOrlPjIWks5uGMWZgaJpZM4VMdQr .

--

Mvg, Vincent Ouwehand Tel 0640583271

Bazzek commented 6 years ago

I have tried installing libwebkit2gtk but i was already running that version, so no cigar there.

next attempt was a clean pyfa (removed .pyfa folder), did a git pull (latest code always) and ran Pyfa. Starts just fine, i then added the EVE SSO which went fine too. I then went into character editor and made the character which resulted in a crash of the program (output below) (i repeated the exact steps every time) This is of course with wxPython 4.0.3.

(Since i have done a run with wxPython 4.0.0b2 to see if this is the root of the issue or if i have something else going wrong. The result was negative, the problem seems to exist wxPython 4.0.0b2 as well. I added the gdb output with 4.0.0b2 at the bottom as well.)

I then went through all the requirements, cleaned it all up (there was a higher level of cryptography installed with pip (2.2.2), but the OS had a slightly lower version installed through apt (2.1.4), i removed the higher version in pip and ran everything again, but even the output in gdb was identical.

Output of gdb with version 4.0.3:

#0  0x00007ffff6c0fe97 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x00007ffff6c11801 in __GI_abort () at abort.c:79
#2  0x00007ffff09f9fa5 in g_assertion_message () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff09fa00a in g_assertion_message_expr () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007ffff1e1c5ce in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#5  0x00007ffff1edca19 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#6  0x00007ffff0cacf6d in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#7  0x00007ffff0cbfd3e in  () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#8  0x00007ffff0cc83f5 in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#9  0x00007ffff0cc8e0f in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#10 0x00007fffcc2e597d in wxGtkDataViewModelNotifier::ItemAdded(wxDataViewItem const&, wxDataViewItem const&) () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_gtk3u_adv-3.0.so.0
#11 0x00007fffcc23fdc0 in wxDataViewModel::ItemAdded(wxDataViewItem const&, wxDataViewItem const&) () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_gtk3u_adv-3.0.so.0
#12 0x00007fffcc2c2289 in wxTreeListModel::InsertItem(wxTreeListModelNode*, wxTreeListModelNode*, wxString const&, int, int, wxClientData*) ()
    at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_gtk3u_adv-3.0.so.0
#13 0x00007fffcc2c23ad in wxTreeListCtrl::DoInsertItem(wxTreeListItem, wxTreeListItem, wxString const&, int, int, wxClientData*) ()
    at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_gtk3u_adv-3.0.so.0
#14 0x00007fffcc6070f3 in wxTreeListCtrl::AppendItem(wxTreeListItem, wxString const&, int, int, wxClientData*) (this=0x2aaf800, parent=..., text=..., imageClosed=0, imageOpened=-1, data=0x25ff270)
    at /tmp/pip-build-miitbost/wxPython/ext/wxWidgets/include/wx/treelist.h:208
#15 0x00007fffcc5fe4a8 in meth_wxTreeListCtrl_AppendItem(PyObject*, PyObject*, PyObject*) (sipSelf=0x7fffbb432678, sipArgs=0x7fffbb4c6ea0, sipKwds=0x7fffdbc56b88)
    at ../../../../sip/cpp/sip_dataviewwxTreeListCtrl.cpp:1349
#16 0x00000000004c549b in _PyCFunction_FastCallKeywords ()
#17 0x000000000054ffe4 in  ()
#18 0x0000000000552b00 in _PyEval_EvalFrameDefault ()
#19 0x000000000054fbe1 in  ()
#20 0x000000000054fe6d in  ()
#21 0x00000000005546cf in _PyEval_EvalFrameDefault ()
#22 0x000000000054f0e8 in  ()
#23 0x0000000000558ef2 in _PyFunction_FastCallDict ()
#24 0x000000000045a461 in _PyObject_Call_Prepend ()
#25 0x0000000000459eee in PyObject_Call ()
#26 0x00007ffff45159c1 in wxPyCallback::EventThunker(wxEvent&) (this=0x26efc00, event=...) at ../../../../sip/cpp/sip_corewxEvtHandler.cpp:70
#27 0x00007ffff32db5aa in wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_baseu-3.0.so.0
#28 0x00007ffff32db9ba in wxEvtHandler::SearchDynamicEventTable(wxEvent&) () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_baseu-3.0.so.0
#29 0x00007ffff32dba4f in wxEvtHandler::TryHereOnly(wxEvent&) () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_baseu-3.0.so.0
#30 0x00007ffff32dbb03 in wxEvtHandler::ProcessEventLocally(wxEvent&) () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_baseu-3.0.so.0
#31 0x00007ffff32dbb65 in wxEvtHandler::ProcessEvent(wxEvent&) () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_baseu-3.0.so.0
#32 0x00007ffff485f207 in sipwxTextCtrl::ProcessEvent(wxEvent&) (this=0x26efc00, event=...) at ../../../../sip/cpp/sip_corewxTextCtrl.cpp:775
#33 0x00007ffff32db8c7 in wxEvtHandler::SafelyProcessEvent(wxEvent&) () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_baseu-3.0.so.0
#34 0x00007ffff3bf6d5f in wxTextEntryBase::SendTextUpdatedEvent(wxWindow*) () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_gtk3u_core-3.0.so.0
#35 0x00007ffff3ad9d86 in wxTextEntry::DoSetValue(wxString const&, int) () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_gtk3u_core-3.0.so.0
#36 0x00007ffff3ad7784 in wxTextCtrl::DoSetValue(wxString const&, int) () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_gtk3u_core-3.0.so.0
#37 0x00007ffff4494360 in wxTextEntryBase::SetValue(wxString const&) (this=0x26f0150, value=...) at /tmp/pip-build-miitbost/wxPython/ext/wxWidgets/include/wx/textentry.h:41
#38 0x00007ffff48672a2 in wxTextCtrlBase::SetValue(wxString const&) (this=0x26efc00, value=...) at /tmp/pip-build-miitbost/wxPython/ext/wxWidgets/include/wx/textctrl.h:735
#39 0x00007ffff486d9db in meth_wxTextEntry_SetValue(PyObject*, PyObject*, PyObject*) (sipSelf=0x7fffbb4324c8, sipArgs=0x7fffbb41e668, sipKwds=0x0) at ../../../../sip/cpp/sip_corewxTextEntry.cpp:1475
#40 0x00000000004c549b in _PyCFunction_FastCallKeywords ()
#41 0x000000000054ffe4 in  ()
#42 0x00000000005546cf in _PyEval_EvalFrameDefault ()
#43 0x000000000054f0e8 in  ()
#44 0x0000000000550116 in  ()
#45 0x00000000005546cf in _PyEval_EvalFrameDefault ()
#46 0x000000000054fbe1 in  ()
#47 0x0000000000558e19 in _PyFunction_FastCallDict ()
#48 0x000000000045a461 in _PyObject_Call_Prepend ()
#49 0x0000000000459eee in PyObject_Call ()
#50 0x00007ffff45159c1 in wxPyCallback::EventThunker(wxEvent&) (this=0x3080c50, event=...) at ../../../../sip/cpp/sip_corewxEvtHandler.cpp:70
#51 0x00007ffff32db5aa in wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_baseu-3.0.so.0
#52 0x00007ffff32db9ba in wxEvtHandler::SearchDynamicEventTable(wxEvent&) () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_baseu-3.0.so.0
#53 0x00007ffff32dba4f in wxEvtHandler::TryHereOnly(wxEvent&) () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_baseu-3.0.so.0
#54 0x00007ffff32dbb03 in wxEvtHandler::ProcessEventLocally(wxEvent&) () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_baseu-3.0.so.0
#55 0x00007ffff32dbb65 in wxEvtHandler::ProcessEvent(wxEvent&) () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_baseu-3.0.so.0
#56 0x00007ffff46e1c87 in sipwxPanel::ProcessEvent(wxEvent&) (this=0x3080c50, event=...) at ../../../../sip/cpp/sip_corewxPanel.cpp:193
#57 0x00007ffff3c05cab in wxWindowBase::TryAfter(wxEvent&) () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_gtk3u_core-3.0.so.0
#58 0x00007ffff444a903 in sipwxChoice::TryAfter(wxEvent&) (this=0x310ac30, event=...) at ../../../../sip/cpp/sip_corewxChoice.cpp:835
#59 0x00007ffff444aa77 in sipwxChoice::ProcessEvent(wxEvent&) (this=0x310ac30, event=...) at ../../../../sip/cpp/sip_corewxChoice.cpp:865
#60 0x00007ffff32dcc52 in wxEvtHandler::ProcessPendingEvents() () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_baseu-3.0.so.0
#61 0x00007ffff3164977 in wxAppConsoleBase::ProcessPendingEvents() () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_baseu-3.0.so.0
#62 0x00007ffff474d94c in sipwxPyApp::ProcessPendingEvents() (this=0x21f4fe0) at ../../../../sip/cpp/sip_corewxPyApp.cpp:723
#63 0x00007ffff3a191fd in wxApp::DoIdle() () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_gtk3u_core-3.0.so.0
#64 0x00007ffff3a19323 in wxapp_idle_callback () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_gtk3u_core-3.0.so.0
#65 0x00007ffff09d30f5 in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#66 0x00007ffff09d34c0 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#67 0x00007ffff09d37d2 in g_main_loop_run () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#68 0x00007ffff1db1385 in gtk_main () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#69 0x00007ffff3a373d5 in wxGUIEventLoop::DoRun() () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_gtk3u_core-3.0.so.0
#70 0x00007ffff319e263 in wxEventLoopBase::Run() () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_baseu-3.0.so.0
#71 0x00007ffff3166036 in wxAppConsoleBase::MainLoop() () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_baseu-3.0.so.0
#72 0x00007ffff474cbea in wxPyApp::MainLoop() (this=0x21f4fe0) at ../../../../sip/cpp/sip_corewxPyApp.cpp:315
#73 0x00007ffff4750245 in meth_wxPyApp_MainLoop(PyObject*, PyObject*) (sipSelf=0x7fffe59a6c18, sipArgs=0x7fffe7fd2e48) at ../../../../sip/cpp/sip_corewxPyApp.cpp:1833
#74 0x00000000004c53cd in _PyCFunction_FastCallKeywords ()
#75 0x000000000054ffe4 in  ()
#76 0x00000000005546cf in _PyEval_EvalFrameDefault ()
#77 0x000000000054f0e8 in  ()
#78 0x0000000000550116 in  ()
#79 0x00000000005546cf in _PyEval_EvalFrameDefault ()
#80 0x000000000054fbe1 in  ()
#81 0x0000000000550b93 in PyEval_EvalCode ()
#82 0x000000000042b519 in PyRun_FileExFlags ()
#83 0x000000000042b705 in PyRun_SimpleFileExFlags ()
#84 0x0000000000441fcb in Py_Main ()
#85 0x0000000000421ff4 in main ()

Output of gdb with wxPython 4.0.0b2:

#0  0x00007ffff6c0fe97 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x00007ffff6c11801 in __GI_abort () at abort.c:79
#2  0x00007ffff09f9fa5 in g_assertion_message () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff09fa00a in g_assertion_message_expr () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007ffff1e1c5ce in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#5  0x00007ffff1edca19 in  () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#6  0x00007ffff0cacf6d in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#7  0x00007ffff0cbfd3e in  () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#8  0x00007ffff0cc83f5 in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#9  0x00007ffff0cc8e0f in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#10 0x00007fffcc2e597d in wxGtkDataViewModelNotifier::ItemAdded(wxDataViewItem const&, wxDataViewItem const&) () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_gtk3u_adv-3.0.so.0
#11 0x00007fffcc23fdc0 in wxDataViewModel::ItemAdded(wxDataViewItem const&, wxDataViewItem const&) () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_gtk3u_adv-3.0.so.0
#12 0x00007fffcc2c2289 in wxTreeListModel::InsertItem(wxTreeListModelNode*, wxTreeListModelNode*, wxString const&, int, int, wxClientData*) ()
    at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_gtk3u_adv-3.0.so.0
#13 0x00007fffcc2c23ad in wxTreeListCtrl::DoInsertItem(wxTreeListItem, wxTreeListItem, wxString const&, int, int, wxClientData*) ()
    at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_gtk3u_adv-3.0.so.0
#14 0x00007fffcc6070f3 in wxTreeListCtrl::AppendItem(wxTreeListItem, wxString const&, int, int, wxClientData*) (this=0x2462200, parent=..., text=..., imageClosed=0, imageOpened=-1, data=0x316f9b0)
    at /tmp/pip-build-miitbost/wxPython/ext/wxWidgets/include/wx/treelist.h:208
#15 0x00007fffcc5fe4a8 in meth_wxTreeListCtrl_AppendItem(PyObject*, PyObject*, PyObject*) (sipSelf=0x7fffbb42d708, sipArgs=0x7fffbb4c6ca8, sipKwds=0x7fffdbc57b40)
    at ../../../../sip/cpp/sip_dataviewwxTreeListCtrl.cpp:1349
#16 0x00000000004c549b in _PyCFunction_FastCallKeywords ()
#17 0x000000000054ffe4 in  ()
#18 0x0000000000552b00 in _PyEval_EvalFrameDefault ()
#19 0x000000000054fbe1 in  ()
#20 0x000000000054fe6d in  ()
#21 0x00000000005546cf in _PyEval_EvalFrameDefault ()
#22 0x000000000054f0e8 in  ()
#23 0x0000000000558ef2 in _PyFunction_FastCallDict ()
#24 0x000000000045a461 in _PyObject_Call_Prepend ()
#25 0x0000000000459eee in PyObject_Call ()
#26 0x00007ffff45159c1 in wxPyCallback::EventThunker(wxEvent&) (this=0x30c4000, event=...) at ../../../../sip/cpp/sip_corewxEvtHandler.cpp:70
#27 0x00007ffff32db5aa in wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_baseu-3.0.so.0
#28 0x00007ffff32db9ba in wxEvtHandler::SearchDynamicEventTable(wxEvent&) () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_baseu-3.0.so.0
#29 0x00007ffff32dba4f in wxEvtHandler::TryHereOnly(wxEvent&) () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_baseu-3.0.so.0
#30 0x00007ffff32dbb03 in wxEvtHandler::ProcessEventLocally(wxEvent&) () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_baseu-3.0.so.0
#31 0x00007ffff32dbb65 in wxEvtHandler::ProcessEvent(wxEvent&) () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_baseu-3.0.so.0
#32 0x00007ffff485f207 in sipwxTextCtrl::ProcessEvent(wxEvent&) (this=0x30c4000, event=...) at ../../../../sip/cpp/sip_corewxTextCtrl.cpp:775
#33 0x00007ffff32db8c7 in wxEvtHandler::SafelyProcessEvent(wxEvent&) () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_baseu-3.0.so.0
#34 0x00007ffff3bf6d5f in wxTextEntryBase::SendTextUpdatedEvent(wxWindow*) () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_gtk3u_core-3.0.so.0
#35 0x00007ffff3ad9d86 in wxTextEntry::DoSetValue(wxString const&, int) () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_gtk3u_core-3.0.so.0
#36 0x00007ffff3ad7784 in wxTextCtrl::DoSetValue(wxString const&, int) () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_gtk3u_core-3.0.so.0
#37 0x00007ffff4494360 in wxTextEntryBase::SetValue(wxString const&) (this=0x30c4550, value=...) at /tmp/pip-build-miitbost/wxPython/ext/wxWidgets/include/wx/textentry.h:41
#38 0x00007ffff48672a2 in wxTextCtrlBase::SetValue(wxString const&) (this=0x30c4000, value=...) at /tmp/pip-build-miitbost/wxPython/ext/wxWidgets/include/wx/textctrl.h:735
#39 0x00007ffff486d9db in meth_wxTextEntry_SetValue(PyObject*, PyObject*, PyObject*) (sipSelf=0x7fffbb42d558, sipArgs=0x7fffbb3d3cc0, sipKwds=0x0) at ../../../../sip/cpp/sip_corewxTextEntry.cpp:1475
#40 0x00000000004c549b in _PyCFunction_FastCallKeywords ()
#41 0x000000000054ffe4 in  ()
#42 0x00000000005546cf in _PyEval_EvalFrameDefault ()
#43 0x000000000054f0e8 in  ()
#44 0x0000000000550116 in  ()
#45 0x00000000005546cf in _PyEval_EvalFrameDefault ()
#46 0x000000000054fbe1 in  ()
#47 0x0000000000558e19 in _PyFunction_FastCallDict ()
#48 0x000000000045a461 in _PyObject_Call_Prepend ()
#49 0x0000000000459eee in PyObject_Call ()
#50 0x00007ffff45159c1 in wxPyCallback::EventThunker(wxEvent&) (this=0x3004310, event=...) at ../../../../sip/cpp/sip_corewxEvtHandler.cpp:70
#51 0x00007ffff32db5aa in wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_baseu-3.0.so.0
#52 0x00007ffff32db9ba in wxEvtHandler::SearchDynamicEventTable(wxEvent&) () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_baseu-3.0.so.0
#53 0x00007ffff32dba4f in wxEvtHandler::TryHereOnly(wxEvent&) () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_baseu-3.0.so.0
#54 0x00007ffff32dbb03 in wxEvtHandler::ProcessEventLocally(wxEvent&) () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_baseu-3.0.so.0
#55 0x00007ffff32dbb65 in wxEvtHandler::ProcessEvent(wxEvent&) () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_baseu-3.0.so.0
#56 0x00007ffff46e1c87 in sipwxPanel::ProcessEvent(wxEvent&) (this=0x3004310, event=...) at ../../../../sip/cpp/sip_corewxPanel.cpp:193
---Type <return> to continue, or q <return> to quit---
#57 0x00007ffff3c05cab in wxWindowBase::TryAfter(wxEvent&) () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_gtk3u_core-3.0.so.0
#58 0x00007ffff444a903 in sipwxChoice::TryAfter(wxEvent&) (this=0x22b0050, event=...) at ../../../../sip/cpp/sip_corewxChoice.cpp:835
#59 0x00007ffff444aa77 in sipwxChoice::ProcessEvent(wxEvent&) (this=0x22b0050, event=...) at ../../../../sip/cpp/sip_corewxChoice.cpp:865
#60 0x00007ffff32dcc52 in wxEvtHandler::ProcessPendingEvents() () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_baseu-3.0.so.0
#61 0x00007ffff3164977 in wxAppConsoleBase::ProcessPendingEvents() () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_baseu-3.0.so.0
#62 0x00007ffff474d94c in sipwxPyApp::ProcessPendingEvents() (this=0x22cad60) at ../../../../sip/cpp/sip_corewxPyApp.cpp:723
#63 0x00007ffff3a191fd in wxApp::DoIdle() () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_gtk3u_core-3.0.so.0
#64 0x00007ffff3a19323 in wxapp_idle_callback () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_gtk3u_core-3.0.so.0
#65 0x00007ffff09d30f5 in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#66 0x00007ffff09d34c0 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#67 0x00007ffff09d37d2 in g_main_loop_run () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#68 0x00007ffff1db1385 in gtk_main () at /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#69 0x00007ffff3a373d5 in wxGUIEventLoop::DoRun() () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_gtk3u_core-3.0.so.0
#70 0x00007ffff319e263 in wxEventLoopBase::Run() () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_baseu-3.0.so.0
#71 0x00007ffff3166036 in wxAppConsoleBase::MainLoop() () at /home/ouwehand/.local/lib/python3.6/site-packages/wx/libwx_baseu-3.0.so.0
#72 0x00007ffff474cbea in wxPyApp::MainLoop() (this=0x22cad60) at ../../../../sip/cpp/sip_corewxPyApp.cpp:315
#73 0x00007ffff4750245 in meth_wxPyApp_MainLoop(PyObject*, PyObject*) (sipSelf=0x7fffe59a8c18, sipArgs=0x7fffe7fd2eb8) at ../../../../sip/cpp/sip_corewxPyApp.cpp:1833
#74 0x00000000004c53cd in _PyCFunction_FastCallKeywords ()
#75 0x000000000054ffe4 in  ()
#76 0x00000000005546cf in _PyEval_EvalFrameDefault ()
#77 0x000000000054f0e8 in  ()
#78 0x0000000000550116 in  ()
#79 0x00000000005546cf in _PyEval_EvalFrameDefault ()
#80 0x000000000054fbe1 in  ()
#81 0x0000000000550b93 in PyEval_EvalCode ()
#82 0x000000000042b519 in PyRun_FileExFlags ()
#83 0x000000000042b705 in PyRun_SimpleFileExFlags ()
#84 0x0000000000441fcb in Py_Main ()
#85 0x0000000000421ff4 in main ()
Bazzek commented 6 years ago

@blitzmann I almost forgot your request, but my .pyfa folder has no logs in it at all.

minlexx commented 6 years ago

@Bazzek It looks that assertion was raised from depths of /usr/lib/x86_64-linux-gnu/libgtk-3.so.0, can you check your gtk-3 version? No upgrades? Though it should be new enough... Very strange, guess I should try it later in Ubuntu 18, too. Currently I don't have it installed anywhere.

P.S. maybe it is worth to report this problem to wxPython/wxWidgets bugtracker... But it will need a minimal reproducible example for that Ubuntu version.

blitzmann commented 6 years ago

I'm going to defer much of this to @minlexx as a lot of this goes over my head. One thing I do note here though is that it seems to be breaking while processing an event which fiddles with the TreeListCtrl (which handles the skill tree). @minlexx whenever you're at all able to test in 18.04, that would be much appreciated!

@Bazzek you could also attempt to run the wxPython demo to see if their TreeListCtrl demo breaks for you. If it does, it's definitely either a bug with wxWidgets, wxPython, or your environment, and we can go from there. To run the demo, download the source files from https://github.com/wxWidgets/Phoenix/releases/tag/wxPython-4.0.3, then run python3 /path/to/src/dem/demo.py. That link is for 4.0.3, if you wish to keep 4.0.2 make sure you download that one.

If it doesn't break, then we could probably conclude that it has to do with the way pyfa handles the widget, and we would have to get a minimal working (broken) example to post around.

In the meantime, as a workaround, you could try windows pyfa through WINE

Bazzek commented 6 years ago

gtk3 version 3.22.30-1 is installed, so i would assume that is enough. Then again, i use Xubuntu, maybe the change of the Gnome interface to XFCE triggers this. I will check that first, then i wil check what @blitzmann suggested

Bazzek commented 6 years ago

@blitzmann I think this is getting rather complicated. The demo is not running either, proofing at best it is not a problem in Pyfa, at worst it proofs i have some sort of an installation issue that will make me want to kill myself to figure it out :)

I have a working WINE environment though, so i guess i should do that instead for now.

Seeing that the wxPython demo won't run either, i think we can close this issue as i have serious doubts about it being a Pyfa issue.

For those curious the output of demo.py:

Traceback (most recent call last):
  File "demo.py", line 3, in <module>
    import Main
  File "/home/ouwehand/wxPython/Phoenix-wxPython-4.0.3/demo/Main.py", line 1308, in <module>
    class DemoTaskBarIcon(TaskBarIcon):
  File "/home/ouwehand/wxPython/Phoenix-wxPython-4.0.3/demo/Main.py", line 1309, in DemoTaskBarIcon
    TBMENU_RESTORE = wx.NewIdRef()
AttributeError: module 'wx' has no attribute 'NewIdRef'
blitzmann commented 6 years ago

That error output is a python error though, and I remember reading somewhere that 4.0.2 changed NewId() a bit. Maybe the demo wasn't updated to reflect this change? I don't have the means to test 4.0.2/3 right now so I can't know for sure.

You said you were able to get 4.0.0b2 installed, maybe try that version with it's demo (which I know to be working)? I just don't want to give up, because if there is indeed an issue with wxPython/wxWidgerts, it'll be good to report that upstream so that they can fix it. :)

Bazzek commented 6 years ago

I just tried 4.0.0b2 with the demo and i think the error is identical

Traceback (most recent call last): File "demo.py", line 3, in import Main File "/home/ouwehand/wxPython/Phoenix-wxPython-4.0.3/demo/Main.py", line 1308, in class DemoTaskBarIcon(TaskBarIcon): File "/home/ouwehand/wxPython/Phoenix-wxPython-4.0.3/demo/Main.py", line 1309, in DemoTaskBarIcon TBMENU_RESTORE = wx.NewIdRef() AttributeError: module 'wx' has no attribute 'NewIdRef'

(but maybe my prescription glasses need work)

Bazzek commented 6 years ago

hold on, i have not done the requirements... lemme fix this

EDIT: okay, that didn't matter one bit

blitzmann commented 6 years ago

@Bazzek if you're using 4.0.0b2, you have to use that versions demo. look like you're still stemmpting to use 4.0.3 /Phoenix-wxPython-4.0.3/demo/Main.py

try this: https://github.com/wxWidgets/Phoenix/releases/tag/wxPython-4.0.0b2

Bazzek commented 6 years ago

I should have, you are correct. Now that i did i run into a very weird situation.

I have NO wxPython installed in pip, my packages on my system show NO version of wxPython installed.

I run the demo and i get a warning that i am using wxPython 4.0.1 instead of 4.0.0b2

I have no idea where it finds 4.0.1 ...

EDIT: oh shit, i had not realised that for python3 the command was pip3, not pip.... so yeah... erhm... i may not even have all requirements installed.

(if it wasn't obvious, i never do anything with Python other then running programs :))

Bazzek commented 6 years ago

With the requirements installed in pip3 and using 4.0.0b2 it works perfectly as expected.

Will try the 4.0.3 as well, but somehow i am certain it will work.

Please change the tag from linux to pebkac (problem exists between keyboard and chair)

Bazzek commented 6 years ago

/rage at python and pip and pip3...

4.0.3 works flawlessly as well assuming you use pip3 to install the requirements...

Okay, closing this issue since it is obviously pebkac here and i will go sit ashamed at my desk for the rest of the day.

Thanks for the help and patience though, truly appreciated :)

minlexx commented 6 years ago

@Bazzek since release 2.0 pyfa uses python3, so you have to launch it using python3, not python, and also install requirements using pip3, not pip. (python and pip use python version 2, you may check with python -V and pip -V). And python3 version should be >= 3.6, I think.

Instead of using pip3 I personally think it is more clear to use python3 -m pip, because if you have several versions of python3 installed, like I did, pip3 may be a symlink to a different version (pip3.7 for example) and python3 may be a symlink for example to python3.6. I have /usr/local/bin/python3.6 and /usr/local/bin/python3.7 and to avoid confusion I explicitly launch pyfa with /usr/local/bin/python3.6 and install requirements using exactly the same interpreter /usr/local/bin/python3.6 -m pip install --user ....

Bazzek commented 6 years ago

It makes complete sense now that i had a crash course in python :) But before i was just a simple python user and unaware of this trickery :)

blitzmann commented 6 years ago

Awesome news that your figured it out :D Happy fitting!