Crash when opening a folder with images in File Browser

Issue #101 resolved
Daniel Catalina created an issue

With Commit: 4f808861e (AboutThisBuild.txt attached) I am getting crashes when I open a certain folder in File Browser.

I’ve noticed this started to happen once the Warning messages concerning Dehaze started to appear in the main window (see the attached screenshot messages.jpg).

The call stack is:

ntdll.dll!ntdll!RtlpNtMakeTemporaryKey (Unknown Source:0)
ntdll.dll!ntdll!memset (Unknown Source:0)
ntdll.dll!ntdll!RtlpNtMakeTemporaryKey (Unknown Source:0)
ntdll.dll!ntdll!memset (Unknown Source:0)
ntdll.dll!ntdll!RtlGetCurrentServiceSessionId (Unknown Source:0)
ntdll.dll!ntdll!RtlFreeHeap (Unknown Source:0)
msvcrt.dll!msvcrt!free (Unknown Source:0)
libgtk-3-0.dll!libgtk-3-0!gtk_label_set_markup (Unknown Source:0)
RTWindow::error(RTWindow * const this, const Glib::ustring & descr) (m:\code\art\rtgui\rtwindow.cc:1093)
rtengine::procparams::(anonymous namespace)::assignFromKeyfile<int>(const rtengine::procparams::KeyFile & keyfile, const Glib::ustring & group_name, const Glib::ustring & key, int & value) (m:\code\art\rtengine\procparams.cc:305)
rtengine::procparams::ProcParams::load(rtengine::procparams::ProcParams * const this, rtengine::ProgressListener * pl, bool load_general, const rtengine::procparams::KeyFile & keyFile, const ParamsEdited * pedited, bool resetOnError, const Glib::ustring & fname) (m:\code\art\rtengine\procparams.cc:4477)
rtengine::procparams::ProcParamsWithSnapshots::load(rtengine::procparams::ProcParamsWithSnapshots * const this, rtengine::ProgressListener * pl, const Glib::ustring & fname) (m:\code\art\rtengine\procparams.cc:5182)
Thumbnail::loadProcParams(Thumbnail * const this, bool load_rating) (m:\code\art\rtgui\thumbnail.cc:361)
Thumbnail::Thumbnail(Thumbnail * const this, CacheManager * cm, const Glib::ustring & fname, const std::string & md5) (m:\code\art\rtgui\thumbnail.cc:67)
CacheManager::getEntry(CacheManager * const this, const Glib::ustring & fname) (m:\code\art\rtgui\cachemanager.cc:124)
PreviewLoader::Impl::processNextJob(PreviewLoader::Impl * const this) (m:\code\art\rtgui\previewloader.cc:130)
sigc::bound_mem_functor0<void, PreviewLoader::Impl>::operator()(const sigc::bound_mem_functor0<void, PreviewLoader::Impl> * const this) (m:\msys64\mingw64\include\sigc++-2.0\sigc++\functors\mem_fun.h:1991)
sigc::adaptor_functor<sigc::bound_mem_functor0<void, PreviewLoader::Impl> >::operator()(const sigc::adaptor_functor<sigc::bound_mem_functor0<void, PreviewLoader::Impl> > * const this) (m:\msys64\mingw64\include\sigc++-2.0\sigc++\adaptors\adaptor_trait.h:256)
sigc::internal::slot_call0<sigc::bound_mem_functor0<void, PreviewLoader::Impl>, void>::call_it(sigc::internal::slot_rep * rep) (m:\msys64\mingw64\include\sigc++-2.0\sigc++\functors\slot.h:136)
libglibmm-2.4-1.dll!libglibmm-2.4-1!_ZN4Glib10ThreadPool8SlotList3popEPN4sigc4slotIvNS2_3nilES4_S4_S4_S4_S4_S4_EE (Unknown Source:0)
libglib-2.0-0.dll!libglib-2.0-0!g_get_num_processors (Unknown Source:0)
libglib-2.0-0.dll!libglib-2.0-0!g_test_get_filename (Unknown Source:0)
libwinpthread-1.dll!pthread_create_wrapper (Unknown Source:0)
msvcrt.dll!msvcrt!_beginthreadex (Unknown Source:0)
msvcrt.dll!msvcrt!_endthreadex (Unknown Source:0)
kernel32.dll!KERNEL32!BaseThreadInitThunk (Unknown Source:0)
ntdll.dll!ntdll!RtlUserThreadStart (Unknown Source:0)
[Unknown/Just-In-Time compiled code] (Unknown Source:0)

Also if i am running ART from command line I get this type of messages:

(ART.exe:8828): Gtk-WARNING **: 23:06:39.148: Failed to set text '%\xd2\xfa\u0018' from markup due to error parsing markup: Error on line 1 char 19: Odd character “\xad”, expected a '=' after attribute name “size” of element “span”

(ART.exe:8828): Gtk-WARNING **: 23:06:39.148: Failed to set text '0.75' from markup due to error parsing markup: Error on line 1 char 232: Invalid UTF-8 encoded text in name — not valid “\u0007\xfb\u0018”

(ART.exe:8828): Gtk-WARNING **: 23:06:41.901: Failed to set text '@6\x99\u0018' from markup due to error parsing markup: Error on line 18 char 66: Invalid UTF-8 encoded text in name — not valid “\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe\xee\xfe”

The crash always happens in rtwindow.cc at line 1093:

info_label_->set_markup(Glib::ustring::compose("<span size=\"large\"><b>%1</b></span>", info_msg_));

(see the exception.jpg for more details here)

I also added the arp file mentioned in the last message where the debugger stops. I see nothing wrong with it.

Also interesting to notice is that it does not always crashes with this arp, but with some other arp in the folder.

Comments (10)

  1. Daniel Catalina reporter

    I also moved the raf and arp file where it crashes in another folder and the crash does not happen.

    It happens however if I am opening more time folders where there are more files (in the one I first noticed the crash there are 62 files) that were previously processed which trigger the Dehaze related warnings (which appear even if I have not used the module on those files).

  2. agriggio repo owner

    thanks. Looks like there might be a buffer that gets filled somewhere. I'll try to reproduce.

    One question: does the folder have non-ascii characters in its path?

  3. Daniel Catalina reporter

    No, there should be no non-ascii characters involved, neither in the path, neither in the file names.

    The path is:

    C:\Users\danie\Pictures\2Process\2020.05.19\laowa\pano

    The file names are the camera defaults: DSCF6411.RAF.

  4. Daniel Catalina reporter

    I still have ART crashing, but after I keep on changing between the folder with many files and others with less files.

    The callstack is however this time not useful, as only GTK calls are reported, nothing from ART. The debug build is pretty slow and maybe this keeps it more stable.

    I am now making a relwithdebuginfo build to check if I can get a more helpful call stack.

  5. Log in to comment