Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

vaa3d failed to call plugin on CentOS server due to X server #6

Closed
lsqshr opened this issue Oct 26, 2016 · 12 comments
Closed

vaa3d failed to call plugin on CentOS server due to X server #6

lsqshr opened this issue Oct 26, 2016 · 12 comments

Comments

@lsqshr
Copy link
Contributor

lsqshr commented Oct 26, 2016

With the 3.200 CentOS release, I tried to start plugins on a CentOS server without X server. Vaa3D complains cannot connect to X server for all plugins.

I can reproduce this error with simply vaa3d -h

Vaa3D: a 3D image visualization and analysis platform developed by Hanchuan Peng and colleagues.

Usage: v3d -h -M moduleCode [all other options specific to different modules]
    -h/H         help information.
    -i <file>                    open single or multiple image (.tif/.tiff, .lsm, .mrc, .raw/.v3draw) / object (.ano, .apo, .swc, .marker) files
    -o <file>                    indicates single or multiple outputs
    -x <plugin_dll_full_path or unique partial path>    a string indicates the full path or a unique partial path of a dll (for a plugin) to be launched.
    -m <menu_name>               a string indicates which menu of a plugin will be called.
    -f <function_name>           a string indicates which function of a plugin will be called.
    -p <parameters>              a string indicates parameters that plugin function use
    -pf <configuration>          a string read from configuration file indicates parameters that plugin function use
    -v                           force to open a 3d viewer when loading an image, otherwise use the default v3d global setting (from "Adjust Preference")
    -na                          open NeuronAnnotator work-mode directly
    -cmd  [headless command-line arguments, intended for compute grid use. Try '-cmd -h' for more information on this option]
: cannot connect to X server

I can evoke plugins from command line on my local ubuntu without trouble.

Is it a known issue?

@zhizhoualan
Copy link
Contributor

try to use " export DISPLAY=:0.0" before calling Vaa3D.

@lsqshr
Copy link
Contributor Author

lsqshr commented Oct 27, 2016

Thanks @zhizhoualan for the hint. unfortunately it did not work for our server.

It complains : cannot connect to X server :0.0 now before looking for plugins. Is there anything special you did to make vaa3d work for the Bigneuron bench test?

PS: our CENTOS server version is CentOS release 6.8 (Final)

@zhizhoualan
Copy link
Contributor

@lsqshr try this: export DISPLAY=:30;Xvfb :30 -auth /dev/null &

@lsqshr
Copy link
Contributor Author

lsqshr commented Oct 27, 2016

@zhizhoualan Great! Thanks Zhi! That seems to get over the X server checking successfully.

Now Vaa3D 3.2 outputs a undefined symbol error instead ./vaa3d: symbol lookup error: ./vaa3d: undefined symbol: _ZN9QListData11detach_growEPii. It seems something missing from the qt. Maybe the system version?

Does it make sense to just totally bypass the GUI components if vaa3d is used in command line for HPC batch processing?

@zhizhoualan
Copy link
Contributor

@lsqshr Yes. We use the same command line to run all algorithms on supercomputers.

Use "sh start_vaa3d.sh" instead of "vaa3d" to launch Vaa3D.

@zhizhoualan
Copy link
Contributor

@lsqshr

I think all QT libs are missing in the released CentOS version. Please download the zip file in the attachment, unzip it and put all so.4 files to the "Vaa3D_CentOS_64bit_v3.200" folder. After that, try "sh start_vaa3d.sh" again. Sorry about that.
Vaa3D_CentOS_64bit_v3.200_Qt_libs.zip

@lsqshr
Copy link
Contributor Author

lsqshr commented Oct 27, 2016

@zhizhoualan

It is working! Now we are ready to kick off! Thanks a lot for the help Zhi!! Just played a couple of plugins and they all work awesome here!

May consider referring this issue / adding such messages in https://github.com/Vaa3D/Vaa3D_Wiki/wiki/commandLineAccess.wiki

@lsqshr
Copy link
Contributor Author

lsqshr commented Oct 27, 2016

Another thing is about the start_vaa3d.sh on Linux machines. I start v3d several times a day on ubuntu and the script was pretty painful. What about including a one shot setup script for Linux machines?

The one I am using for Ubuntu

#setup_vaa3d.sh
#!/bin/sh
dname=$(dirname $(realpath $0));

# Remove the old ones made by Vaa3D
sed -i '/^export V3DPATH=/d' ~/.bashrc;
sed -i '/^alias v3d=/d' ~/.bashrc;
sed -i '/export LD_LIBRARY_PATH=.*Vaa3D_Ubuntu_.*/d' ~/.bashrc;

# Add new Vaa3D shortcuts
echo "export V3DPATH=\"$dname\";" >> ~/.bashrc; # Append the current path to PATH
echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:$dname;" >> ~/.bashrc;
echo "alias v3d=\"$dname/vaa3d\";" >> ~/.bashrc; # Make alias for v3d

For centos it should be

#setup_vaa3d.sh
#!/bin/sh 
dname=$(dirname $(readlink -f $0));

# Remove the old ones made by Vaa3D
sed -i '/^export V3DPATH=/d' ~/.bashrc;
sed -i '/^alias v3d=/d' ~/.bashrc;
sed -i '/export LD_LIBRARY_PATH=.*Vaa3D_Ubuntu_.*/d' ~/.bashrc;

# Add new Vaa3D shortcuts
echo "export V3DPATH=\"$dname\";" >> ~/.bashrc; # Append the current path to PATH
echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:$dname;" >> ~/.bashrc;
echo "alias v3d=\"export DISPLAY=:30;Xvfb :30 -auth /dev/null & $dname/vaa3d\";" >> ~/.bashrc; # Make alias for v3d

In this way, your terminal does not have to go to the vaa3d folder to start v3d. I can make a pull request if you like the idea.

@zhizhoualan
Copy link
Contributor

Thanks for your suggestion! I will give it a try!

On Wed, Oct 26, 2016 at 10:07 PM, Siqi Liu [email protected] wrote:

Another thing is about the start_vaa3d.sh on Linux machines. I start v3d
several times a day on ubuntu and the script was pretty painful. What about
including a one shot setup script for Linux machines?

The one I am using for Ubuntu

#setup_vaa3d.sh#!/bin/sh
dname=$(dirname $(realpath $0));

Remove the old ones made by Vaa3D

sed -i '/^export V3DPATH=/d' ~/.bashrc;
sed -i '/^alias v3d=/d' ~/.bashrc;
sed -i '/export LD_LIBRARY_PATH=.Vaa3D_Ubuntu._/d' ~/.bashrc;

Add new Vaa3D shortcutsecho "export V3DPATH="$dname";" >> ~/.bashrc; # Append the current path to PATHecho "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$dname;" >> ~/.bashrc;echo "alias v3d="$dname/vaa3d";" >> ~/.bashrc; # Make alias for v3d

For centos it should be

#setup_vaa3d.sh#!/bin/sh
dname=$(dirname $(realpath $0));

Remove the old ones made by Vaa3D

sed -i '/^export V3DPATH=/d' ~/.bashrc;
sed -i '/^alias v3d=/d' ~/.bashrc;
sed -i '/export LD_LIBRARY_PATH=.Vaa3D_Ubuntu._/d' ~/.bashrc;

Add new Vaa3D shortcutsecho "export V3DPATH="$dname";" >> ~/.bashrc; # Append the current path to PATHecho "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$dname;" >> ~/.bashrc;echo "alias v3d="export DISPLAY=:30;Xvfb :30 -auth /dev/null & $dname/vaa3d";" >> ~/.bashrc; # Make alias for v3d

In this way, your terminal does not have to go to the vaa3d folder to
start v3d.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#6 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALO4cq5TOY1EuAchHEEJnek3kmE4jOFaks5q4DGMgaJpZM4KgzG2
.

@zhizhoualan
Copy link
Contributor

try this:export DISPLAY=:30;Xvfb :30 -auth /dev/null &

On Wed, Oct 26, 2016 at 6:28 PM, Siqi Liu [email protected] wrote:

Thanks @zhizhoualan https://github.com/zhizhoualan for the hint.
unfortunately it did not work for our server.

It complains : cannot connect to X server :0.0 now before looking for
plugins. Is there anything special you did to make vaa3d work for the
Bigneuron bench test?

PS: our CENTOS server version is CentOS release 6.8 (Final)


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#6 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALO4cpih229dRhfBvMKkGUg5kbYcFPZcks5q3_5JgaJpZM4KgzG2
.

@zhizhoualan
Copy link
Contributor

Yes. We use the same command line to run all algorithms on supercomputers.

Use "sh start_vaa3d.sh" instead of "vaa3d" to launch Vaa3D.

On Wed, Oct 26, 2016 at 8:28 PM, Siqi Liu [email protected] wrote:

@zhizhoualan https://github.com/zhizhoualan Great! Thanks Zhi! That
seems to get over the X server checking successfully.

Now Vaa3D 3.2 outputs a undefined symbol error instead ./vaa3d: symbol
lookup error: ./vaa3d: undefined symbol: _ZN9QListData11detach_growEPii.
It seems something missing from the qt. Maybe the system version?

Does it make sense to just totally bypass the GUI components if vaa3d is
used in command line for HPC batch processing?


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#6 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALO4ctQR0PySL0gjQj09IVzeduZ5EbPDks5q4BprgaJpZM4KgzG2
.

@lsqshr
Copy link
Contributor Author

lsqshr commented Dec 2, 2016

Added a short note at CommandLineAccess WIKI. Closing this issue.

@lsqshr lsqshr closed this as completed Dec 2, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants