Crashes on Windows during the search

Issue #194 closed
Michał Rudolf repo owner created an issue

Crashes reported when searching Linde for:

  • Rakuszanka
  • Reginka
  • All entries starting with roz-*

The following index is used: http://www.bytebucket.org/jsbien/ilindecsv/downloads. The crash is not 100% reproducible but quite common and reported by a few users

Comments (15)

  1. jsbien

    "Reginka" gives an error when displaying the hit in version 2016.

    Podpis problemu:
      Nazwa zdarzenia problemu: APPCRASH
      Nazwa aplikacji:  djview4poliqarp.exe
      Wersja aplikacji: 0.0.0.0
      Sygnatura czasowa aplikacji:  5587a988
      Nazwa modułu z błędem:    ntdll.dll
      Wersja modułu z błędem:   6.1.7601.23418
      Sygnatura czasowa modułu z błędem:    5708a73e
      Kod wyjątku:  c0000005
      Przesunięcie wyjątku: 0002e43e
      Wersja systemu operacyjnego:  6.1.7601.2.1.0.256.48
      Identyfikator ustawień regionalnych:  1045
      Dodatkowe informacje 1:   0a9e
      Dodatkowe informacje 2:   0a9e372d3b4ad19135b953a78882e789
      Dodatkowe informacje 3:   0a9e
      Dodatkowe informacje 4:   0a9e372d3b4ad19135b953a78882e789
    
    Przeczytaj w trybie online nasze zasady zachowania poufności informacji:
      http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0415
    
    Jeśli zasady zachowania poufności informacji w trybie online nie  dostępne, przeczytaj nasze zasady zachowania poufności informacji w trybie offline:
      C:\Windows\system32\pl-PL\erofflps.txt
    
  2. Joachim Aleszkiewicz

    There is a problem in QDjVuNetDocument::Private::~Private().

    There is an iterator over QMap reqid, but reqid changes when calling reply->abort in line 91.

    Every reply is connected to finished(), which attempts to remove it (line 195) from reqid, invalidating the iterator.

    The easiest solution is

    • Add bool destroying = false to private signature of QDjVuNetDocument::Private
    • Set it to true in first line of destructor
    • Only call reqid.remove(reply) in finished() if destroying = false

    Changing this allowed me to compile and run on Windows 10.0.15036 x64 (x86 version of djview) in MSVC 2015 without crashing (so far).

  3. jsbien

    Recently I noticed that a crash happens also on Linux, what - I understand - should be expected.

    To reproduce open Linde600dpi-indeks_up_atergo.csv from https://bitbucket.org/jsbien/ilindecsv in the file order, type '*' in the index find fields and keep pressing quickly Enter. I get the segmentation fault almost immediately.

  4. Joachim Aleszkiewicz

    Experimental build for Windows can be downloaded from here.

    Note: Requires Windows Vista or newer. Uninstall any previous versions before installing this version. Installation requires administrative privileges.

  5. Michał Rudolf reporter

    Disconnect all signals before destroying object. Closes #194.

    This should fix the bug in djview code. If not, please reopen or report new issue.

    → <<cset f85e499aa2ec>>

  6. Log in to comment