To fix that issue you only need to recompile compiz too. And that's
enough.

However, then the tests fail because of a crash inside libglvnd at exit:

#0  0x00007ffff3e0c11b in malloc_consolidate (av=av@entry=0x7ffff415dc20 
<main_arena>) at malloc.c:4492
#1  0x00007ffff3e0de08 in _int_free (av=0x7ffff415dc20 <main_arena>, 
p=<optimized out>, have_lock=0) at malloc.c:4398
#2  0x00007ffff3e1244e in __GI___libc_free (mem=<optimized out>) at 
malloc.c:3145
#3  0x00007fffed5102dd in __glDispatchDestroyTable (dispatch=0x5555558d63c0) at 
GLdispatch.c:321
#4  0x00007fffed5df10f in CleanupVendorNameEntry (unused=0x0, 
pEntry=0x555555944210) at libglxmapping.c:311
#5  0x00007fffed5e8866 in __glXMappingTeardown (doReset=0) at 
libglxmapping.c:1061
#6  0x00007fffed5dec80 in __glXFini () at libglx.c:2099
#7  0x00007ffff7de621a in _dl_fini () at dl-fini.c:235
#8  0x00007ffff3dbeec0 in __run_exit_handlers (status=0, listp=0x7ffff415d6f8 
<__exit_funcs>, run_list_atexit=run_list_atexit@entry=true, 
run_dtors=run_dtors@entry=true) at exit.c:83
#9  0x00007ffff3dbef1a in __GI_exit (status=<optimized out>) at exit.c:105
#10 0x00007ffff3da41c8 in __libc_start_main (main=
    0x5555556b9d45 <main(int, char**)>, argc=1, argv=0x7fffffffd128, 
init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, 
stack_end=0x7fffffffd118) at ../csu/libc-start.c:342
#11 0x000055555568908a in _start ()
(gdb) f 3
#3  0x00007fffed5102dd in __glDispatchDestroyTable (dispatch=0x5555558d63c0) at 
GLdispatch.c:321
321         free(dispatch->table);
(gdb) 

In fact when the nux windowthread is closed, and its graphic display is
free'd we do a call to glXDestroyContext which leads to this crash
because for some reason the dispatch->table is already free'd by
something else (the driver?).

Getting rid of that line fixes the issue, but indeed isn't correct.

There's a comment on __glDispatchDestroyTable saying
    /*
     * XXX: Technically, dispatch->currentThreads should be 0 if we're calling
     * into this function, but buggy apps may unload libGLX without losing
     * current, in which case this won't be true when the dispatch table
     * is destroyed.
     */

Not sure if this is the case though, as it's quite cryptic to me.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1749957

Title:
  Unity FTBFS in Bionic

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/libglvnd/+bug/1749957/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to