JuliaImages / ImageView.jl

Interactive display of images and movies
MIT License
135 stars 34 forks source link

Crash on second or third call to imshow() #290

Closed pemryan closed 6 months ago

pemryan commented 11 months ago

Hi,

when visualizing a 256x256x24 array, I run into a crash as follow. Repeatable, carsh occurs on the 2nd or 3rd call to imshow().

julia> using ImageView

(julia:2036): Gdk-CRITICAL **: 22:08:06.662: load_layout_dll: assertion 'dll != NULL' failed

julia> imshow(img[:,:,1])
Dict{String, Any} with 4 entries:
  "gui"         => Dict{String, Any}("window"=>GtkWindowLeaf(name="", parent, width-request=-1, height-request=-1, visible=TR…  "roi"         => Dict{String, Any}("redraw"=>ObserverFunction[ObserverFunction defined at D:\Programs\julia\env\packages\Ob…  "annotations" => Observable(Dict{UInt64, Any}())
  "clim"        => Observable(CLim{Float64}(0.000314607, 0.0196363))

julia> imshow(img[:,:,12])
Dict{String, Any} with 4 entries:
  "gui"         => Dict{String, Any}("window"=>GtkWindowLeaf(name="", parent, width-request=-1, height-request=-1, visible=TR…(julia:2036): Gdk-CRITICAL **: 22:09:01.474: gdk_keysym_to_key_entry_index: assertion 'info->reverse_lookup_table != NULL' failed

(julia:2036): Gdk-CRITICAL **: 22:09:01.474: gdk_keysym_to_key_entry_index: assertion 'info->reverse_lookup_table != NULL' failed

Please submit a bug report with steps to reproduce this fault, and any error messages that follow (in their entirety). Thanks.Exception: EXCEPTION_ACCESS_VIOLATION at 0x6c208771 -- gdk_win32_keymap_get_entries_for_keyval at /workspace/srcdir/gtk/build-gtk\../gdk/win32\gdkkeys-win32.c:792
in expression starting at none:0
gdk_win32_keymap_get_entries_for_keyval at /workspace/srcdir/gtk/build-gtk\../gdk/win32\gdkkeys-win32.c:792
key_hash_insert_entry at /workspace/srcdir/gtk/build-gtk\../gtk\gtkkeyhash.c:65
key_hash_get_keycode_hash at /workspace/srcdir/gtk/build-gtk\../gtk\gtkkeyhash.c:94
_gtk_key_hash_lookup at /workspace/srcdir/gtk/build-gtk\../gtk\gtkkeyhash.c:386
gtk_bindings_activate_event at /workspace/srcdir/gtk/build-gtk\../gtk\gtkbindings.c:1595
_gtk_marshal_BOOLEAN__BOXEDv at /workspace/srcdir/gtk/build-gtk\gtk\gtkmarshalers.c:130
_g_closure_invoke_va at D:\Programs\julia\env\artifacts\4f67e82ee394e74ca63b7dc589dcc9218c12b20a\bin\libgobject-2.0-0.dll (unknown line)
g_signal_emit_valist at D:\Programs\julia\env\artifacts\4f67e82ee394e74ca63b7dc589dcc9218c12b20a\bin\libgobject-2.0-0.dll (unknown line)
g_signal_emit at D:\Programs\julia\env\artifacts\4f67e82ee394e74ca63b7dc589dcc9218c12b20a\bin\libgobject-2.0-0.dll (unknown line)
gtk_widget_event_internal at /workspace/srcdir/gtk/build-gtk\../gtk\gtkwidget.c:7812
propagate_event at /workspace/srcdir/gtk/build-gtk\../gtk\gtkmain.c:2681
gtk_main_do_event at /workspace/srcdir/gtk/build-gtk\../gtk\gtkmain.c:1921
_gdk_event_emit at /workspace/srcdir/gtk/build-gtk\../gdk\gdkevents.c:73
gdk_event_dispatch at /workspace/srcdir/gtk/build-gtk\../gdk/win32\gdkevents-win32.c:4138
g_main_context_dispatch at D:\Programs\julia\env\artifacts\4f67e82ee394e74ca63b7dc589dcc9218c12b20a\bin\libglib-2.0-0.dll (unknown line)
g_main_context_iterate.isra.23 at D:\Programs\julia\env\artifacts\4f67e82ee394e74ca63b7dc589dcc9218c12b20a\bin\libglib-2.0-0.dll (unknown line)
g_main_loop_run at D:\Programs\julia\env\artifacts\4f67e82ee394e74ca63b7dc589dcc9218c12b20a\bin\libglib-2.0-0.dll (unknown line)
gtk_main at /workspace/srcdir/gtk/build-gtk\../gtk\gtkmain.c:1329
#253 at D:\Programs\julia\env\packages\Gtk\oo3cW\src\events.jl:2
unknown function (ip: 0000026736249c13)
g_sigatom at D:\Programs\julia\env\packages\Gtk\oo3cW\src\GLib\signals.jl:176
jfptr_g_sigatom_3889 at D:\Programs\julia\env\compiled\v1.9\GtkObservables\AbPKf_P23Ku.dll (unknown line)
gtk_main at D:\Programs\julia\env\packages\Gtk\oo3cW\src\events.jl:1
jfptr_gtk_main_2178 at D:\Programs\julia\env\compiled\v1.9\Gtk\Vjnq0_P23Ku.dll (unknown line)
jl_apply at C:/workdir/src\julia.h:1880 [inlined]
start_task at C:/workdir/src\task.c:1092
Allocations: 22508985 (Pool: 22214070; Big: 294915); GC: 1489

Environment info:

julia> versioninfo()
Julia Version 1.9.3
Commit bed2cd540a (2023-08-24 14:43 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: Windows (x86_64-w64-mingw32)
  CPU: 4 × Intel(R) Core(TM) i7-5500U CPU @ 2.40GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-14.0.6 (ORCJIT, broadwell)
  Threads: 8 on 4 virtual cores

(@v1.9) pkg> st
Status `D:\Programs\julia\env\environments\v1.9\Project.toml`
  [13f3f980] CairoMakie v0.10.8
  [e2554f3b] Clp v1.0.3
  [8f4d0f93] Conda v1.9.1
  [f65535da] Convex v0.15.3
  [1f15a43c] CxxWrap v0.13.4
  [a26e6606] DICOM v0.10.1
  [31a5f54b] Debugger v0.7.8
  [31c24e10] Distributions v0.25.100
  [7a1cc6ca] FFTW v1.7.1
  [5789e2e9] FileIO v1.16.1
  [e9467ef8] GLMakie v0.8.8
⌃ [28b8d3ca] GR v0.72.8
  [4b11ee91] Gaston v1.1.0
  [4c0ca9eb] Gtk v1.3.0
⌃ [6a3955dd] ImageFiltering v0.7.6
  [4e3cecfd] ImageShow v0.3.8
  [02fcd773] ImageTransformations v0.10.0
  [86fae568] ImageView v0.11.7
  [a98d9a8b] Interpolations v0.14.7
  [b6b21f68] Ipopt v1.4.2
  [4076af6c] JuMP v1.14.0
  [98e50ef6] JuliaFormatter v1.0.35
  [929cbde3] LLVM v6.1.0
  [9c8b4983] LightXML v0.9.0
  [23992714] MAT v0.10.5
  [33e6dc65] MKL v0.6.1
  [da04e1cc] MPI v0.20.14
  [ee78f7c6] Makie v0.19.8
  [76087f3c] NLopt v1.0.0
  [2774e3e8] NLsolve v4.5.1
  [5fb14364] OhMyREPL v0.5.22
  [f878e3a2] OpenCV v4.5.3
  [429524aa] Optim v1.7.7
  [9b87118b] PackageCompiler v2.1.7
  [58dd65bb] Plotly v0.4.1
  [91a5bcdd] Plots v1.39.0
  [e409e4f3] PoissonRandom v0.4.4
  [f27b6e38] Polynomials v4.0.2
  [438e738f] PyCall v1.96.1
⌃ [ee283ea6] Rebugger v0.2.2
  [f2b01f46] Roots v2.0.19
  [276daf66] SpecialFunctions v2.3.1
  [149cae9a] SuperLU v0.1.0
  [75a07032] System v0.1.0
  [4225ea8a] Tk v0.7.0
⌃ [7b913008] Tomography v0.1.2
Info Packages marked with ⌃ have new versions available and may be upgradable.

Seems to be an gtk issue? Thanks for any thoughts.

jwahlstrand commented 6 months ago

I think this was fixed in recent versions of GTK3 and GTK4: https://gitlab.gnome.org/GNOME/gtk/-/issues/4610

So this should no longer affect ImageView as of version 0.12.