David,

We seem to have stalled out on this, and there were a lot of rapid-fire
e-mails exchanged between you and Nathan, in which multiple things were
tried and multiple interleaved results posted, so this e-mail is my
attempt to summarize what we know.  I would encourage everyone involved
to attempt to consolidate their responses into one e-mail and wait for a
reply before posting another one.

-- The problem is clearly due to librrfaker.so not being loaded properly
into the app.  Thus, when the app attempts to call a GLX command, it
fails because TurboVNC has no GLX extension.

-- After examining the VirtualGL trace output from the app, it does
appear that VirtualGL is being successfully loaded into something.  GLX
functions are being called, at least initially.  However, with complex
apps, one never knows whether librrfaker.so is being loaded successfully
into one process but not successfully into another.

-- Referencing your attempt to run with vglrun -d :1.0, don't do that.
It's incorrect.  -d specifies the 3D X server, which should almost
always be left at the default of :0.0.

-- Referencing your attempt to run with -c proxy, that is implied in
TurboVNC, so no need to specify it.

-- This type of problem is an issue between librrfaker.so and the app,
so it will not matter whether you are running in TurboVNC or using the
VGL Transport and an SSH connection.

-- A possible explanation for the "ERROR: ld.so: object 'librrfaker.so'
from LD_PRELOAD cannot be preloaded: ignored." message is that either
the application or something else launched from the application's script
is a setuid/setgid executable (refer to Chapter 12 of the VirtualGL
User's Guide.)  On modern Linux systems, this error will not prevent an
executable from launching, so if the error were being generated by an
executable in the script (other than the main application), then it
should be innocuous, but if the main application is generating the
error, then that would explain why librrfaker.so is not being loaded.

   Since you have tried moving vglrun down to the bottom of the launch
script (which I gather is a line that starts mono), then that eliminates
the possibility that something launched by the script is causing the
problem.  However, mono might be setuid/setgid, or some other executable
it launches might be.

-- We know your VirtualGL setup works, because you were able to vglrun
glxgears.

-- The "indirect context" messages are very odd.  For starters, when you
specified vglrun -d 1.0, VirtualGL never should have made it as far as
printing that message, because TurboVNC does not have a GLX extension.
The only scenario I can come up with is that somehow VirtualGL is
loading the version of libGL.so.1 that is shipped with the application.

-- The 'Xlib:  extension "NV-GLX" missing on display "localhost:10.0".'
message is innocuous and always occurs when running any type of 3D
application remotely with nVidia drivers on the server end.  Blame nVidia.


So, let's be scientific about this and try a few different
configurations that should help me narrow down what is going on.  For
each of these, post the console output (not tracing information, just
the simple output from VirtualGL and the application as you try to
launch it.)

(A)
-- Set the setuid bit on librrfaker.so and libdlfaker.so.  As root,

   chmod u+s /usr/lib/librrfaker.so
   chmod u+s /usr/lib/libdlfaker.so
   chmod u+s /usr/lib64/librrfaker.so
   chmod u+s /usr/lib64/libdlfaker.so

-- Use an unmodified application environment and application startup script
-- Use TurboVNC as the 2D X server
-- vglrun the application startup script with no arguments to vglrun

If (A) doesn't work, then I need you to run the following
configurations.  You've run some of these before, but I need to see the
console output from each for comparison (for instance, attached as
"consoleA.log", "consoleB.log", etc.):

(B)
-- Leave the setuid bits set on librrfaker.so and libdlfaker.so
-- Modify the startup script so that vglrun prefixes the last command
(presumably 'mono'.)
-- Execute the modified startup script (without using vglrun) in TurboVNC

(C)
-- Unset the setuid bits on librrfaker.so and libdlfaker.so (replace
chmod u+s with chmod u-s in the above)
-- Leave the startup script modified
-- Execute the modified startup script (without using vglrun) in TurboVNC

(D)
-- Leave the setuid bits on librrfaker.so and libdlfaker.so unset
-- Leave the startup script modified
-- Rename any instances of libGL.so* in the application's install
directory to something else.
-- Execute the modified startup script (without using vglrun) in TurboVNC

(E)
-- Leave the setuid bits on librrfaker.so and libdlfaker.so unset
-- Revert the startup script to its unmodified state
-- Leave the libGL.so* files renamed
-- vglrun the unmodified startup script in TurboVNC without any
arguments to vglrun.



On 3/23/11 9:23 AM, Nathan Kidd wrote:
> On 11-03-23 09:48 AM, r...@englobe-tec.com wrote:
>>
>> When using launcher130 I get the following error, does it give any light
>> on the issue?
>>
>> ERROR: ld.so: object 'librrfaker.so' from LD_PRELOAD cannot be
>> preloaded: ignored.
> 
> It means the system couldn't find librrfaker.so or couldn't find a 
> version with the correct bit-ness (32/64).  This is a situation where 
> your LD_DEBUG=libs log will show you exactly which paths it tried to 
> load librrfaker.so, so you can see where the problem is.
> 
> -Nathan
> 
> ------------------------------------------------------------------------------
> Enable your software for Intel(R) Active Management Technology to meet the
> growing manageability and security demands of your customers. Businesses
> are taking advantage of Intel(R) vPro (TM) technology - will your software 
> be a part of the solution? Download the Intel(R) Manageability Checker 
> today! http://p.sf.net/sfu/intel-dev2devmar
> _______________________________________________
> VirtualGL-Users mailing list
> VirtualGL-Users@lists.sourceforge.net
> 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
VirtualGL-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/virtualgl-users

Reply via email to