[Bioc-devel] GLX extension missing on petty

Dan Tenenbaum dtenenba at fhcrc.org
Fri Apr 5 02:36:21 CEST 2013


On Thu, Apr 4, 2013 at 4:22 PM, Dan Tenenbaum <dtenenba at fhcrc.org> wrote:
> On Wed, Apr 3, 2013 at 9:45 AM, Dan Tenenbaum <dtenenba at fhcrc.org> wrote:
>> Hi Jirka,
>>
>>
>> On Wed, Apr 3, 2013 at 9:06 AM, Jiří Hon <xhonji01 at stud.fit.vutbr.cz> wrote:
>>> Hi,
>>> the latest bioc build of my new package 'triplex' on petty ended with this
>>> error message:
>>>
>>> Warning in rgl.init(initValue) : RGL: GLX extension missing on server
>>> Warning in fun(libname, pkgname) : error in rgl_init
>>>
>>> For full report see
>>> http://bioconductor.org/checkResults/devel/bioc-LATEST/triplex/petty-buildsrc.html
>>>
>>> And I am wondering if there is anything I could do to fix this. Probably
>>> it's a build system problem, but other packages that depends on rgl and
>>> plots in 3D have no such build error (i.e. RDRToolbox) and that makes me
>>> sligthly nervous, so I would really appreciate any advice.
>>
>> This is a build system problem, and I am looking into it.
>> The build system runs under Xvfb, but I have no problem building your
>> package when logged into the console of petty.
>>
>
> A little more info on this.
>
> There are two problems. The first is that as mentioned before, our
> builds do not run physically logged into the console; they use a
> virtual frame buffer (Xvfb).
>
> We could look into changing this, but at present triplex seems to be
> the only package having this problem.
>
> Xvfb apparently does not have the OpenGL extensions compiled in. I
> will check with the XQuartz people. They have been responsive before.
>
> The second problem is if I do log into the actual physical console of
> the machine, I am able to build triplex but I get the following
> segfault when trying to run R CMD check on triplex:
>
>
>
>> However,  do get a segfault when running R CMD check on the triplex
>> source tarball:
>>
>> $ R CMD check --no-vignettes --timings triplex_0.99.0.tar.gz
>> [...]
>> * checking examples ...sh: line 1: 41089 Segmentation fault
>> LANGUAGE=en _R_CHECK_INTERNALS2_=1
>> '/Library/Frameworks/R.framework/Resources/bin/R' --vanilla >
>> 'triplex-Ex.Rout' 2>&1 < triplex-Ex.R
>>  ERROR
>> Running examples in ?~@~Xtriplex-Ex.R?~@~Y failed
>> The error most likely occurred in:
>>
>>> base::assign(".ptime", proc.time(), pos = "CheckExEnv")
>>> ### Name: triplex-package
>>> ### Title: Triplex search and visualization package
>>> ### Aliases: triplex-package triplex
>>> ### Keywords: package
>>>
>>> ### ** Examples
>>>
>>> seq <- DNAString("GGAAAGCAATGCCAGGCAGGG")
>>> t <- triplex.search(seq)
>> Searching for triplex type 0...
>> Searching for triplex type 1...
>> Searching for triplex type 2...
>> Searching for triplex type 3...
>> Searching for triplex type 4...
>> Searching for triplex type 5...
>> Searching for triplex type 6...
>> Searching for triplex type 7...
>>> triplex.diagram(t[1])
>>   A DNAStringSet instance of length 4
>>     width seq                                               names
>> [1]     8 CCCTGCCT                                          minus
>> [2]     8 GGGACGGA                                          plus
>> [3]     8 CCTTTCGT                                          para-minus
>> [4]     5 GGCAT                                             loop
>>> triplex.3D(t[1])
>>
>>  *** caught segfault ***
>> address 0x0, cause 'memory not mapped'
>>
>> Traceback:
>>  1: .C(rgl_material, success = FALSE, idata, cdata, ddata)
>>  2: rgl.material(color = color, back = back, ...)
>>  3: rgl.bg(color = bgr.col)
>>  4: triplex.3D(t[1])
>> aborting ...
>>
>
> This turns out to be reproducible simply like this:
>
> library(rgl)
> example(rgl.material)
>


Duncan Murdoch has pointed me towards a workaround. If you call
another rgl function first (probably one that opens a window), this
segfault won't happen, suggesting some intiialization problem in rgl.

For example, if you do:

example(plot3d)

before the call to rgl.material() there will be no segfault.

However, because of the problem with rgl extensions not being compiled
into Xvfb, this will not totally solve your problem. You'll still need
to disable all vignette chunks and examples that call rgl code.

Hopefully a fix is forthcoming in the rgl package which will at least
take care of the segfault issue.

Thanks,
Dan



> And it's caused by the following line (Material.cpp:39) in the rgl package:
>
>   const char* version = (const char*)glGetString(GL_VERSION);
>
> glGetString() is a function in the OpenGL library and it is segfaulting.
>
>
> Obviously that should not be happening. I'll try to track that down.
>
> In the short term, you can disable all vignette code chunks that use
> rgl (with eval=FALSE), and do the same with examples that use rgl
> (with \dontrun{}).
>
> The problem as far as I can tell is just on Snow Leopard which is what
> we use on our build systems.
> The package builds, checks, installs and runs OK on my Mountain Lion laptop.
>
> Dan
>
>
>> Dan
>>
>>
>>>
>>> Thank you a lot for your time and patience,
>>> Jirka
>>>
>>> _______________________________________________
>>> Bioc-devel at r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/bioc-devel



More information about the Bioc-devel mailing list