darktable-org / darktable

darktable is an open source photography workflow application and raw developer
https://www.darktable.org
GNU General Public License v3.0
9.66k stars 1.13k forks source link

Reproducible segfault in Lighttable view with stack trace from debugging attempt #6956

Closed chhil closed 3 years ago

chhil commented 3 years ago

Current master 3.3.0-1675 Open CL off.

Imported folder with existing edited images (800+) with their xmps.

Scrolling up and down , changing the number of images that can be displayed in a row while images are being drawn eventually seg faults in lighttable view. It seems be related to drawing the images in the main view while scroll changes or number of images in a row changes. Backtrace file generated but 0 size so I setup vscode to debug this.

I have setup vscode for wsl and broke on exception. The image is of /usr/include/c++/9/array

image

The call stack looks like

libpthread.so.0!futex_wait(unsigned int expected, unsigned int * futex_word) (\build\glibc-ZN95T4\glibc-2.31\sysdeps\nptl\futex-internal.h:141)
libpthread.so.0!futex_wait_simple(unsigned int expected, unsigned int * futex_word) (\build\glibc-ZN95T4\glibc-2.31\sysdeps\nptl\futex-internal.h:172)
libpthread.so.0!__condvar_quiesce_and_switch_g1(unsigned int * g1index, uint64_t wseq, pthread_cond_t * cond) (\build\glibc-ZN95T4\glibc-2.31\nptl\pthread_cond_common.c:416)
libpthread.so.0!__pthread_cond_broadcast(pthread_cond_t * cond) (\build\glibc-ZN95T4\glibc-2.31\nptl\pthread_cond_broadcast.c:73)
libdarktable.so!dt_control_add_job(dt_control_t * control, dt_job_queue_t queue_id, _dt_job_t * job) (\home\mchhil\darktable\src\control\jobs.c:479)
libdarktable.so!dt_mipmap_cache_get_with_caller(dt_mipmap_cache_t * cache, dt_mipmap_buffer_t * buf, const uint32_t imgid, const dt_mipmap_size_t mip, const dt_mipmap_get_flags_t flags, const char mode, const char * file, int line) (\home\mchhil\darktable\src\common\mipmap_cache.c:742)
libdarktable.so!dt_mipmap_cache_get_with_caller(dt_mipmap_cache_t * cache, dt_mipmap_buffer_t * buf, const uint32_t imgid, const dt_mipmap_size_t mip, const dt_mipmap_get_flags_t flags, const char mode, const char * file, int line) (\home\mchhil\darktable\src\common\mipmap_cache.c:903)
libdarktable.so!dt_view_image_get_surface(int imgid, int width, int height, cairo_surface_t ** surface, const gboolean quality) (\home\mchhil\darktable\src\views\view.c:950)
libdarktable.so!_event_image_draw(cairo_t * cr, gpointer user_data, GtkWidget * widget) (\home\mchhil\darktable\src\dtgtk\thumbnail.c:418)
libdarktable.so!_event_image_draw(GtkWidget * widget, cairo_t * cr, gpointer user_data) (\home\mchhil\darktable\src\dtgtk\thumbnail.c:287)
libgtk-3.so.0![Unknown/Just-In-Time compiled code] (Unknown Source:0)
libgobject-2.0.so.0!g_signal_emit_valist (Unknown Source:0)
libgobject-2.0.so.0!g_signal_emit (Unknown Source:0)
libgtk-3.so.0![Unknown/Just-In-Time compiled code] (Unknown Source:0)
libgtk-3.so.0!gtk_container_propagate_draw (Unknown Source:0)
libgtk-3.so.0![Unknown/Just-In-Time compiled code] (Unknown Source:0)
libgtk-3.so.0!gtk_container_propagate_draw (Unknown Source:0)
libgtk-3.so.0![Unknown/Just-In-Time compiled code] (Unknown Source:0)
libgtk-3.so.0!gtk_container_propagate_draw (Unknown Source:0)
libgtk-3.so.0![Unknown/Just-In-Time compiled code] (Unknown Source:0)

image

The app terminated.

If you need additional info do ask, as I can reproduce this always.

chhil commented 3 years ago

Ok, it wont be reproducible because it needs some criteria

Multiple folders were present, hence multiple fimrolls were present. I have edited raws and a mip map cache exists. You delete the config directory. Start Dt. Imported only one folder that previously existed in th filmroll. Now the mip map cache gets out of synch and will show you groups where its incorrectly grouped files ( https://github.com/darktable-org/darktable/issues/6946 ) It here where DT will segfault when the images in rows are changed and scrolling up and down to extremes is done.

Currently I imported back the remaining folder that were once there and I cannot crash DT. Impo

github-actions[bot] commented 3 years ago

This issue did not get any activity in the past 30 days and will be closed in 365 days if no update occurs. Please check if the master branch has fixed it and report again or close the issue.

johnny-bit commented 3 years ago

Currently I imported back the remaining folder that were once there and I cannot crash DT.

Then I think we can close this one.