Jump to content

HQUEUE client on OS X


Recommended Posts

Hi all, I am hoping I can get some help on setting up a Mac hqueue farm. I've set up an hqueue farm for an all-Windows network and it works great. 

 

It may be worth noting that on the Windows farm, whenever we submit a job to Hqueue server via an Hqueue ROP we set the Target HFS directory to "C:\Program Files\Side Effects Software\Houdini 13.0.343" so that (I guess) the client machine finds the Houdini installation. I did not bother setting up a shared directory where client machines could load Houdini from a central location.

 

For the Mac farm, I've got Hqueue Server running on an OS X machine and have added three Macs as clients. They show up in the Hqueue Clients page and are available to render. Houdini runs just fine on all of them

 

The problem I'm having happens after submitting from the Hqueue ROP. At first I tried setting the Target HFS directory to 

/Applications/Houdini 13.0.343/. That resulted in the error "No Such File or Directory". I then removed the space so it read /Applications/Houdini13.0.343/ (and changed all the Houdini directories to match) and that sort of worked but not in the right way. Now the Hqueue Server error reads /houdini_setup: No such file or directory

 

I looked in the Houdini install directory on the Windows machines and such a file exists, but on the OS X machines, "houdini_setup" does not exist, so the error makes sense and confirms that at least I've formatted the path correctly.

 

Is the only way to get the Mac clients to work is to set up the Shared directory and place a Houdini installation in that shared folder? I definitely haven't tried that yet but I just figure if Houdini is already installed on the client machines, why make them download it from a shared directory?

 

Thanks for any help/suggestions!

Link to comment
Share on other sites

Hi

 

Well Hqueue can be fiddly no doubt.

 

Im running Hqueue across H12.1 versions and on Linux currently (so should be similar to MAC) - and i came across such problems before.

 

To try fix  - Firstly make sure your machines can see your shared folder.

 

ls -lh /sharedFolder/../.../example.hip

 

Next, try loading the .hip file using non-interactive Houdini on your client machines.

 

Source the houdini_setup in the installed '/opt/hfs..' directory and then run:

hython

Then in hython, run this command:

hou.hipFile.load("/sharedFolder/.../..../example.hip")

See if that command runs successfully (i.e. no output) or if it raises an exception or
error.

Finally, you need to confirm that the clients can reach the HQueue Server.

 

To do this create a python script called 'test_connection.py' as such :

 

import xmlrpclib

server = xmlrpclib.ServerProxy(your Hqueue server address, mine for example is "http://ODIN:5000")

print server.ping()

 

copy the created 'test_connection.py' file to the shared folder, so that clients can access the file.

On a command line on a client, cd to the shared folder and type:

python test_connection.py

This should return a value of 'true' – if not double check your '/etc/hosts' file for IP
and hostname definitions

 

Finally, on your Hqueue render ROP - make sure 'Render target hip file' is selected, and specify your correct path as per shared folder, or use the $HQROOT variable here.

 

If you still have problems there must be an error with either your python installation ( or any python variables you have set) or there is a problem with your Hqueue installation.....

 

Its tricky but SESI can really help you with this - they did me :)

Link to comment
Share on other sites

Also - i forgot - make sure your target HFS reads as $HFS;

 

and always make sure Hqueue server and client is running - on linux....is;

 

# Restart HQueue Server
alias hqsr='cd /opt/hqueue
sudo ./scripts/hqserverd restart'

# Restart HQueue Client
alias hqcr='cd /home/neil/hqclient
./hqclientd restart'
 

Link to comment
Share on other sites

Wow, thanks so much for this detailed response, Zweger. I tried everything you listed above and it all checks out.
 
One weird thing is that after I restarted two of the three client machines the Hqueue clients no longer show up on the Hqueue server page (Hqueue reports them as "not responding").

 

I tried unloading and loading Hqueue client on these machines using

launchctl unload /Library/LaunchDaemons/com.sidefx.hqclient.plist
launchctl load /Library/LaunchDaemons/com.sidefx.hqclient.plist

... but it just tells me it's already loaded.

 

I looked in the Activity monitor for both the client that's still running and the two that aren't, and I note that hquser is running fewer processes on the failed client machines, namely sshd and hserver. Actually, hserver was started by the login account (an admin account) rather than hquser... I wonder if that has any bearing on the problem. 

Link to comment
Share on other sites

Hmm - yes that sounds problematic....

 

Ive opted to forget about an hquser - so install hqclient as a regular user not as root.  - as i have a simpler set up to you .

 

I just have the same named users across 2 machines - with same group and password id's  -

 

as for the clients not showing up - are you able to select a client in the webpage and select activate? (sometimes they get disabled)

 

Now that you know your shared network is working fine - i'd be tempted to restart an installation for both hqueue and clients - also do you have support with sesi - they can really help you debug your set up..

Link to comment
Share on other sites

Thanks again, Zweger.

 

Ive opted to forget about an hquser - so install hqclient as a regular user not as root

 

I wish I could! In the Hqueue help docs it says to install the Mac client from the Hqueue server Client page, so that's what I've been doing. If I choose to create the hquser account at least I succeed in creating an hqueue client on the target machine. Opting for "Use an existing account to run client daemon" just gives me a permission denied error. :(

 

You're right, I should contact SESI support with this. Right now the only way I can make it work is to create the client using an hquser account (from the hqueue server page), then log into the hquser account on the client machine so it can read from the shared drive. 

Link to comment
Share on other sites

Ok – annoying - its a lot simpler i must admit on linux. You just follow the command prompts in the shell on each client and install Hqclient. (running not as root)

Yes SESI can really help you – it took me a while to get my system up and running. Here's a few more pointers which can throw things out if incorrect.

Double check your hqueue installation. Sometimes the HQueue installation is accidentally picking up the Python distribution that's installed on the system by default instead of the Python distro that gets installed in /opt/hqueue. Check if there are any Python environment variables before running the HQueue installer. For example, do you have $PYTHONHOME, $PYTHONSTARTUP or $PYTHONPATH set in your environment....

Double check your exports being shared – and any file permission inaccuracies. I'm using NFS on linux which works great - but I still I had to change some options (do the research) so that files created and read had the correct permissions.

Double check your shared folder and mount points. All mount points must be the same on the clients – And lastly check your hqserver settings – that the shared network host, shared network path and shared network mount point reads correctly.

On Linux its this file: /opt/hqueue/hqserver.ini

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...