Re: selinux and thread local storage

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Reposting with correct backtrace (hopefully)

On 04/14/2015 08:45 PM, mm19827 wrote:
Hi all,

I am trying to figure out something about Red Hat Bugzilla – Bug 1195074,
where nvidia libGL.so.304.125 hangs in an endless loop when loaded by
gnome-shell 3.14.

Sequence is: gnome-shell loads libGL.so which for some reason calls
is_selinux_enabled in libselinux.so at library load time, which runs into a
spinlock within init_thread_destructor when accessing the thread-local
variable destructor_initialized.

gdb print of destructor_initialized reports:
The inferior has not yet allocated storage for thread-local variables in the
shared library `/lib64/libselinux.so.1'

gdb backtrace is:

#0 0x0000003f12412495 in tls_get_addr_tail (ti=0x3509221f58, dtv=0x7ffff7f83390, the_map=0x7ffff7f9c000) at dl-tls.c:751
#1  0x000000350900af63 in getprocattrcon_raw () at procattr.c:73
#2 0x000000350900af63 in getprocattrcon_raw (context=context@entry=0x7fffffffd9f0, pid=pid@entry=0, attr=attr@entry=0x3509019e7b "current") at procattr.c:121 #3 0x000000350900b24e in getcon_raw_internal (c=c@entry=0x7fffffffd9f0) at procattr.c:334
#4  0x000000350900a6ce in is_selinux_enabled_internal () at enabled.c:26
#5  0x000000350d0a5c06 in  () at /lib64/libGL.so.1
#6  0x000000350d084c7b in  () at /lib64/libGL.so.1
#7 0x0000003f1240feed in call_init (l=0x7ffff7f999a8, argc=argc@entry=2, argv=argv@entry=0x7fffffffdc18, env=env@entry=0x7fffffffdc30) at dl-init.c:62 #8 0x0000003f1241003b in _dl_init (env=<optimized out>, argv=<optimized out>, argc=<optimized out>, l=<optimized out>) at dl-init.c:34 #9 0x0000003f1241003b in _dl_init (main_map=0x3f12623148, argc=2, argv=0x7fffffffdc18, env=0x7fffffffdc30) at dl-init.c:124
#10 0x0000003f12400d2a in _dl_start_user () at /lib64/ld-linux-x86-64.so.2
#11 0x0000000000000002 in  ()
#12 0x00007fffffffdfdd in  ()
#13 0x00007fffffffdff2 in  ()
#14 0x0000000000000000 in  ()

This occurs at library load time, so before getting to main().
Additional note is that I have this problem with gnome-shell, but many other executables (including gnome-session, glxinfo, glxgears) load libGL.so.304.125 and run just fine.

This problem is similar to the one described in
http://marc.info/?t=142252697100003&r=1&w=2
although in my case what unlocks the spinlock is to do LD_PRELOAD for libGL.so.

What makes it difficult here is that nvidia libGL.so.304.125 is closed source, and that also loads some libnvidia-tls.so which sounds like being involved with tls (no response from nvidia yet), so not much really clear, but I posted this in case it may suggest anything between selinux and tls.

_______________________________________________
Selinux mailing list
Selinux@xxxxxxxxxxxxx
To unsubscribe, send email to Selinux-leave@xxxxxxxxxxxxx.
To get help, send an email containing "help" to Selinux-request@xxxxxxxxxxxxx.





[Index of Archives]     [Selinux Refpolicy]     [Linux SGX]     [Fedora Users]     [Fedora Desktop]     [Yosemite Photos]     [Yosemite Camping]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux