[torqueusers] Displaying X apps from a job
John Hanks
griznog at engineering.usu.edu
Thu Feb 16 15:02:45 MST 2006
On Thu, 2006-02-16 at 14:37 -0500, Troy Baer wrote:
> 1. The compute nodes may not have a route back to the user's
> workstation (particularly if they're on a non-routable private network),
> so they can't connect to the X display.
First, thanks for the response. You've given me some things to look at.
A given connection looks like:
PC <-> eth0:MASTERNODE:eth1 <-> NODE
eth0 has a public IP, eth1 is the internal private
(10.0.0.0/255.255.252.0) network. With my existing configuration I can
ssh from PC to MASTER then ssh from MASTER to NODE, start and X app and
it displays on PC.
What I can't do is:
ssh from PC to MASTER, submit job with X app and have job display on PC
So I know it's possible for something running on a NODE to display back
to PC, it just doesn't work through submitted jobs.
> 2. The user is logging into the login node in an ssh session, and the
> ssh client is not requesting an X pseudo-display. (This seems to be the
> default in recent OpenSSH release, and I'm not sure why.) If that's the
> case, the user would need to add the following to $HOME/.ssh/config on
> their workstation:
>
> Host name-of-login-node
> ForwardX11 yes
> # the following may also be needed to make things that use
> # X extensions like OpenGL/GLX work with recent OpenSSH releases
> ForwardX11Trusted yes
Both of these are yes in my current config and all /etc/ssh/ssh_config
specify X11Forwarding yes.
> 3. The user is logging into the login node in an ssh session with X
> forwarding enabled on the client side, and sshd either isn't creating an
> X psuedo-display at all or is attaching the X pseudo-display to
> localhost on the login node rather than a real IP address. (This is
> another odd default in recent OpenSSH releases.) To disable that
> behavior, set the following in /etc/ssh/sshd_config and restart sshd:
>
> X11Forwarding yes
> X11UseLocalhost no
I think you've hit the nail on the head here. It smells like passing
around localhost in my DISPLAY setting is the problem. Am I correct that
I need a submitted job to send the display back to
MASTER:ssh-tunnel-listening-for-X rather than localhost? I tried
'X11UseLocalhost no' but unfortunately that setting completely breaks X
over ssh everywhere. I went to all machines involved and ran 'xhost +'
and sniffed the exchanges to make sure iptables wasn't getting in the
way.
so I think what I'm basically trying to get working is:
1. ssh forwards X from $DISPLAY at MASTER:nn back to PC
2. job starts X app on NODE and tells it to connect to MASTER:nn so that
display gets forwarded back to PC.
I guess theoretically 'X11UseLocalhost no' could solve my problem, if
only it didn't break everything :(
The last failed attempt I've made was to leave 'X11UseLocalhost yes' in
and have my job modify DISPLAY to point at the correct place:
#!/bin/sh
#PBS -S /bin/bash
echo "We were given DISPLAY=$DISPLAY"
export DISPLAY=`echo $DISPLAY | sed -e 's/localhost/uinta-admin/'`
echo "We are using DISPLAY=$DISPLAY"
echo "Opening fluent..."
fluent
This fails with the standard "Error: Can't open display." message.
Basically I can get it to work anywhere except when starting the app
through torque.
Thanks for your help,
jbh
More information about the torqueusers
mailing list