Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

does not shut down at exit (v79) #112

Closed
monica80 opened this issue Oct 17, 2019 · 5 comments
Closed

does not shut down at exit (v79) #112

monica80 opened this issue Oct 17, 2019 · 5 comments
Labels
🐛bug Something isn't working
Projects
Milestone

Comments

@monica80
Copy link

Qiqqa20191017-did-not-shut-down.log

When I exit Qiqqa v79, it appears to shut down but it keeps running in the background. I have to use Task Manager to manually End Task. Then I can restart Qiqqa. Attached the last bit of the qiqqa log, in case that's helpful.

Any help will be appreciated. (note: previously posted on the qiqqa help forum)

@GerHobbelt GerHobbelt added the 🐛bug Something isn't working label Oct 18, 2019
@GerHobbelt GerHobbelt added this to the v82 milestone Oct 18, 2019
@GerHobbelt
Copy link
Collaborator

Thanks for reporting this issue and the included log file! 👍

(Related issues/cause of issue: #10, #11, #13 )

This is a known problem with Qiqqa v79. Most often the culprit is a PDF document in one of your libraries which triggers the issue.

The bad news is it's pretty tough to find out which one it is (some times there's even more than one) and besides, that PDF was downloaded/imported for a reason so removing it from the library is not really an option unless the PDF itself is corrupted (can happen during download, while working in the Sniffer, but there are also completely valid PDFs out there which will b0rk v79).

The good news is work is being done on a new Qiqqa release which should not exhibit this problem, but there are still a few issues there which I need to resolve involving some of the new features (#82), before this new version is sufficiently usable.

When you feel a little adventurous:

There's an experimental prerelease (v82pre3) available at https://github.com/GerHobbelt/qiqqa-open-source/releases which should resolve this issue, but that release has a UX issue (#82) which can be circumvented if you know what to do precisely or when BibTeX editing in the Qiqqa Sniffer is not important for your workflow.

The GerHobbelt repo is where the experimental stuff is published; more solid beta/final
releases will be released at https://github.com/jimmejardine/qiqqa-open-source/releases
but those will take quite a while longer to show up as Qiqqa is going through a bit of an overhaul.

IFF you decide to install v82pre3, do note that:

  • you should sync your Qiqqa Web Libraries before upgrading from v79: only Commercial Qiqqa releases (up to v79) are able to sync the web libraries with the Qiqqa Cloud, i.e. your Qiqqa account at http://www.qiqqa.com/Libraries

    This sync-before-upgrading ensures (if you collaborate on a Qiqqa library) that your local copy of these Qiqqa Library/libraries is up to date. No need to sync when you know you already have the latest in Qiqqa on your local machine.

  • Qiqqa Open Source will find these local copies of the Web Libraries and auto-name them as Legacy WebLibrary - {cryptic GUID code} -- unfortunately Qiqqa Open Source does not name them like you have been used to with Commercial Qiqqa.

    While Qiqqa Open Source will not be able to sync such a library to the Qiqqa Cloud, you can continue working on it locally.

    When you downgrade from v82 to v79 you can resync the library as v82 and v79 are binary compatible in their library formats, so that might serve as a temporary work-around when you collaborate on a Qiqqa Web/Cloud Library.

  • as mentioned at the v82pre3 install page on the github site, if you don't like it, you can always downgrade again afterwards to v79 by downloading that installer and installing it as usual: the v79 installer will report v82 as being "older" and then perform an "upgrade", which will re-install v79 on your machine.

GerHobbelt added a commit to GerHobbelt/qiqqa-open-source that referenced this issue Oct 19, 2019
…help speed up closing the application (related to jimmejardine#112). Also add thread-safety around the variables/data which cross thread boundaries.
GerHobbelt added a commit to GerHobbelt/qiqqa-open-source that referenced this issue Oct 22, 2019
…ardine#112 ); PDF/OCR threads got locked up via WaitForUIThreadActivityDone() call inside a lock, which would indirectly result in other threads to run into that lock and the main thread locked up in WM message pipe handling triggering a FORCED FLUSH, which, under the hood, would run into that same lock and thus block forever. The lock footprint has been significantly reduced as we can do now that we already have made PDFDocument largely thread-safe ( jimmejardine#101 ).

Also moved the Application Shutting Down signalling forward in time: already signal this when the user/run-time zips through the 'Do you really want to exit' dialog, i.e. near the end of the Closing event for the main window.

`WaitForUIThreadActivityDone` now does not sit inside a lock any more so everyone is free to call it, while in shutdown state, when the WM message pipe is untrustworthy, we leave the relinquishing to standard lib `Thread.Sleep(50)` to cope with: the small delay should be negligible while we are guaranteed to not run into issues around the exact message pipe state: we also ran into issues invoking some flush/actions via a Dispatcher while the app was clearly shortly into shutdown, so we try to be safe there too.

Also patched the StatusManager to not clutter the message pipeline at shutdown by NOT showing any status updates in the UI any more once the user has closed the app window. The status messages will continue to be logged as usual, we only do *not* try to update UI any more. This saves a bundle in cross-thread dispatches in the termination phase of the app when large numbers of pending changes and/or libraries are flushed to disk.
GerHobbelt added a commit to GerHobbelt/qiqqa-open-source that referenced this issue Oct 27, 2019
- refactor the application termination handling in various parts of the application.
- Long-running tasks (such as 'gather and save to disk') MUST NOT be done in the UI thread, while that main thread should be kept alive and responsive.
  + Hence cleanup & shutdown actions are relegated to a SafeThreadPool background task, while such cleanup/shutdown actions are flagged as 'not short-circuited at application shutdown time'.
  + Pending tasks (also in SafeThreadPool) are BY DEFAULT marked as short-circuit-able at shutdown time so that not only the PDFOCR job queue but also arbitrary pending background tasks queued in the SafeThreadPool are skipped=short-circuited at shutdown time to reduce the amount of time it takes to quit/exit Qiqqa.
- The maximum 'reasonable wait time for threads to terminate at application shudown' has been set at 15 seconds. That number was *guestimated* as reasonable while testing a rig with 40K+ documents managed by Qiqqa. When this timeout is reached by any monitored background threads, then those threads are forcibly *aborted* as apparently their shutdown detection hasn't been functioning. Keep in mind to keep this timeout relatively high as, for instance, Lucene index saving can take a significant amount of time for large libraries (like the 40K+ one I'm testing with)
- `Utilities.Shutdownable.ShutdownableManager.Instance.IsShuttingDown` is refactored to now be the end-all in answering whether Qiqqa is in the process of shutting down/terminating.
- fixed several memleaks by wrapping IDisposable class instances in `using(){...}` statements: particularly Lucene/search-index based code had several spots where the DevStudio Code Analysis has failed to ever report these, while it did find many others before (when we started working on Qiqqa).
- make Maintainable/MaintainableManager.cs code properly thread-safe by adding appropriate locks around minimal critical sections in order to prevent shutdown activity from being interfered with.
@GerHobbelt GerHobbelt added this to To do in TODO list via automation Oct 27, 2019
@GerHobbelt GerHobbelt moved this from To do to In progress in TODO list Oct 27, 2019
GerHobbelt added a commit to GerHobbelt/qiqqa-open-source that referenced this issue Oct 27, 2019
- memleak prevention via `using(){...}` of IDisposable
GerHobbelt added a commit to GerHobbelt/qiqqa-open-source that referenced this issue Oct 31, 2019
…ormance improvements work:

- fixed jimmejardine#121 : this happened due to a slightly over-eager `Dispose()` I introduced previously (:-() which reset the BibTeX content to an empty string, followed up immediately by a still-registered change event handler, which would communicate this 'change' to anyone listening, thus nuking the BibTeX metadata for the given Document.
- fixed jimmejardine#82 : part of that work has been done in earlier commits, where the size of of the editor panel (**height**) is designed to stick with the size of the 'fields editor mode' subpanel height so as not to jump up & down while you toggle edit modes. Also done in earlier commits: the RAW editor *wraps* the BibTeX text data so there's no need for a *horizontal* scroller any more; this should make diting in RAW mode a little more palatable, at least it is in my own experience.
- Just like commit SHA-1: a540e50, there's more IDisposable work done following the new DevStudio Code Analysis reports while I was hunting memory leaks and hunting down causes of jimmejardine#112
- Tweaked the initial library scan to first search all Qiqqa 'known_web_libraries' config files it can find in the Qiqqa libraries' **base directory**: this should help folks (like me) who wish to recover their old/crashing Qiqqa libraries, which previously would cause Qiqqa v79 and earlier Commercial Versions to crash in all sorts of spectacular ways - mostly due to buggy PDF documents sneaking into the libraries via Sniffer download b0rks and other sources of rottenness (such as the websites themselves).
  The positive effect of this change should be a stable list of libraries with as many of the original Web Libraries' Names restored as possible.
- All libraries are flagged Read/Write instead of marking 'Web Libraries' as ReadOnly, which would block any editing/updating of those libs. As Open Source Qiqqa does not support Commercial Web Libraries in the way they were meant before (as syncable Qiqqa-based Cloud storage), you're working on 'independent copies' anyway, while we have to come up with other means to sync libraries like that. As these buggers can grow huge (mine is 20GB+), free cloud solutions (OneDrive, DropBox, etc.) with their 5GB limits are not a truely viable option. Alas, something to think about. **TODO**
- Done another Code Review, scanning for all sorts of spots where the C#/.NET code needs a `using(...){...}` statement or something similar to ensure the allocated memory is actually *released when done*; this conjoins with the IDisposable work done in this commit.
- LibrarySyncManager: we now cache the PDF Document Size as we already did with the PDF Document 'File Exists' flag. This should at least reduce the running cost of subsequent invocations of the Sync Details dialog after its first run, when that data is collected.
- Performance: for large libraries, the initial load time was extreme, particularly when Qiqqa has 'remembered' that the library was open in its own Library View panel/tab. This is due to two major load factors: the BibTeX record for every document is parsed as part of deriving an AugmentedTitle and AugmentedAuthor set for display. Meanwhile, the library will be initially sorted by *date*, which took an *inordinate* amount of time as every date comparison would access and *(re)parse* the raw text date fields as obtained from the database. Now these parsed dates are cached in the PDFDocument until the cached value(s) are reset by the dates being modified within Qiqqa.
- Performance: for large libraries, the Sync Details dialog would take an extreme amount of time, with the UI *locked*. Now we set the busy bee / wait cursor to indicate work is being done, while the work has been offloaded onto a background task. Also, while the PDF Document 'File Exists' state was cached in the PDFDocument record, the *size* of the document was not and thus was (re)calculated every time the user would invoke this dialog, resulting in huge delays as thousands of files' filesize info was (re)fetched from the disk on every invocation of the dialog. This has now been alleviated at least for *subsequent invocations* as the File Size is now also cached next to the File Exists datum in PDFDocument.

- Here's the set of Code Analysis reports that were tackled in this commit:

warning CA1001: Type 'BibTeXEditorControl' owns disposable field(s) 'wdpcn' but is not disposable
warning CA1001: Type 'CSLProcessorOutputConsumer' owns disposable field(s) 'web_browser' but is not disposable
warning CA1001: Type 'FolderWatcher' owns disposable field(s) 'file_system_watcher' but is not disposable
warning CA1001: Type 'GoogleBibTexSnifferControl' owns disposable field(s) 'ObjWebBrowser, pdf_renderer_control' but is not disposable
warning CA1001: Type 'Library' owns disposable field(s) 'library_index' but is not disposable
warning CA1001: Type 'LibraryCatalogOverviewControl' owns disposable field(s) 'library_index_hover_popup' but is not disposable
warning CA1001: Type 'MainWindow' owns disposable field(s) 'ObjStartPage' but is not disposable
warning CA1001: Type 'PDFAnnotationNodeContentControl' owns disposable field(s) 'library_index_hover_popup' but is not disposable
warning CA1001: Type 'PDFDocumentNodeContentControl' owns disposable field(s) 'library_index_hover_popup' but is not disposable
warning CA1001: Type 'PDFPrinterDocumentPaginator' owns disposable field(s) 'last_document_page' but is not disposable
warning CA1001: Type 'ReadOutLoudManager' owns disposable field(s) 'speech_synthesizer' but is not disposable
warning CA1001: Type 'TagEditorControl' owns disposable field(s) 'wdpcn' but is not disposable
warning CA1044: Because property AutoArrange is write-only, either add a property getter with an accessibility that is greater than or equal to its setter or convert this property into a method.
warning CA1044: Because property ConciseView is write-only, either add a property getter with an accessibility that is greater than or equal to its setter or convert this property into a method.
warning CA1044: Because property DatesVisible is write-only, either add a property getter with an accessibility that is greater than or equal to its setter or convert this property into a method.
warning CA1044: Because property DefaultWebSearcherKey is write-only, either add a property getter with an accessibility that is greater than or equal to its setter or convert this property into a method.
warning CA1044: Because property Entries is write-only, either add a property getter with an accessibility that is greater than or equal to its setter or convert this property into a method.
warning CA1044: Because property ImagePath is write-only, either add a property getter with an accessibility that is greater than or equal to its setter or convert this property into a method.
warning CA1044: Because property Items is write-only, either add a property getter with an accessibility that is greater than or equal to its setter or convert this property into a method.
warning CA1044: Because property Library is write-only, either add a property getter with an accessibility that is greater than or equal to its setter or convert this property into a method.
warning CA1044: Because property OnAddedOrSkipped is write-only, either add a property getter with an accessibility that is greater than or equal to its setter or convert this property into a method.
warning CA1044: Because property PageNumber is write-only, either add a property getter with an accessibility that is greater than or equal to its setter or convert this property into a method.
warning CA1044: Because property PaperSet is write-only, either add a property getter with an accessibility that is greater than or equal to its setter or convert this property into a method.
warning CA1044: Because property PDFAnnotation is write-only, either add a property getter with an accessibility that is greater than or equal to its setter or convert this property into a method.
warning CA1044: Because property PDFDocument is write-only, either add a property getter with an accessibility that is greater than or equal to its setter or convert this property into a method.
warning CA1044: Because property TagsTitleVisibility is write-only, either add a property getter with an accessibility that is greater than or equal to its setter or convert this property into a method.
warning CA1052: Type 'AlternativeToReminderNotification' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'BookmarkManager' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'Choices' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'CitationFinder' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'CSLProcessor' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'EndnoteImporter' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'ExpeditionBuilder' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'ExportingTools' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'Features' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'GeckoInstaller' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'GeckoManager' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'IdentifierImplementations' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'ImportingIntoLibrary' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'Interop' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'LibraryExporter' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'LibraryPivotReportBuilder' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'LibrarySearcher' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'LibraryStats' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'ListFormattingTools' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'MainEntry' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'MendeleyImporter' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'MYDBlockReader' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'PDFCoherentTextExtractor' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'PDFDocumentTagCloudBuilder' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'PDFMetadataExtractor' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'PDFMetadataInferenceFromOCR' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'PDFMetadataInferenceFromPDFMetadata' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'PDFMetadataSerializer' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'PDFPrinter' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'PDFSearcher' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'PDFTools' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'QiqqaManualTools' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'RecentlyReadDocumentManager' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'SampleMaterial' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'ScreenSize' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'SimilarAuthors' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'StandardHighlightColours' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'SyncConstants' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'TempDirectoryCreator' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'UpgradeManager' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'VanillaReferenceCreating' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'WebLibraryDocumentLocator' is a static holder type but is neither static nor NotInheritable
warning CA1052: Type 'WebsiteAccess' is a static holder type but is neither static nor NotInheritable
warning CA1063: Ensure that 'BrainstormControl.Dispose' is declared as protected, virtual, and unsealed.
warning CA1063: Ensure that 'ChatControl.Dispose' is declared as protected, virtual, and unsealed.
warning CA1063: Ensure that 'CSLProcessorOutputConsumer.Dispose' is declared as protected, virtual, and unsealed.
warning CA1063: Ensure that 'FolderWatcher.Dispose' is declared as protected, virtual, and unsealed.
warning CA1063: Ensure that 'LibraryIndex.Dispose' is declared as protected, virtual, and unsealed.
warning CA1063: Ensure that 'LibraryIndexHoverPopup.Dispose' is declared as protected, virtual, and unsealed.
warning CA1063: Ensure that 'MainWindow.Dispose' is declared as protected, virtual, and unsealed.
warning CA1063: Ensure that 'PDFReadingControl.Dispose' is declared as protected, virtual, and unsealed.
warning CA1063: Ensure that 'PDFRendererControl.Dispose' is declared as protected, virtual, and unsealed.
warning CA1063: Ensure that 'ReadOutLoudManager.Dispose' is declared as protected, virtual, and unsealed.
warning CA1063: Ensure that 'ReportViewerControl.Dispose' is declared as protected, virtual, and unsealed.
warning CA1063: Ensure that 'SceneRenderingControl.Dispose' is declared as protected, virtual, and unsealed.
warning CA1063: Ensure that 'SpeedReadControl.Dispose' is declared as protected, virtual, and unsealed.
warning CA1063: Ensure that 'StartPageControl.Dispose' is declared as protected, virtual, and unsealed.
warning CA1063: Ensure that 'TagEditorControl.Dispose' is declared as protected, virtual, and unsealed.
warning CA1063: Ensure that 'WebBrowserControl.Dispose' is declared as protected, virtual, and unsealed.
warning CA1063: Ensure that 'WebBrowserHostControl.Dispose' is declared as protected, virtual, and unsealed.
warning CA1721: The property name 'Annotations' is confusing given the existence of method 'GetAnnotations'. Rename or remove one of these members.
warning CA1802: Field 'XXXXXX' is declared as 'readonly' but is initialized with a constant value. Mark this field as 'const' instead.
warning CA1812: XXXXXX is an internal class that is apparently never instantiated. If so, remove the code from the assembly. If this class is intended to contain only static members, make it static (Shared in Visual Basic).
warning CA1827: Count() is used where Any() could be used instead to improve performance.
warning CA2000: Call System.IDisposable.Dispose on object created by 'Instance.OpenNewBrainstorm()' before all references to it are out of scope.
warning CA2000: Call System.IDisposable.Dispose on object created by 'MainWindowServiceDispatcher.Instance.OpenDocument(cloned_pdf_document)' before all references to it are out of scope.
warning CA2000: Call System.IDisposable.Dispose on object created by 'MainWindowServiceDispatcher.Instance.OpenDocument(ddw.pdf_document)' before all references to it are out of scope.
warning CA2000: Call System.IDisposable.Dispose on object created by 'MainWindowServiceDispatcher.Instance.OpenDocument(matching_bibtex_record.pdf_document)' before all references to it are out of scope.
warning CA2000: Call System.IDisposable.Dispose on object created by 'MainWindowServiceDispatcher.Instance.OpenDocument(out_pdf_document, out_pdf_annotation.Page)' before all references to it are out of scope.
warning CA2000: Call System.IDisposable.Dispose on object created by 'MainWindowServiceDispatcher.Instance.OpenDocument(pdf_document)' before all references to it are out of scope.
warning CA2000: Call System.IDisposable.Dispose on object created by 'MainWindowServiceDispatcher.Instance.OpenDocument(pdf_document, annotation_work.pdf_annotation.Page)' before all references to it are out of scope.
warning CA2000: Call System.IDisposable.Dispose on object created by 'MainWindowServiceDispatcher.Instance.OpenDocument(pdf_document, true)' before all references to it are out of scope.
warning CA2000: Call System.IDisposable.Dispose on object created by 'MainWindowServiceDispatcher.Instance.OpenDocument(pdf_document_node_content.PDFDocument)' before all references to it are out of scope.
warning CA2000: Call System.IDisposable.Dispose on object created by 'MainWindowServiceDispatcher.Instance.OpenDocument(PDFDocumentBindable.Underlying, LibraryCatalogControl.FilterTerms)' before all references to it are out of scope.
warning CA2000: Call System.IDisposable.Dispose on object created by 'MainWindowServiceDispatcher.Instance.OpenDocument(PDFDocumentBindable.Underlying, search_result.page, LibraryCatalogControl.FilterTerms, false)' before all references to it are out of scope.
warning CA2000: Call System.IDisposable.Dispose on object created by 'MainWindowServiceDispatcher.Instance.OpenDocument(selected_pdf_document)' before all references to it are out of scope.
warning CA2000: Call System.IDisposable.Dispose on object created by 'MainWindowServiceDispatcher.Instance.OpenDocument(tag.pdf_document)' before all references to it are out of scope.
warning CA2000: Call System.IDisposable.Dispose on object created by 'MainWindowServiceDispatcher.Instance.OpenNewBrainstorm()' before all references to it are out of scope.
warning CA2000: Call System.IDisposable.Dispose on object created by 'MainWindowServiceDispatcher.Instance.OpenSampleBrainstorm()' before all references to it are out of scope.
warning CA2000: Call System.IDisposable.Dispose on object created by 'MainWindowServiceDispatcher.Instance.OpenWebBrowser()' before all references to it are out of scope.
warning CA2000: Call System.IDisposable.Dispose on object created by 'new Bitmap(ms)' before all references to it are out of scope.
warning CA2000: Call System.IDisposable.Dispose on object created by 'new CSLProcessorOutputConsumer(BASE_PATH, citations_javascript, brd, null)' before all references to it are out of scope.
warning CA2000: Call System.IDisposable.Dispose on object created by 'new CSLProcessorOutputConsumer(BASE_PATH, citations_javascript, RefreshDocument_OnBibliographyReady, passthru)' before all references to it are out of scope.
warning CA2000: Call System.IDisposable.Dispose on object created by 'new GoogleBibTexSnifferControl()' before all references to it are out of scope.
warning CA2000: Call System.IDisposable.Dispose on object created by 'new MainWindow()' before all references to it are out of scope.
warning CA2000: Call System.IDisposable.Dispose on object created by 'new PDFPrinterDocumentPaginator(pdf_document, pdf_renderer, page_from, page_to, new Size(print_dialog.PrintableAreaWidth, print_dialog.PrintableAreaHeight))' before all references to it are out of scope.
warning CA2000: Call System.IDisposable.Dispose on object created by 'new ReportViewerControl(annotation_report)' before all references to it are out of scope.
warning CA2000: Call System.IDisposable.Dispose on object created by 'new StreamListenerTee()' before all references to it are out of scope.
warning CA2000: Call System.IDisposable.Dispose on object created by 'new StreamWriter(client)' before all references to it are out of scope.
warning CA2000: Call System.IDisposable.Dispose on object created by 'OpenWebBrowser()' before all references to it are out of scope.
warning CA2000: Call System.IDisposable.Dispose on object created by 'this.OpenNewWindow(WebsiteAccess.Url_BlankWebsite)' before all references to it are out of scope.
warning CA2000: Call System.IDisposable.Dispose on object created by 'wbhc.OpenNewWindow()' before all references to it are out of scope.
warning CA2100: Review if the query string passed to 'SQLiteCommand.SQLiteCommand(string commandText, SQLiteConnection connection)' in 'GetIntranetLibraryItems', accepts any user input.
warning CA2100: Review if the query string passed to 'SQLiteCommand.SQLiteCommand(string commandText, SQLiteConnection connection)' in 'GetLibraryItems', accepts any user input.
warning CA2213: 'WebBrowserHostControl' contains field 'current_library' that is of IDisposable type 'Library', but it is never disposed. Change the Dispose method on 'WebBrowserHostControl' to call Close or Dispose on this field.
warning CA2234: Modify 'GoogleBibTexSnifferControl.PostBibTeXToAggregator(string)' to call 'WebRequest.Create(Uri)' instead of 'WebRequest.Create(string)'.
warning CA2234: Modify 'ImportingIntoLibrary.AddNewDocumentToLibraryFromInternet_SYNCHRONOUS(Library, string)' to call 'WebRequest.Create(Uri)' instead of 'WebRequest.Create(string)'.
warning CA2237: Add [Serializable] to LocaleTable as this type implements ISerializable
warning CA2237: Add [Serializable] to SynchronisationStates as this type implements ISerializable

## These are A-Okay and VERY MUCH INTENTIONAL: ##

warning CA5359: The ServerCertificateValidationCallback is set to a function that accepts any server certificate, by always returning true. Ensure that server certificates are validated to verify the identity of the server receiving requests.
warning CA5364: Hard-coded use of deprecated security protocol Ssl3
warning CA5364: Hard-coded use of deprecated security protocol Tls
warning CA5364: Hard-coded use of deprecated security protocol Tls11
@GerHobbelt
Copy link
Collaborator

Should be fixed as per today (marker commit: 95dff9b), will be available in upcoming pre-release v82pre4. (That release will take a few more days as there's still the PDF OCR rescan issue by way of #95. I hope to have it done by the end of the weekend.)

@GerHobbelt
Copy link
Collaborator

@monica80: I just put a new prerelease online: v82pre4 at https://github.com/GerHobbelt/qiqqa-open-source/releases/tag/v82.0.7213.27662

You might want to check that one out as it should fix your exiting-Qiiqa problem and has a BibTeX editor in the Qiqqa Sniffer that is usable (contrary to v82pre3, which was rather hairy to use there; see #82).

Please let me know how it works out for you. Cheers.

@GerHobbelt GerHobbelt moved this from In progress to Awaits Feedback / End-User Testing in TODO list Nov 2, 2019
@monica80
Copy link
Author

monica80 commented Nov 4, 2019

@GerHobbelt : I installed the v82pre4 (and ran Expedition, as recommended). This has solved my problem of qiqqa not shutting down at exit. Yeah! Qiqqa exits and fully ends. I haven't had a chance to test all aspects of v82pre4 but so far basic functions work. Thanks again!

@GerHobbelt
Copy link
Collaborator

👍

If there's anything else, don't hesitate to report as an issue here.

(BTW: v82pre5 prerelease is available at https://github.com/GerHobbelt/qiqqa-open-source/releases ; not a lot of change, but should be a bit more stable than pre4 and fixes one UI bug where a side panel did not resize)

TODO list automation moved this from Awaits Feedback / End-User Testing to Done Nov 5, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🐛bug Something isn't working
Projects
TODO list
  
Done
Development

No branches or pull requests

2 participants