pyfa-org / Pyfa

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

Error message on delete fit #1176

Closed Folles closed 7 years ago

Folles commented 7 years ago

Bug Report

OS version: Windows-7-6.1.7601-SP1 Python: 2.7.10 wxPython: 3.0.2.0 SQLAlchemy: 1.0.5 Logbook: 1.0.0 pyfa version: 1.29.2 Stable - YC119.5 1.0 pyfa root: E:\Giochi\EVE ONLINE\PYFA save path: C:\Users\Nimrod.pyfa fs encoding: mbcs

EXCEPTION: String or Unicode type required

File "E:\Giochi\EVE ONLINE\PYFA\library.zip\gui\projectedView.py", line 213, in fitChanged self.update(stuff) File "E:\Giochi\EVE ONLINE\PYFA\library.zip\gui\display.py", line 293, in update self.refresh(stuff) File "E:\Giochi\EVE ONLINE\PYFA\library.zip\gui\display.py", line 254, in refresh colItem.SetText(newText) File "C:\python-2.7.10\lib\site-packages\wx-3.0-msw\wx_controls.py", line 4190, in SetText

BUG REPORT N.2

OS version: Windows-7-6.1.7601-SP1 Python: 2.7.10 wxPython: 3.0.2.0 SQLAlchemy: 1.0.5 Logbook: 1.0.0 pyfa version: 1.29.2 Stable - YC119.5 1.0 pyfa root: E:\Giochi\EVE ONLINE\PYFA save path: C:\Users\Nimrod.pyfa fs encoding: mbcs

EXCEPTION: Class 'builtin.NoneType' is not mapped

File "E:\Giochi\EVE ONLINE\PYFA\library.zip\gui\sfBrowserItem.py", line 317, in OnLeftUp btn.DoCallback() File "E:\Giochi\EVE ONLINE\PYFA\library.zip\gui\sfBrowserItem.py", line 50, in DoCallback self.callback() File "E:\Giochi\EVE ONLINE\PYFA\library.zip\gui\shipBrowser.py", line 1802, in deleteBtnCB self.deleteFit() File "E:\Giochi\EVE ONLINE\PYFA\library.zip\gui\shipBrowser.py", line 1814, in deleteFit sFit.deleteFit(self.fitID) File "E:\Giochi\EVE ONLINE\PYFA\library.zip\service\fit.py", line 183, in deleteFit if projection.victim_fit in eos.db.saveddata_session: # GH issue #359 File "C:\python-2.7.10\lib\site-packages\sqlalchemy\orm\session.py", line 1956, in contains

Expected behavior:

on deleting auguror fit, error shouldn't appear.

Actual behavior:

On deleting auguror fit, error pops up, fit that should be deleted still appears on the list, the remove button doesn't work anymore.

Detailed steps to reproduce:

Make an auguror fit, project it onto itself, delete the fit.

Fits involved in EFT format (Edit > To Clipboard > EFT):

[Augoror, Auguror v.1]

1600mm Rolled Tungsten Compact Plates Energized Adaptive Nano Membrane II Energized Adaptive Nano Membrane II Energized Explosive Membrane II Energized Kinetic Membrane II

F-90 Compact Sensor Booster F-90 Compact Sensor Booster 10MN Monopropellant Enduring Afterburner

Medium Solace Scoped Remote Armor Repairer Medium Solace Scoped Remote Armor Repairer Medium Solace Scoped Remote Armor Repairer Small Remote Armor Repairer II Medium 'Regard' Remote Capacitor Transmitter

Medium Trimark Armor Pump I Medium Ancillary Current Router II Medium Ancillary Current Router I

Light Hull Maintenance Bot I x4

Nanite Repair Paste x100 Targeting Range Script x2 Scan Resolution Script x2 ECCM Script x2

Release or development git branch? Please note the release version or commit hash:

Operating system and version (eg: Windows 10, OS X 10.9, OS X 10.11, Ubuntu 16.10):

See bug report

Other relevant information:

Rarilmar commented 7 years ago

Just the error message but not app crash, same here trough.

blitzmann commented 7 years ago

Can either of you get this to reproduce consistently? It's been difficult to track this bug down as I can't reproduce myself - I've tried a few blind attempts, but they mostly cover up the issue rather than fix it. What's happening is that you have a list of projected fits in the projected view when there shouldn't be. I have a feeling it has to do with self-projected fits - . When deleting the fit, it seems that we are trying to refresh the projected view when things may not be deleted yet... it still sees a fit there and tries to display it. Can you guys try to reproduce and let me know? If you guys can reproduce, then I can get you a build that has some special logging that would be beneficial to troubleshooting the root cause of the issue :)

The actual error here is an easy fix - I forgot to return a string when trying out another fix for this and it expects a string. Something like "<blank>" would work, since I believe it wouldn't display anyway since the page will destroy on fit delete. Worst case scenario, that should work. I'll be taking a larger look at the fit deletion process to try to pinpoint the issues that have cropped up with it. Thanks for the bug report :)

Rarilmar commented 7 years ago

Yeah now the error is related to the fit being opened in tabs. Happens every time for me. I guess I can test a development version if u need (and if I remember to check back here lol)

blitzmann commented 7 years ago

@Rarilmar so it happens everytime you open a fit? Can you paste the error message here (has info on system versions and stuff), and take a screenshot of a fit that exhibits the issue? Can you also send me your %userprofile%/.pyfa directory zipped up to sable.blitzmann@gmail.com? That contains your user database and some log files that might prove useful.

(and if I remember to check back here lol)

Once you email me those files, I can keep in direct communication with you via email and post updates here for documentation, just so the dialog doesn't drop :)

Folles commented 7 years ago

updated reproduction steps.

Rarilmar commented 7 years ago

@blitzmann sent u a mail... btw opened pyfa to get the error and it all worked fine for a min, only crashed after I had a few fits opened and toyed around in menus a bit. I think it's some data/memory leak/corruption issue as I had similar errors while setting up my implants and while exporting/importing fits too.

maurer commented 7 years ago

I'm experiencing the same issue immediately after updating - I updated, went to delete a fit, and got this error. The program did not crash, but the fit is not deleted, and will regenerate a similar error message (the second one) if I press it again. Further attempts to delete the fit do not delete the fit, but also do not generate an issue dialog.

OS version:     Windows-8-6.2.9200
Python:     2.7.10
wxPython:   3.0.2.0
SQLAlchemy:     1.0.5
Logbook:    1.0.0
pyfa version: 1.29.2 Stable - YC119.5 1.0
pyfa root: C:\Program Files (x86)\pyfa
save path: C:\Users\maurer\.pyfa
fs encoding: mbcs

EXCEPTION: 'NoneType' object has no attribute 'ship'

  File "C:\Program Files (x86)\pyfa\library.zip\gui\builtinViews\fittingView.py", line 78, in fitSelected
    view.fitSelected(event)
  File "C:\Program Files (x86)\pyfa\library.zip\gui\builtinViews\fittingView.py", line 303, in fitSelected
    self.updateTab()
  File "C:\Program Files (x86)\pyfa\library.zip\gui\builtinViews\fittingView.py", line 316, in updateTab
    bitmap = BitmapLoader.getImage("race_%s_small" % fit.ship.item.race, "gui")
OS version:     Windows-8-6.2.9200
Python:     2.7.10
wxPython:   3.0.2.0
SQLAlchemy:     1.0.5
Logbook:    1.0.0
pyfa version: 1.29.2 Stable - YC119.5 1.0
pyfa root: C:\Program Files (x86)\pyfa
save path: C:\Users\maurer\.pyfa
fs encoding: mbcs

EXCEPTION: 'NoneType' object has no attribute 'ID'

  File "C:\Program Files (x86)\pyfa\library.zip\gui\sfBrowserItem.py", line 317, in OnLeftUp
    btn.DoCallback()
  File "C:\Program Files (x86)\pyfa\library.zip\gui\sfBrowserItem.py", line 50, in DoCallback
    self.callback()
  File "C:\Program Files (x86)\pyfa\library.zip\gui\shipBrowser.py", line 1802, in deleteBtnCB
    self.deleteFit()
  File "C:\Program Files (x86)\pyfa\library.zip\gui\shipBrowser.py", line 1814, in deleteFit
    sFit.deleteFit(self.fitID)
  File "C:\Program Files (x86)\pyfa\library.zip\service\fit.py", line 172, in deleteFit
    eos.db.remove(fit)
  File "C:\Program Files (x86)\pyfa\library.zip\eos\db\saveddata\queries.py", line 534, in remove
    removeCachedEntry(type(stuff), stuff.ID)
blitzmann commented 7 years ago

I'm going to be including a fix that hopefully takes care of these issues. No guarantees - I've still be unable to reproduce these myself, so I'm going by error messages.

@maurer you say that you're able to consistently reproduce every time you try to delete a fit? Would you mind emailing your %userprofile%/.pyfa/saveddata.db file to sable.blitzmann@gmail.com? The errors you're giving are different from the rest of the thread, and so I'm wondering if it's something else going on. Would like to open direct communication with you via email or slack to try to track you issue down.