Travis woes: warning accessibility bus and segmentation fault

question
travis

#1

Hi CI wizards,
I’m having some trouble with Travis and was wondering if someone could lend me some wisdom.

I’m getting a few of these warnings:

** (julia:6922): WARNING **: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files

and then a segmentation fault right when the test calls a function that plots a few frames to a gif file using the GR backend. Ironically, I would get segmentation faults on my machine if I used the PyPlot backend… So really confused here on what’s causing it.

signal (11): Segmentation fault
while loading /home/travis/.julia/v0.6/TrackRoots/test/runtests.jl, in expression starting on line 44
__longjmp_chk at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
⋮ 

It occurs in this package, which uses: Cairo, DataDeps, Images, ImageMagick, ImageFeatures, Unitful, Distances, UnitfulAngles, OffsetArrays, StaticArrays, Distributions, ImageFiltering, FileIO, Gtk, ImageView, Colors, GtkReactive, FixedPointNumbers, Plots, GR, and HDF5.

Any ideas how I can fix this?

Here is the Travis log report (or here).


Volume 2: warning accessibility bus and segmentation fault on Travis
#2

In an attempt to trouble shoot this, I tried a mock test where I just plot 3 random frames into a gif file and test if the file was created. I got an error could not spawn ffmpeg! Which is weird since I thought that would be one of the dependencies of Plots.jl…? I’ll try and add that to the .travis.yml file.


#3

I don’t know (yet) if these issues are related, but Plots.jl does not have a declared dependency on ffmpeg so any test involving gifs fails on Travis. I reported the issue.


#4

OK, the latest is that Plots.jl would rather stay light and restrain from adding more dependencies. So I’ve asked

To see how others have solved this problem.

The answer to this question, I suspect, is that I need to add ffmpeg as a dependency to my Travis instance.


#5

I thought that the lack of ffmpeg on Travis caused all the warnings and segmentation fault, but I was wrong: after successfully adding ffmpeg to Travis the warnings and segmentation fault were still there. Here’s the log of my most recent tests.

Following @Tamas_Papp’s advice on commenting out the plotting parts to see if it helps I found out that:

  1. The warning: error retrieving accessibility bus address is still there
  2. The segmentation fault is gone

So now I have no idea what causes those warnings, but the segmentation occurs in the plotting part. I’ll continue to comments out parts of the plotting in an attempt to pin point where the fault occurs.


Volume 2: warning accessibility bus and segmentation fault on Travis
#6

Right. I tested a very minimal plot (see here) and it still resulted in a segmentation fault (see here), following a myriad of warnings about “retrieving accessibility bus address” (see here).
I think my next step will be to try and separate between the GUI component and all the rest. Hopefully by removing all the GUI out of this module (and perhaps putting it in a submodule) the plotting will work…


#7

Don’t know if it will help your real issue, but the accessibility bus problem may be alleviated by installing the at-spi2-core Ubuntu package.


#8

Thanks @Ralph_Smith

helped get rid of the bus warnings, so that’s great! Unfortunately the segmentation fault is still there

I’ll try to separate the plots from the GUI now, see how that might help.


#9

In an unexpected twist of cruel fate, the windows appveyor cleared that last run. This should have been impossible, because:

  1. The run before this one failed on Windows
  2. The addition of at-spi2-core should have only affected Linux

Yea, I’m not sure what is going on here, but I’ll just trudge on and pretend there is no spoon.


#10

Day 3. So I separated the GUI from the package completely. Still fragmentation fault. So it wasn’t the GUI. It’s the plots, specifically the Plots.frame. Not sure how to proceed now. Of course appveyor claims it’s all good.