Open yakir12 opened 6 years ago
Do you have an MWE or, could you provide the arguments/data for the failing drawimage
command?
Thanks for replying, I have intermittent access to the offending (mac) machine. I'll try to build a MWE within the next few days.
Is the problem specific to macOS ?
Definitely seems that way.. that one computer is a mac.
I'm working on the MWE (hard to pin this down), but just in case this rings any bells, here are some warnings when updating last:
==> /Users/guywachsman/.julia/v0.6/Homebrew/deps/usr/Cellar/fontconfig/2.12.6/bi │··········
/Users/guywachsman/.julia/v0.6/Homebrew/deps/usr/Cellar/fontconfig/2.12.6: 493 files, 3.2MB │··········
Warning: Already linked: /Users/guywachsman/.julia/v0.6/Homebrew/deps/usr/Cellar/fontconfig/2.12.6 │··········
Uninstalling imagemagick@6... (1,471 files, 23MB) │··········
Warning: Calling <<-EOS.undent is deprecated! │··········
Use <<~EOS instead. │··········
/Users/guywachsman/.julia/v0.6/Homebrew/deps/usr/Library/Taps/staticfloat/homebrew-juliadeps/imagemagick@6.rb:139:in `caveats' │··········
Please report this to the staticfloat/juliadeps tap! │··········
│··········
Warning: Calling <<-EOS.undent is deprecated! │··········
Use <<~EOS instead. │··········
/Users/guywachsman/.julia/v0.6/Homebrew/deps/usr/Library/Taps/staticfloat/homebrew-juliatranslated/imagemagick@6.rb:139:in `caveats' │··········
Please report this to the staticfloat/juliatranslated tap! │··········
│··········
==> Installing imagemagick@6 from staticfloat/juliatranslated │··········
==> Downloading https://juliabottles.s3.amazonaws.com/imagemagick@6-6.9.7-3.sier │··········
######################################################################## 100.0% │··········
==> Pouring imagemagick@6-6.9.7-3.sierra.bottle.tar.gz │··········
Warning: Calling <<-EOS.undent is deprecated! │··········
Use <<~EOS instead. │··········
/Users/guywachsman/.julia/v0.6/Homebrew/deps/usr/Library/Taps/staticfloat/homebrew-juliatranslated/imagemagick@6.rb:139:in `caveats' │··········
Please report this to the staticfloat/juliatranslated tap! │··········
│··········
/Users/guywachsman/.julia/v0.6/Homebrew/deps/usr/Cellar/imagemagick@6/6.9.7-3: 1,464 files, 22.3MB │··········
Warning: Already linked: /Users/guywachsman/.julia/v0.6/Homebrew/deps/usr/Cellar/imagemagick@6/6.9.7-3
Sorry for the noise if this is utterly irrelevant.
OK, I've run tons of tests and concluded that the segfault occurs only when I try to control the size
and/or dpi
of a heatmap
here. Frustratingly, the MWE I made, which as far as I can tell, mimics the real code exactly, does not reproduce a segfault (here is the MWE.
I'd really appreciate any insight you might have on this, and please let me know if there are any specific tests you want me to try.
I will have to build the "real" Gtk example, which is not possible on my MacBook, as I can't build Homebrew packages on macOS 10.14 (Mojave). I'll check this when I'm back in office. I suspect some "deeper" problem due to the asynchronous behavior (within the Gtk stuff).
@yakir12 : is downgrading Cairo from v0.5.2 to v0.4.0 really required for the TrackRoots.jl
build?
i don't know exactly, but this was solving a problem in ImageView
I'll gladly test it when I get back to my comp! I had that setting cause Gtk's file browser function didn't work in newer versions of Cairo.
Stage one passed: Grk.open_dialog
works with Cario v0.5.2
on my machine (which is where it was problematic) so I've removed that restriction.
Next step is to see if that will also solve the segfault in the other two macs. I'll be able to test this when I next get access to them. Exciting!
I will also add a using ...
to the mwe.jl with all the packages I'm using in the real code, to see if it was indeed Gtk+Cairo.
No luck.
I freed Cairo
and ran julia -e 'Pkg.update("TrackRoots"); Pkg.test("TrackRoots")' > out 2>error
and got segfaults (I should mention that I develop locally, push updates, log on remotely to the offending mac, pull the updates, and test). The weird thing is that I initially didn't. So I ran that command and all, checked and it was all good. Then I added the size
and dpi
specifications, and it segfaulted. I then said, ok, let's remove those from the heatmap
arguments, and it still segfaluts. I tried a few more times but it's still segfaults.
System info:
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.13.4
BuildVersion: 17E202
Julia info:
_ _ _(_)_ | A fresh appro
(_) | (_) (_) | Documentation
_ _ _| |_ __ _ | Type "?help"
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 0.6.3
_/ |\__'_|_|_|\__'_| | Official http
|__/ | x86_64-apple-
julia> Pkg.status("Cairo")
- Cairo 0.5.2
julia> Pkg.status("Gtk")
- Gtk 0.14.0
julia> Pkg.status("Homebrew")
- Homebrew 0.6.3
julia> Pkg.status("GR")
- GR 0.31.0
and the error output:
2018-06-09 13:02:05.592 julia[18230:1169179] GetInputSourceEnabledPrefs user file path = /Users/guywachsmann/Library/Preferences/c
om.apple.HIToolbox.plist
2018-06-09 13:02:05.592 julia[18230:1169179] GetInputSourceEnabledPrefs effective user id path = 501
2018-06-09 13:02:05.592 julia[18230:1169179] GetInputSourceEnabledPrefs user pref content = <CFBasicHash 0x7fb7e0cdb890 [0x7fff923
37af0]>{type = immutable dict, count = 3,
entries =>
0 : <CFString 0x7fb7e0cda5c0 [0x7fff92337af0]>{contents = "AppleInputSourceHistory"} = <CFArray 0x7fb7e0cdc050 [0x7fff9233
7af0]>{type = immutable, count = 1, values = (
0 : <CFBasicHash 0x7fb7e0cdcb70 [0x7fff92337af0]>{type = immutable dict, count = 3,
entries =>
0 : <CFString 0x7fff92269218 [0x7fff92337af0]>{contents = "InputSourceKind"} = <CFString 0x7fff922b0098 [0x7fff92337af0]>{
contents = "Keyboard Layout"}
1 : <CFString 0x7fff92263d78 [0x7fff92337af0]>{contents = "KeyboardLayout Name"} = U.S.
2 : <CFString 0x7fff9229bb78 [0x7fff92337af0]>{contents = "KeyboardLayout ID"} = <CFNumber 0x37 [0x7fff92337af0]>{value =
+0, type = kCFNumberSInt64Type}
}
)}
1 : <CFString 0x7fff9228b618 [0x7fff92337af0]>{contents = "AppleSelectedInputSources"} = <CFArray 0x7fb7e0cdccd0 [0x7fff92
337af0]>{type = immutable, count = 1, values = (
0 : <CFBasicHash 0x7fb7e0cdbba0 [0x7fff92337af0]>{type = immutable dict, count = 3,
entries =>
0 : <CFString 0x7fff92269218 [0x7fff92337af0]>{contents = "InputSourceKind"} = <CFString 0x7fff922b0098 [0x7fff92337af0]>{
contents = "Keyboard Layout"}
1 : <CFString 0x7fff92263d78 [0x7fff92337af0]>{contents = "KeyboardLayout Name"} = U.S.
2 : <CFString 0x7fff9229bb78 [0x7fff92337af0]>{contents = "KeyboardLayout ID"} = <CFNumber 0x37 [0x7fff92337af0]>{value =
+0, type = kCFNumberSInt64Type}
}
)}
2 : <CFString 0x7fff922dfb78 [0x7fff92337af0]>{contents = "AppleCurrentKeyboardLayoutInputSourceID"} = <CFString 0x7fff922
fdcf8 [0x7fff92337af0]>{contents = "com.apple.keylayout.US"}
}
signal (11): Segmentation fault: 11
while loading /Users/guywachsmann/.julia/v0.6/TrackRoots/test/runtests.jl, in expression starting on line 68
gr_drawimage at /Users/guywachsmann/.julia/v0.6/GR/deps/gr/lib/libGR.so (unknown line)
"error" 76L, 5434C
drawimage at /Users/guywachsmann/.julia/v0.6/GR/src/GR.jl:2589
drawimage at /Users/guywachsmann/.julia/v0.6/GR/src/GR.jl:2586
unknown function (ip: 0x1659aba73)
gr_display at /Users/guywachsmann/.julia/v0.6/Plots/src/backends/gr.jl:1100
unknown function (ip: 0x16599f4d2)
gr_display at /Users/guywachsmann/.julia/v0.6/Plots/src/backends/gr.jl:587
_show at /Users/guywachsmann/.julia/v0.6/Plots/src/backends/gr.jl:1370
show at /Users/guywachsmann/.julia/v0.6/Plots/src/output.jl:210
unknown function (ip: 0x165967aa6)
png at /Users/guywachsmann/.julia/v0.6/Plots/src/output.jl:8
unknown function (ip: 0x1659671b6)
saveoverview at /Users/guywachsmann/.julia/v0.6/TrackRoots/src/saves.jl:84
unknown function (ip: 0x123f00ed2)
saveit at /Users/guywachsmann/.julia/v0.6/TrackRoots/src/saves.jl:61
unknown function (ip: 0x123ef2cd2)
saveit at /Users/guywachsmann/.julia/v0.6/TrackRoots/src/saves.jl:27
unknown function (ip: 0x123ef0c16)
main at /Users/guywachsmann/.julia/v0.6/TrackRoots/src/TrackRoots.jl:25
main at /Users/guywachsmann/.julia/v0.6/TrackRoots/src/TrackRoots.jl:42
macro expansion at /Users/guywachsmann/.julia/v0.6/TrackRoots/test/runtests.jl:72 [inlined]
macro expansion at ./test.jl:860 [inlined]
anonymous at ./<missing> (unknown line)
jl_call_fptr_internal at /Users/osx/buildbot/slave/package_osx64/build/src/./julia_internal.h:339 [inlined]
jl_call_method_internal at /Users/osx/buildbot/slave/package_osx64/build/src/./julia_internal.h:358 [inlined]
jl_toplevel_eval_flex at /Users/osx/buildbot/slave/package_osx64/build/src/toplevel.c:589
jl_parse_eval_all at /Users/osx/buildbot/slave/package_osx64/build/src/ast.c:873
jl_load at /Users/osx/buildbot/slave/package_osx64/build/src/toplevel.c:616 [inlined]
jl_load_ at /Users/osx/buildbot/slave/package_osx64/build/src/toplevel.c:623
include_from_node1 at ./loading.jl:576
jlcall_include_from_node1_18752 at /Applications/Julia-0.6.app/Contents/Resources/julia/lib/julia/sys.dylib (unknown line)
include at ./sysimg.jl:14
jlcall_include_1022 at /Applications/Julia-0.6.app/Contents/Resources/julia/lib/julia/sys.dylib (unknown line)
process_options at ./client.jl:305
_start at ./client.jl:371
jlcall__start_18991 at /Applications/Julia-0.6.app/Contents/Resources/julia/lib/julia/sys.dylib (unknown line)
true_main at /Applications/Julia-0.6.app/Contents/Resources/julia/bin/julia (unknown line)
main at /Applications/Julia-0.6.app/Contents/Resources/julia/bin/julia (unknown line)
Allocations: 63807132 (Pool: 63799992; Big: 7140); GC: 230
INFO: Computing test dependencies for TrackRoots...
INFO: No packages to install, update or remove
INFO: Testing TrackRoots
=============================[ ERROR: TrackRoots ]==============================
failed process: Process(`/Applications/Julia-0.6.app/Contents/Resources/julia/bin/julia -Cgeneric -J/Applications/Julia-0.6.app/Co
ntents/Resources/julia/lib/julia/sys.dylib --compile=yes --depwarn=yes --check-bounds=yes --code-coverage=none --color=no --compil
ecache=yes /Users/guywachsmann/.julia/v0.6/TrackRoots/test/runtests.jl`, ProcessSignaled(11)) [0]
================================================================================
INFO: No packages to install, update or remove
ERROR: TrackRoots had test errors
I added all the packages I was using in the real code to the MWE. I naively ran it while in julia on the offending mac, thinking it won't segfault. It did! Happy and hopeful I ran it from CLI to collect the errors like before. Of course it didn't segfault then... (needless to say I tried again from julia's own REPL, but again, it did not segfault) I'm pretty confused by now. While it didn't segfault, it did spit out these warnings:
2018-06-09 14:35:59.478 julia[18384:1194936] GetInputSourceEnabledPrefs user file path = /Users/guywachsmann/Library/Preferences/c
om.apple.HIToolbox.plist
2018-06-09 14:35:59.479 julia[18384:1194936] GetInputSourceEnabledPrefs effective user id path = 501
2018-06-09 14:35:59.479 julia[18384:1194936] GetInputSourceEnabledPrefs user pref content = <CFBasicHash 0x7fc6c9ffa820 [0x7fff923
37af0]>{type = immutable dict, count = 3,
entries =>
0 : <CFString 0x7fc6c9ffaf50 [0x7fff92337af0]>{contents = "AppleInputSourceHistory"} = <CFArray 0x7fc6c9ffbba0 [0x7fff9233
7af0]>{type = immutable, count = 1, values = (
0 : <CFBasicHash 0x7fc6c9ffaa90 [0x7fff92337af0]>{type = immutable dict, count = 3,
entries =>
0 : <CFString 0x7fff92269218 [0x7fff92337af0]>{contents = "InputSourceKind"} = <CFString 0x7fff922b0098 [0x7fff92337af0]>{
contents = "Keyboard Layout"}
1 : <CFString 0x7fff92263d78 [0x7fff92337af0]>{contents = "KeyboardLayout Name"} = U.S.
2 : <CFString 0x7fff9229bb78 [0x7fff92337af0]>{contents = "KeyboardLayout ID"} = <CFNumber 0x37 [0x7fff92337af0]>{value =
+0, type = kCFNumberSInt64Type}
}
)}
1 : <CFString 0x7fff9228b618 [0x7fff92337af0]>{contents = "AppleSelectedInputSources"} = <CFArray 0x7fc6c9ffb220 [0x7fff92
337af0]>{type = immutable, count = 1, values = (
0 : <CFBasicHash 0x7fc6c9be9320 [0x7fff92337af0]>{type = immutable dict, count = 3,
entries =>
0 : <CFString 0x7fff92269218 [0x7fff92337af0]>{contents = "InputSourceKind"} = <CFString 0x7fff922b0098 [0x7fff92337af0]>{
contents = "Keyboard Layout"}
1 : <CFString 0x7fff92263d78 [0x7fff92337af0]>{contents = "KeyboardLayout Name"} = U.S.
2 : <CFString 0x7fff9229bb78 [0x7fff92337af0]>{contents = "KeyboardLayout ID"} = <CFNumber 0x37 [0x7fff92337af0]>{value =
+0, type = kCFNumberSInt64Type}
}
)}
2 : <CFString 0x7fff922dfb78 [0x7fff92337af0]>{contents = "AppleCurrentKeyboardLayoutInputSourceID"} = <CFString 0x7fff922
fdcf8 [0x7fff92337af0]>{contents = "com.apple.keylayout.US"}
}
2018-06-09 14:37:01.203 GKSTerm[18387:1195496] GetInputSourceEnabledPrefs user file path = /Users/guywachsmann/Library/Preferences
/com.apple.HIToolbox.plist
2018-06-09 14:37:01.203 GKSTerm[18387:1195496] GetInputSourceEnabledPrefs effective user id path = 501
2018-06-09 14:37:01.204 GKSTerm[18387:1195496] GetInputSourceEnabledPrefs user pref content = <CFBasicHash 0x7f83f2d4c480 [0x7fff9
2337af0]>{type = immutable dict, count = 3,
entries =>
0 : <CFString 0x7f83f2d483a0 [0x7fff92337af0]>{contents = "AppleInputSourceHistory"} = <CFArray 0x7f83f2d4c440 [0x7fff9233
7af0]>{type = immutable, count = 1, values = (
0 : <CFBasicHash 0x7f83f2d48a60 [0x7fff92337af0]>{type = immutable dict, count = 3,
entries =>
0 : <CFString 0x7fff92269218 [0x7fff92337af0]>{contents = "InputSourceKind"} = <CFString 0x7fff922b0098 [0x7fff92337af0]>{
contents = "Keyboard Layout"}
1 : <CFString 0x7fff92263d78 [0x7fff92337af0]>{contents = "KeyboardLayout Name"} = U.S.
2 : <CFString 0x7fff9229bb78 [0x7fff92337af0]>{contents = "KeyboardLayout ID"} = <CFNumber 0x37 [0x7fff92337af0]>{value =
+0, type = kCFNumberSInt64Type}
}
)}
1 : <CFString 0x7fff9228b618 [0x7fff92337af0]>{contents = "AppleSelectedInputSources"} = <CFArray 0x7f83f2d48a20 [0x7fff92
337af0]>{type = immutable, count = 1, values = (
0 : <CFBasicHash 0x7f83f2d483d0 [0x7fff92337af0]>{type = immutable dict, count = 3,
entries =>
0 : <CFString 0x7fff92269218 [0x7fff92337af0]>{contents = "InputSourceKind"} = <CFString 0x7fff922b0098 [0x7fff92337af0]>{
contents = "Keyboard Layout"}
1 : <CFString 0x7fff92263d78 [0x7fff92337af0]>{contents = "KeyboardLayout Name"} = U.S.
2 : <CFString 0x7fff9229bb78 [0x7fff92337af0]>{contents = "KeyboardLayout ID"} = <CFNumber 0x37 [0x7fff92337af0]>{value =
+0, type = kCFNumberSInt64Type}
}
)}
2 : <CFString 0x7fff922dfb78 [0x7fff92337af0]>{contents = "AppleCurrentKeyboardLayoutInputSourceID"} = <CFString 0x7fff922
fdcf8 [0x7fff92337af0]>{contents = "com.apple.keylayout.US"}
}
I think we have to find a solution how to rebuild the GR Gtk plugin and link it against the same run-time that's used by specific Julia packages (provided by Homebrew
). As compared to Qt we decided to include the required run-time into the GR packages, but that is impossible for us to manage in the case of Gtk.
I wouldn't know how to even approach that but here are some alternatives:
I think, the problem is due to Gtk version conflicts, which can only be fixed by compiling/linking using your Gtk run-time. I'm quite busy, but I'll check how to manage that ASAP ...
Let me know if you're too swamped or if this is not a good use of your time (because it's a problem that only affects very few people or because it might get resolved down the line with the new v1 coming out). I can always try and save the data in some other format (JLD or even text) and then plot it all in a secondary julia session. Whichever it is, thank you so much for your efforts!
This might have been related to issue #119, another segfault in drawimage
. If so, it has been fixed and the fix will be in the next GR.jl release. That bug only occasionally caused a segfault, so a MWE would not cause it reliably without drawing the image over and over again, like a GUI or animation would.
I'm getting segmentation faults when plotting with the GR backend. Any clue what might be going on? The offending code is here.