1

OS: Mac OS 10.14.16; Julia Version: JuliaPro_v1.3.1-1

I am animating a plot in Julia and can not achieve the desired functionality of Plots.gif when I do not launch JuliaPro as root. I recently overcome an error in JuliaPro where I would get a permission denied when trying to load modules by invoking sudo chown -R foo ~/.juliaPro. If I run JuliaPro as myself, i.e., NOT root, I get the following error:

ERROR: LoadError: failed process: Process(`/Users/connorfuhrman/.juliapro/JuliaPro_v1.3.1-1/artifacts/060c5b3c7386ef4a519b0d3e45380e0b905e0bf1/bin/ffmpeg -v 0 -framerate 5 -loop 0 -i /var/folders/v1/zchgkh6j5xb77_bcw7nvk9pr0000gn/T/jl_lczuj5/%06d.png -i /var/folders/v1/zchgkh6j5xb77_bcw7nvk9pr0000gn/T/jl_lczuj5/palette.bmp -lavfi paletteuse=dither=sierra2_4a -y '{path to gif file redacted}'`, ProcessExited(1)) [1]

Stacktrace:
 [1] #run#565(::Bool, ::typeof(run), ::Cmd) at /Applications/JuliaPro-1.3.1-1.app/Contents/Resources/julia/Contents/Resources/julia/lib/julia/sys.dylib:?
 [2] run at ./process.jl:438 [inlined]
 [3] (::FFMPEG.var"#4#6"{Cmd})(::String) at /Users/connorfuhrman/.juliapro/JuliaPro_v1.3.1-1/packages/FFMPEG/vocw2/src/FFMPEG.jl:114
 [4] (::FFMPEG_jll.var"#11#12"{FFMPEG.var"#4#6"{Cmd}})() at /Users/connorfuhrman/.juliapro/JuliaPro_v1.3.1-1/packages/FFMPEG_jll/1XNMx/src/wrappers/x86_64-apple-darwin14.jl:162
 [5] withenv(::FFMPEG_jll.var"#11#12"{FFMPEG.var"#4#6"{Cmd}}, ::Pair{String,String}, ::Pair{String,String}) at ./env.jl:161
 [6] #ffmpeg#10(::Bool, ::Bool, ::typeof(ffmpeg), ::FFMPEG.var"#4#6"{Cmd}) at /Users/connorfuhrman/.juliapro/JuliaPro_v1.3.1-1/packages/FFMPEG_jll/1XNMx/src/wrappers/x86_64-apple-darwin14.jl:161
 [7] ffmpeg at /Users/connorfuhrman/.juliapro/JuliaPro_v1.3.1-1/packages/FFMPEG_jll/1XNMx/src/wrappers/x86_64-apple-darwin14.jl:145 [inlined]
 [8] #exe#2 at /Users/connorfuhrman/.juliapro/JuliaPro_v1.3.1-1/packages/FFMPEG/vocw2/src/FFMPEG.jl:113 [inlined]
 [9] #exe at ./none:0 [inlined]
 [10] ffmpeg_exe at /Users/connorfuhrman/.juliapro/JuliaPro_v1.3.1-1/packages/FFMPEG/vocw2/src/FFMPEG.jl:125 [inlined]
 [11] #buildanimation#267(::Int64, ::Int64, ::Bool, ::Bool, ::typeof(Plots.buildanimation), ::Animation, ::String, ::Bool) at /Users/connorfuhrman/.juliapro/JuliaPro_v1.3.1-1/packages/Plots/WwFyB/src/animation.jl:92
 [12] #buildanimation at ./none:0 [inlined] (repeats 2 times)
 [13] #gif#264 at /Users/connorfuhrman/.juliapro/JuliaPro_v1.3.1-1/packages/Plots/WwFyB/src/animation.jl:63 [inlined]
 [14] #gif at ./none:0 [inlined]
 [15] driveRover() at {my file}
 [16] main() at /{my file}
 [17] top-level scope at {my file} 
 [18] include_string(::Module, ::String, ::String) at /Applications/JuliaPro-1.3.1-1.app/Contents/Resources/julia/Contents/Resources/julia/lib/julia/sys.dylib:?
 [19] (::Atom.var"#139#144"{String,String,Module})() at /Users/connorfuhrman/.juliapro/JuliaPro_v1.3.1-1/packages/Atom/lBERI/src/eval.jl:138
 [20] withpath(::Atom.var"#139#144"{String,String,Module}, ::String) at /Users/connorfuhrman/.juliapro/JuliaPro_v1.3.1-1/packages/CodeTools/sf1Tz/src/utils.jl:30
 [21] withpath(::Function, ::String) at /Users/connorfuhrman/.juliapro/JuliaPro_v1.3.1-1/packages/Atom/lBERI/src/eval.jl:47
 [22] #138 at /Users/connorfuhrman/.juliapro/JuliaPro_v1.3.1-1/packages/Atom/lBERI/src/eval.jl:135 [inlined]
 [23] with_logstate(::Atom.var"#138#143"{String,String,Module}, ::Base.CoreLogging.LogState) at ./logging.jl:395
 [24] with_logger at ./logging.jl:491 [inlined]
 [25] #137 at /Users/connorfuhrman/.juliapro/JuliaPro_v1.3.1-1/packages/Atom/lBERI/src/eval.jl:134 [inlined]
 [26] hideprompt(::Atom.var"#137#142"{String,String,Module}) at /Users/connorfuhrman/.juliapro/JuliaPro_v1.3.1-1/packages/Atom/lBERI/src/repl.jl:85
 [27] macro expansion at /Users/connorfuhrman/.juliapro/JuliaPro_v1.3.1-1/packages/Atom/lBERI/src/eval.jl:133 [inlined]
 [28] macro expansion at /Users/connorfuhrman/.juliapro/JuliaPro_v1.3.1-1/packages/Media/ItEPc/src/dynamic.jl:24 [inlined]
 [29] (::Atom.var"#136#141")(::Dict{String,Any}) at /Users/connorfuhrman/.juliapro/JuliaPro_v1.3.1-1/packages/Atom/lBERI/src/eval.jl:122
 [30] handlemsg(::Dict{String,Any}, ::Dict{String,Any}) at /Users/connorfuhrman/.juliapro/JuliaPro_v1.3.1-1/packages/Atom/lBERI/src/comm.jl:164
 [31] (::Atom.var"#19#21"{Array{Any,1}})() at ./task.jl:333
in expression starting at {my file}

But when I run JuliaPro as sudo the gif executes correctly...

I have tried to place a symbolic link to ffmpeg (installed via Homebrew) at /Users/connorfuhrman/.juliapro/JuliaPro_v1.3.1-1/artifacts/060c5b3c7386ef4a519b0d3e45380e0b905e0bf1/bin/ but that gives this same error that the process failed.

Why would Julia's Plot.gif execute correctly when run as root but not when called regularly? and why would this happen if I chown-ed the relevant folders/files?

Note that I have redacted some personal information from the stack trace that does not alter the relevant information.

Connor Fuhrman
  • 781
  • 6
  • 15
  • I am not sure what exactly the problem is and I cannot reproduce because I do neither have macOS nor JuliaPro, but Plots uses `mktempdir()` and `tempname()` in the code for building animations. Maybe it's an issue with the permissions of the directories/filenames resulting from these functions. – Daniel Schwabeneder Apr 20 '20 at 10:23

1 Answers1

0

I believe that I've solved this. Was a permission issue - I did a chmod to get my way out of this issue!

Connor Fuhrman
  • 781
  • 6
  • 15