Bizarre.  I don't see anything in there that could be causing a
deadlock.  None of the other threads has the mutex that thread 1 is
attempting to acquire.  If the mutex were a fast mutex, then a deadlock
would occur, because fconfig_instance() has already locked the mutex,
and it calls fconfig_init(), which attempts to lock it again, but the
mutex is a recursive mutex, so this should work (and does work with
every other app.)


On 4/19/11 9:30 AM, David Björkevik wrote:
> Hi again,
> 
> I was advised by Altair support to try and downgrade to VGL 2.1.4, and 
> now it works.  We will also try VGL 2.2.1 together with the beta of 
> HyperView 11 tomorrow.
> 
> Thank you for all your help. I'm sending you a more exhaustive set of 
> backtraces.
> 
> /David
> 
> (cut from pstree)
> bash(12982)---hv(13062)---hw(13481)-+-{hw}(13483)
>                                      |-{hw}(13484)
>                                      |-{hw}(13485)
>                                      `-{hw}(13486)
> 
> gdb --pid=13481
> (gdb) info threads
>    5 Thread 0x40ee5940 (LWP 13483)  0x000000378940aee9 in 
> pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
>    4 Thread 0x418e6940 (LWP 13484)  0x000000378940b150 in 
> pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
>    3 Thread 0x422e7940 (LWP 13485)  0x000000378940cd01 in sem_wait ()
>     from /lib64/libpthread.so.0
>    2 Thread 0x42ce8940 (LWP 13486)  0x00000037888cb186 in poll ()
>     from /lib64/libc.so.6
> * 1 Thread 0x2b6e9ca73400 (LWP 13481)  0x000000378940d4c4 in 
> __lll_lock_wait ()
>     from /lib64/libpthread.so.0
> (gdb) backtrace
> #0  0x000000378940d4c4 in __lll_lock_wait () from /lib64/libpthread.so.0
> #1  0x0000003789408e1a in _L_lock_1034 () from /lib64/libpthread.so.0
> #2  0x0000003789408cdc in pthread_mutex_lock () from /lib64/libpthread.so.0
> #3  0x00002b6e97e332e3 in fconfig_init() () from /usr/lib64/librrfaker.so
> #4  0x00002b6e97e2edfb in fconfig_instance() () from 
> /usr/lib64/librrfaker.so
> #5  0x00002b6e97de4f02 in XOpenDisplay () from /usr/lib64/librrfaker.so
> #6  0x00002b6e9c048b2d in MwX11Init ()
>     from 
> /disk/sw/altair/hw10/altair/hw/mw/linux64/mw/lib-amd64_linux_optimized/libgdiuser32.so
> #7  0x00002b6e9bff8d8e in MwMainwinInit ()
>     from 
> /disk/sw/altair/hw10/altair/hw/mw/linux64/mw/lib-amd64_linux_optimized/libgdiuser32.so
> #8  0x0000000000427e25 in mainwin_init ()
> #9  0x00002b6e9c70213e in MwInitDLL ()
>     from 
> /disk/sw/altair/hw10/altair/hw/mw/linux64/mw/lib-amd64_linux_optimized/libkernel32.so
> #10 0x00002b6e9c3be3c8 in _Initializermsvcrt::pre_construct() ()
>     from 
> /disk/sw/altair/hw10/altair/hw/mw/linux64/mw/lib-amd64_linux_optimized/libmsvcrt.so
> #11 0x00002b6e9c3be460 in _Initializermsvcrt::_Initializermsvcrt() ()
>     from 
> /disk/sw/altair/hw10/altair/hw/mw/linux64/mw/lib-amd64_linux_optimized/libmsvcrt.so
> (gdb) thread 2
> [Switching to thread 2 (Thread 0x42ce8940 (LWP 13486))]#0 
> 0x00000037888cb186 in poll () from /lib64/libc.so.6
> (gdb) backtrace
> #0  0x00000037888cb186 in poll () from /lib64/libc.so.6
> #1  0x00002b6e9c6f31e8 in RawInputThread::WaitInSelect(unsigned int) ()
>     from 
> /disk/sw/altair/hw10/altair/hw/mw/linux64/mw/lib-amd64_linux_optimized/libkernel32.so
> #2  0x00002b6e9c6f32b1 in MwNewRawInputThread() ()
>     from 
> /disk/sw/altair/hw10/altair/hw/mw/linux64/mw/lib-amd64_linux_optimized/libkernel32.so
> #3  0x00002b6e9c68b060 in MwThread(void*) ()
>     from 
> /disk/sw/altair/hw10/altair/hw/mw/linux64/mw/lib-amd64_linux_optimized/libkernel32.so
> #4  0x000000378940673d in start_thread () from /lib64/libpthread.so.0
> #5  0x00000037888d3f6d in clone () from /lib64/libc.so.6
> (gdb) thread 3
> [Switching to thread 3 (Thread 0x422e7940 (LWP 13485))]#0 
> 0x000000378940cd01 in sem_wait () from /lib64/libpthread.so.0
> (gdb) backtrace
> #0  0x000000378940cd01 in sem_wait () from /lib64/libpthread.so.0
> #1  0x00002b6e9c66feac in Notification::wait() ()
>     from 
> /disk/sw/altair/hw10/altair/hw/mw/linux64/mw/lib-amd64_linux_optimized/libkernel32.so
> #2  0x00002b6e9c67273e in MwAsyncSignalThread ()
>     from 
> /disk/sw/altair/hw10/altair/hw/mw/linux64/mw/lib-amd64_linux_optimized/libkernel32.so
> #3  0x000000378940673d in start_thread () from /lib64/libpthread.so.0
> #4  0x00000037888d3f6d in clone () from /lib64/libc.so.6
> (gdb) thread 4
> [Switching to thread 4 (Thread 0x418e6940 (LWP 13484))]#0 
> 0x000000378940b150 in pthread_cond_timedwait@@GLIBC_2.3.2 () from 
> /lib64/libpthread.so.0
> (gdb) backtrace
> #0  0x000000378940b150 in pthread_cond_timedwait@@GLIBC_2.3.2 ()
>     from /lib64/libpthread.so.0
> #1  0x00002b6e9c679f39 in Mwcond_timwait(MwPthreadCond*, InProc_Mutex*, 
> timespec*) ()
>     from 
> /disk/sw/altair/hw10/altair/hw/mw/linux64/mw/lib-amd64_linux_optimized/libkernel32.so
> #2  0x00002b6e9c6916a8 in MwTimerThread(void*) ()
>     from 
> /disk/sw/altair/hw10/altair/hw/mw/linux64/mw/lib-amd64_linux_optimized/libkernel32.so
> #3  0x000000378940673d in start_thread () from /lib64/libpthread.so.0
> #4  0x00000037888d3f6d in clone () from /lib64/libc.so.6
> (gdb) thread 5
> [Switching to thread 5 (Thread 0x40ee5940 (LWP 13483))]#0 
> 0x000000378940aee9 in pthread_cond_wait@@GLIBC_2.3.2 () from 
> /lib64/libpthread.so.0
> (gdb) backtrace
> #0  0x000000378940aee9 in pthread_cond_wait@@GLIBC_2.3.2 ()
>     from /lib64/libpthread.so.0
> #1  0x00002b6e9c69269b in 
> SystemThread::get_command(Enter_Kernel_Critical&) ()
>     from 
> /disk/sw/altair/hw10/altair/hw/mw/linux64/mw/lib-amd64_linux_optimized/libkernel32.so
> #2  0x00002b6e9c6928e8 in SystemThread::MwSystemThread2(void*) ()
>     from 
> /disk/sw/altair/hw10/altair/hw/mw/linux64/mw/lib-amd64_linux_optimized/libkernel32.so
> #3  0x000000378940673d in start_thread () from /lib64/libpthread.so.0
> #4  0x00000037888d3f6d in clone () from /lib64/libc.so.6
> 
> 
> gdb --pid=13483
> (gdb) info threads
> * 1 process 13483  0x000000378940aee9 in pthread_cond_wait@@GLIBC_2.3.2 ()
>     from /lib64/libpthread.so.0
> (gdb) backtrace
> #0  0x000000378940aee9 in pthread_cond_wait@@GLIBC_2.3.2 ()
>     from /lib64/libpthread.so.0
> #1  0x00002b6e9c69269b in 
> SystemThread::get_command(Enter_Kernel_Critical&) ()
>     from 
> /disk/sw/altair/hw10/altair/hw/mw/linux64/mw/lib-amd64_linux_optimized/libkernel32.so
> #2  0x00002b6e9c6928e8 in SystemThread::MwSystemThread2(void*) ()
>     from 
> /disk/sw/altair/hw10/altair/hw/mw/linux64/mw/lib-amd64_linux_optimized/libkernel32.so
> #3  0x000000378940673d in start_thread () from /lib64/libpthread.so.0
> #4  0x00000037888d3f6d in clone () from /lib64/libc.so.6
> 
> gdb --pid=13484
> (gdb) info threads
> * 1 process 13484  0x000000378940b150 in 
> pthread_cond_timedwait@@GLIBC_2.3.2 ()
>     from /lib64/libpthread.so.0
> (gdb) backtrace
> #0  0x000000378940b150 in pthread_cond_timedwait@@GLIBC_2.3.2 ()
>     from /lib64/libpthread.so.0
> #1  0x00002b6e9c679f39 in Mwcond_timwait(MwPthreadCond*, InProc_Mutex*, 
> timespec*) ()
>     from 
> /disk/sw/altair/hw10/altair/hw/mw/linux64/mw/lib-amd64_linux_optimized/libkernel32.so
> #2  0x00002b6e9c6916a8 in MwTimerThread(void*) ()
>     from 
> /disk/sw/altair/hw10/altair/hw/mw/linux64/mw/lib-amd64_linux_optimized/libkernel32.so
> #3  0x000000378940673d in start_thread () from /lib64/libpthread.so.0
> #4  0x00000037888d3f6d in clone () from /lib64/libc.so.6
> 
> gdb --pid=13485
> (gdb) info threads
> * 1 process 13485  0x000000378940cd01 in sem_wait ()
>     from /lib64/libpthread.so.0
> (gdb) backtrace
> #0  0x000000378940cd01 in sem_wait () from /lib64/libpthread.so.0
> #1  0x00002b6e9c66feac in Notification::wait() ()
>     from 
> /disk/sw/altair/hw10/altair/hw/mw/linux64/mw/lib-amd64_linux_optimized/libkernel32.so
> #2  0x00002b6e9c67273e in MwAsyncSignalThread ()
>     from 
> /disk/sw/altair/hw10/altair/hw/mw/linux64/mw/lib-amd64_linux_optimized/libkernel32.so
> #3  0x000000378940673d in start_thread () from /lib64/libpthread.so.0
> #4  0x00000037888d3f6d in clone () from /lib64/libc.so.6
> 
> gdb --pid=13486
> (gdb) info threads
> * 1 process 13486  0x00000037888cb186 in poll () from /lib64/libc.so.6
> (gdb) backtrace
> #0  0x00000037888cb186 in poll () from /lib64/libc.so.6
> #1  0x00002b6e9c6f31e8 in RawInputThread::WaitInSelect(unsigned int) ()
>     from 
> /disk/sw/altair/hw10/altair/hw/mw/linux64/mw/lib-amd64_linux_optimized/libkernel32.so
> #2  0x00002b6e9c6f32b1 in MwNewRawInputThread() ()
>     from 
> /disk/sw/altair/hw10/altair/hw/mw/linux64/mw/lib-amd64_linux_optimized/libkernel32.so
> #3  0x00002b6e9c68b060 in MwThread(void*) ()
>     from 
> /disk/sw/altair/hw10/altair/hw/mw/linux64/mw/lib-amd64_linux_optimized/libkernel32.so
> #4  0x000000378940673d in start_thread () from /lib64/libpthread.so.0
> #5  0x00000037888d3f6d in clone () from /lib64/libc.so.6
> 
> 
> On 2011-04-19 11:28, DRC wrote:
>> Can you get backtraces from the other threads to see where the deadlock
>> is?  'info threads' shows a list and 'thread<number>' switches to
>> another thread.
>>
>>
>> On 4/19/11 3:05 AM, David Björkevik wrote:
>>> Hi,
>>>
>>> I run VirtualGL 2.2.1 from the RPM. The hang occurs both with and
>>> without -nodl. Here's a backtrace from the hanging process.
>>>
>>> (gdb) backtrace
>>> #0  0x000000378940d4c4 in __lll_lock_wait () from /lib64/libpthread.so.0
>>> #1  0x0000003789408e1a in _L_lock_1034 () from /lib64/libpthread.so.0
>>> #2  0x0000003789408cdc in pthread_mutex_lock () from /lib64/libpthread.so.0
>>> #3  0x00002b6db36d02e3 in fconfig_init() () from /usr/lib64/librrfaker.so
>>> #4  0x00002b6db36cbdfb in fconfig_instance() () from
>>> /usr/lib64/librrfaker.so
>>> #5  0x00002b6db3681f02 in XOpenDisplay () from /usr/lib64/librrfaker.so
>>> #6  0x00002b6db78e5b2d in MwX11Init ()
>>>      from
>>> /disk/sw/altair/hw10/altair/hw/mw/linux64/mw/lib-amd64_linux_optimized/libgdiuser32.so
>>> #7  0x00002b6db7895d8e in MwMainwinInit ()
>>>      from
>>> /disk/sw/altair/hw10/altair/hw/mw/linux64/mw/lib-amd64_linux_optimized/libgdiuser32.so
>>> #8  0x0000000000427e25 in mainwin_init ()
>>> #9  0x00002b6db7fa013e in MwInitDLL ()
>>>      from
>>> /disk/sw/altair/hw10/altair/hw/mw/linux64/mw/lib-amd64_linux_optimized/libkernel32.so
>>> #10 0x00002b6db7c5b3c8 in _Initializermsvcrt::pre_construct() ()
>>>      from
>>> /disk/sw/altair/hw10/altair/hw/mw/linux64/mw/lib-amd64_linux_optimized/libmsvcrt.so
>>> #11 0x00002b6db7c5b460 in _Initializermsvcrt::_Initializermsvcrt() ()
>>>      from
>>> /disk/sw/altair/hw10/altair/hw/mw/linux64/mw/lib-amd64_linux_optimized/libmsvcrt.so
>>>
>>> /David
>>>
>>> On 2011-04-15 12:29, DRC wrote:
>>>> Popping the stack on this.  Did -nodl work?  Also make sure you are
>>>> using the latest version of VirtualGL.  The app appears to be using
>>>> WINE, and there was a fix for WINE in VirtualGL 2.2.1.
>>>>
>>>> Barring all of that, Altair is very familiar with VirtualGL and uses it
>>>> on a daily basis with their products, so I would suggest trying their
>>>> support channels.  If you can't resolve the issue directly with them,
>>>> come back to me, and I'll ask them for a demo version of the latest
>>>> version of HyperView.
>>>>
>>>> I know VGL has worked successfully with HyperView in the past, so
>>>> whatever problem there is apparently is a recent one.
>>>>
>>>>
>>>> On 4/13/11 4:03 AM, David Björkevik wrote:
>>>>> Hi List
>>>>>
>>>>> I'm trying to run Altair's HyperView with vglrun, but it hangs on
>>>>> startup. The hang happens right after
>>>>>
>>>>> [VGL] Shared memory segment ID for vglconfig: 21102608
>>>>>
>>>>> and an strace shows a hang on a futex system call. My guess is that
>>>>> there is some kind of issue with communication between
>>>>>
>>>>> A trace reveals the following (before the shared memory message above):
>>>>>
>>>>> [VGL] dlopen
>>>>> (filename=/disk/sw/altair/hw10/altair/hw/mw/linux64/mw/lib-amd64_linux_optimized/libadvapi32.so
>>>>> flag=258 retval=0x2b556893ea90)
>>>>> [VGL] dlopen
>>>>> (filename=/disk/sw/altair/hw10/altair/hw/mw/linux64/mw/lib-amd64_linux_optimized/libadvapi32impl.so
>>>>> flag=258
>>>>> [VGL] dlopen
>>>>> (filename=/disk/sw/altair/hw10/altair/hw/mw/linux64/mw/lib-amd64_linux_optimized/libkernel32.so
>>>>> flag=258 retval=0x2b5568d61000)
>>>>>
>>>>> I've tried both running vglrun on the startup script, as well as
>>>>> patching the script to have vglrun being executed right before the hw
>>>>> binary.
>>>>>
>>>>> I'm running out of ideas; what else can I test?
>>>>>
>>>>> Regards,
>>>>> David
>>>>>
>>>>> ------------------------------------------------------------------------------
>>>>> Forrester Wave Report - Recovery time is now measured in hours and minutes
>>>>> not days. Key insights are discussed in the 2010 Forrester Wave Report as
>>>>> part of an in-depth evaluation of disaster recovery service providers.
>>>>> Forrester found the best-in-class provider in terms of services and 
>>>>> vision.
>>>>> Read this report now!  http://p.sf.net/sfu/ibm-webcastpromo
>>>>> _______________________________________________
>>>>> VirtualGL-Users mailing list
>>>>> [email protected]
>>>>> https://lists.sourceforge.net/lists/listinfo/virtualgl-users
>>>>
>>>> ------------------------------------------------------------------------------
>>>> Benefiting from Server Virtualization: Beyond Initial Workload
>>>> Consolidation -- Increasing the use of server virtualization is a top
>>>> priority.Virtualization can reduce costs, simplify management, and improve
>>>> application availability and disaster protection. Learn more about boosting
>>>> the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
>>>> _______________________________________________
>>>> VirtualGL-Users mailing list
>>>> [email protected]
>>>> https://lists.sourceforge.net/lists/listinfo/virtualgl-users
>>>
>>>
>>
>> ------------------------------------------------------------------------------
>> Benefiting from Server Virtualization: Beyond Initial Workload
>> Consolidation -- Increasing the use of server virtualization is a top
>> priority.Virtualization can reduce costs, simplify management, and improve
>> application availability and disaster protection. Learn more about boosting
>> the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
>> _______________________________________________
>> VirtualGL-Users mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/virtualgl-users
> 
> 

------------------------------------------------------------------------------
Benefiting from Server Virtualization: Beyond Initial Workload 
Consolidation -- Increasing the use of server virtualization is a top
priority.Virtualization can reduce costs, simplify management, and improve 
application availability and disaster protection. Learn more about boosting 
the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
_______________________________________________
VirtualGL-Users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/virtualgl-users

Reply via email to