jimmejardine / qiqqa-open-source

The open-sourced version of the award-winning Qiqqa research management tool for Windows
GNU General Public License v3.0
373 stars 61 forks source link

Qiqqa Premium / Windows: qiqqa does not recall qiqqa window *maximized* window size #8

Closed GerHobbelt closed 5 years ago

GerHobbelt commented 5 years ago

See also: https://getsatisfaction.com/qiqqa/topics/qiqqa-premium-windows-qiqqa-does-not-recall-qiqqa-window-maximized-window-size

Qiqqa v79 Premium / Windows 10: qiqqa does not remember/restore qiqqa window maximized size, hence qiqqa does not correctly restore window size on app restart.

How to reproduce:

This will correctly position the qiqqa window in the top/left screen corner, but the qiqqa window size will be wrong (too small) and not maximized.

(emphasis on the and there as you can store the window position+size, but when you don't store 'maximized/minimized' states as well, you will not recover the non-maximized window size when user is in the habit of maximizing/un-maximizing app window depending on user work activity.)

Aside question: is this purely a premium bug? (I don't remember if window position/size recall is a premium feature and am too lazy to check right now... ;-) )

[EDIT 2019/07] As the open source version of Qiqqa includes premium features, this is still applicable.

GerHobbelt commented 5 years ago

Running v80 (github release commit https://github.com/jimmejardine/qiqqa-open-source/commit/77469ba19d8e3f61f41d150d703a757d74bdda59) qiqqa and the problem persists.

Also observed (as with v78-79 releases previously) and maybe related: when closing/exiting Qiqqa, it keeps running in background at about 25% load (on a quadcore CPU): only opening Windows Task Manager and 'End Task' killing it will stop Qiqqa. (Note: I have let it run for 2 days in the background like that for v79 a few months ago to see if it would terminate by itself; haven't done that test on v80 as I installed only about an hour ago. 😅 )

GerHobbelt commented 5 years ago

Further looking into that last bit (Qiqqa not stopping): from the log file(s) at C:\Users\Ger\AppData\Local\Quantisle\Qiqqa\Logs directory:

A whole slew of log lines which start/look like this one:

20190730.202118 INFO [Daemon.Maintainable:BackgroundWorkerDaemon.DoMaintenance_Infrequent]

while the session starts with this bunch:

20190730.202118 DEBUG [Daemon.Maintainable:BackgroundWorkerDaemon.DoMaintenance_Infrequent] Got 22708 items of metadata extraction work

20190730.202128 INFO [Main] Loading EZProxy proxy information from C:\Program Files (x86)\Qiqqa\WebBrowsing\EZProxy\proxies.json

20190730.202128 INFO [Main] Loaded 210 EZProxy proxies

20190730.202146 DEBUG [Daemon.Maintainable:BackgroundWorkerDaemon.DoMaintenance_Infrequent] Using calculated PDF page count

20190730.202146 DEBUG [Daemon.Maintainable:BackgroundWorkerDaemon.DoMaintenance_Infrequent] +CountPDFPages_Sorax: D:\Qiqqa\base\Guest\documents\8\854DB2C1423537DC5F2028E4FA6C444ECAB988B.pdf

20190730.202146 WARN [Daemon.Maintainable:BackgroundWorkerDaemon.DoMaintenance_Infrequent] Error while counting pages in CountPDFPages_Sorax

System.Exception: There was a problem opening the PDF 'D:\Qiqqa\base\Guest\documents\8\854DB2C1423537DC5F2028E4FA6C444ECAB988B.pdf' at Utilities.PDF.Sorax.SoraxPDFRendererDLLWrapper.HDOCWrapper..ctor(String filename, String pdf_user_password, String pdf_owner_password) at Utilities.PDF.Sorax.SoraxPDFRendererDLLWrapper.GetPageCount(String filename, String pdf_user_password, String pdf_owner_password) at Qiqqa.Documents.PDF.PDFRendering.PDFTools.CountPDFPages_Sorax(String filename)

20190730.202146 INFO [Daemon.Maintainable:BackgroundWorkerDaemon.DoMaintenance_Infrequent] Loaded assembly: Syncfusion.Pdf.ClientProfile, Version=14.1400.0.41, Culture=neutral, PublicKeyToken=3d67ed1f87d44c89

20190730.202146 DEBUG [Daemon.Maintainable:BackgroundWorkerDaemon.DoMaintenance_Infrequent] +CountPDFPages_Syncfusion

20190730.202147 WARN [Daemon.Maintainable:BackgroundWorkerDaemon.DoMaintenance_Infrequent] Error while counting pages in CountPDFPages_Syncfusion

System.ArgumentException: Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection. at System.IO.FileStream.Read(Byte[] array, Int32 offset, Int32 count) at Syncfusion.Pdf.IO.CrossTable.CheckJunk() at Syncfusion.Pdf.IO.CrossTable..ctor(Stream docStream, PdfCrossTable crossTable) at Syncfusion.Pdf.IO.PdfCrossTable..ctor(Stream docStream) at Syncfusion.Pdf.Parsing.PdfLoadedDocument.LoadDocument(Stream file) at Syncfusion.Pdf.Parsing.PdfLoadedDocument..ctor(Stream file) at Qiqqa.Documents.PDF.PDFRendering.PDFTools.CountPDFPages_Syncfusion(String filename)

20190730.202147 DEBUG [Daemon.Maintainable:BackgroundWorkerDaemon.DoMaintenance_Infrequent] +CountPDFPages_Jimme

20190730.202147 DEBUG [Daemon.Maintainable:BackgroundWorkerDaemon.DoMaintenance_Infrequent] +CountPDFPages_Jimme....read

20190730.202147 DEBUG [Daemon.Maintainable:BackgroundWorkerDaemon.DoMaintenance_Infrequent] -CountPDFPages (0 pages)

20190730.202151 INFO [Main] About to display client stats: Qiqqa debug statistics

(log lines above separated to make them a little easier to read)

GerHobbelt commented 5 years ago

Hm, looks like this is happening once you close Qiqqa (after hitting the 'Regenerate search index' in the tools>diagnostics qiqqa panel): seems to me my 'infrequent maintenance' Qiqqa background task is somehow hung or crashed prematurely and Qiqqa sits there waiting until forever...

These lines were logged when I hit that large 'reindex' button:

20190730.203244 WARN [Main] Invalidating Lucene index at D:\Qiqqa\base\Guest\index\ 20190730.203244 WARN [Main] Invalidating Lucene index at D:\Qiqqa\base\INTRANET_0D4E8DC2-412B-461D-B359-63E40F1359B9\index\ 20190730.203244 INFO [Main] Please restart Qiqqa for your indices to be rebuilt.

and then these were appending after closing Qiqqa by clicking the red X at top-right (closing qiqqa window):

20190730.203331 INFO [Main] Saving configuration 20190730.203331 INFO [Main] Saved configuration 20190730.203331 INFO [Main] +Setting user agent 20190730.203331 INFO [Main] -Setting user agent 20190730.203331 INFO [Main] Setting DEFAULT for GeckoFX 20190730.203331 INFO [Main] Screen position stored as 51.2|51.2 20190730.203331 INFO [Main] Tabbed manager is disposing of window Home (F1) 20190730.203331 INFO [Main] Disposing ChatControl 20190730.203332 INFO [Main] +Explicitly shutting down application 20190730.203332 INFO [Main] -Explicitly shutting down application 20190730.203332 INFO [Main] ShutdownableManager is shutting down all shutdownables: 20190730.203332 INFO [Main] ShutdownableManager is shutting down Qiqqa.Common.Configuration.ConfigurationManager 20190730.203332 INFO [Main] ConfigurationManager is saving the configuration at shutdown 20190730.203332 INFO [Main] Saving configuration 20190730.203332 INFO [Main] Saved configuration 20190730.203332 INFO [Main] ShutdownableManager is shutting down Utilities.Maintainable.MaintainableManager 20190730.203332 INFO [Main] Stopping MaintainableManager 20190730.203333 INFO [Main] Waiting for Maintainable Qiqqa.Common.BackgroundWorkerDaemonStuff.BackgroundWorkerDaemon:DoMaintenance_Infrequent to terminate. 20190730.203334 INFO [Main] Waiting for Maintainable Qiqqa.Common.BackgroundWorkerDaemonStuff.BackgroundWorkerDaemon:DoMaintenance_Infrequent to terminate. 20190730.203335 INFO [Main] Waiting for Maintainable Qiqqa.Common.BackgroundWorkerDaemonStuff.BackgroundWorkerDaemon:DoMaintenance_Infrequent to terminate. 20190730.203336 INFO [Main] Waiting for Maintainable Qiqqa.Common.BackgroundWorkerDaemonStuff.BackgroundWorkerDaemon:DoMaintenance_Infrequent to terminate. 20190730.203337 INFO [Main] Waiting for Maintainable Qiqqa.Common.BackgroundWorkerDaemonStuff.BackgroundWorkerDaemon:DoMaintenance_Infrequent to terminate. 20190730.203338 INFO [Main] Waiting for Maintainable Qiqqa.Common.BackgroundWorkerDaemonStuff.BackgroundWorkerDaemon:DoMaintenance_Infrequent to terminate. 20190730.203339 INFO [Main] Waiting for Maintainable Qiqqa.Common.BackgroundWorkerDaemonStuff.BackgroundWorkerDaemon:DoMaintenance_Infrequent to terminate. 20190730.203340 INFO [Main] Waiting for Maintainable Qiqqa.Common.BackgroundWorkerDaemonStuff.BackgroundWorkerDaemon:DoMaintenance_Infrequent to terminate. 20190730.203341 INFO [Main] Waiting for Maintainable Qiqqa.Common.BackgroundWorkerDaemonStuff.BackgroundWorkerDaemon:DoMaintenance_Infrequent to terminate. 20190730.203342 INFO [Main] Waiting for Maintainable Qiqqa.Common.BackgroundWorkerDaemonStuff.BackgroundWorkerDaemon:DoMaintenance_Infrequent to terminate. 20190730.203343 INFO [Main] Waiting for Maintainable Qiqqa.Common.BackgroundWorkerDaemonStuff.BackgroundWorkerDaemon:DoMaintenance_Infrequent to terminate. 20190730.203344 INFO [Main] Waiting for Maintainable Qiqqa.Common.BackgroundWorkerDaemonStuff.BackgroundWorkerDaemon:DoMaintenance_Infrequent to terminate. 20190730.203345 INFO [Main] Waiting for Maintainable Qiqqa.Common.BackgroundWorkerDaemonStuff.BackgroundWorkerDaemon:DoMaintenance_Infrequent to terminate. 20190730.203346 INFO [Main] Waiting for Maintainable Qiqqa.Common.BackgroundWorkerDaemonStuff.BackgroundWorkerDaemon:DoMaintenance_Infrequent to terminate. 20190730.203347 INFO [Main] Waiting for Maintainable Qiqqa.Common.BackgroundWorkerDaemonStuff.BackgroundWorkerDaemon:DoMaintenance_Infrequent to terminate. 20190730.203348 INFO [Main] Waiting for Maintainable Qiqqa.Common.BackgroundWorkerDaemonStuff.BackgroundWorkerDaemon:DoMaintenance_Infrequent to terminate. 20190730.203349 INFO [Main] Waiting for Maintainable Qiqqa.Common.BackgroundWorkerDaemonStuff.BackgroundWorkerDaemon:DoMaintenance_Infrequent to terminate. 20190730.203350 INFO [Main] Waiting for Maintainable Qiqqa.Common.BackgroundWorkerDaemonStuff.BackgroundWorkerDaemon:DoMaintenance_Infrequent to terminate. 20190730.203351 INFO [Main] Waiting for Maintainable Qiqqa.Common.BackgroundWorkerDaemonStuff.BackgroundWorkerDaemon:DoMaintenance_Infrequent to terminate. 20190730.203352 INFO [Main] Waiting for Maintainable Qiqqa.Common.BackgroundWorkerDaemonStuff.BackgroundWorkerDaemon:DoMaintenance_Infrequent to terminate. 20190730.203353 INFO [Main] Waiting for Maintainable Qiqqa.Common.BackgroundWorkerDaemonStuff.BackgroundWorkerDaemon:DoMaintenance_Infrequent to terminate. 20190730.203354 INFO [Main] Waiting for Maintainable Qiqqa.Common.BackgroundWorkerDaemonStuff.BackgroundWorkerDaemon:DoMaintenance_Infrequent to terminate. 20190730.203355 INFO [Main] Waiting for Maintainable Qiqqa.Common.BackgroundWorkerDaemonStuff.BackgroundWorkerDaemon:DoMaintenance_Infrequent to terminate. 20190730.203356 INFO [Main] Waiting for Maintainable Qiqqa.Common.BackgroundWorkerDaemonStuff.BackgroundWorkerDaemon:DoMaintenance_Infrequent to terminate. 20190730.203357 INFO [Main] Waiting for Maintainable Qiqqa.Common.BackgroundWorkerDaemonStuff.BackgroundWorkerDaemon:DoMaintenance_Infrequent to terminate. 20190730.203358 INFO [Main] Waiting for Maintainable Qiqqa.Common.BackgroundWorkerDaemonStuff.BackgroundWorkerDaemon:DoMaintenance_Infrequent to terminate. 20190730.203359 INFO [Main] Waiting for Maintainable Qiqqa.Common.BackgroundWorkerDaemonStuff.BackgroundWorkerDaemon:DoMaintenance_Infrequent to terminate. 20190730.203400 INFO [Main] Waiting for Maintainable Qiqqa.Common.BackgroundWorkerDaemonStuff.BackgroundWorkerDaemon:DoMaintenance_Infrequent to terminate. 20190730.203401 INFO [Main] Waiting for Maintainable Qiqqa.Common.BackgroundWorkerDaemonStuff.BackgroundWorkerDaemon:DoMaintenance_Infrequent to terminate. 20190730.203402 INFO [Main] Waiting for Maintainable Qiqqa.Common.BackgroundWorkerDaemonStuff.BackgroundWorkerDaemon:DoMaintenance_Infrequent to terminate. 20190730.203403 INFO [Main] Waiting for Maintainable Qiqqa.Common.BackgroundWorkerDaemonStuff.BackgroundWorkerDaemon:DoMaintenance_Infrequent to terminate.

(...continues ad infinitum)

GerHobbelt commented 5 years ago

Given those logs from the start and end of the Qiqqa run, it looks to me like the crash during start on the PDF page count there somehow nuked the background process and resulted in Qiqqa getting stuck at the end waiting for the background task there.

GerHobbelt commented 5 years ago

Not fixed to my satisfaction in #33, but partway there.

It's the maximized bit that's still not working and then there's Qiqqa who sometimes seems to be hipping around like a disobedient little recalcitrant frog on startup. 😞

GerHobbelt commented 5 years ago

Closing and decluttering the issue list so it stays workable for me: fixed in https://github.com/GerHobbelt/qiqqa-open-source mainline=master branch, pending #15 / any maintainer rights/actions.