Unable to start GraphLab Create

User 2311 | 9/24/2015, 11:32:52 PM

I'm following the online tutorial (https://dato.com/learn/gallery/notebooks/gettingstartedwithgraphlabcreate.html) and I get the error pasted at the bottom of this message when running the following statements: vertices = gl.SFrame.readcsv('http://s3.amazonaws.com/dato-datasets/bond/bondvertices.csv') edges = gl.SFrame.readcsv('http://s3.amazonaws.com/dato-datasets/bond/bondedges.csv')

I'm running Gentoo Linux on a quad-core machine. I am able to sucessfully start the server by entering: /home/sjohnson/anaconda/lib/python2.7/site-packages/graphlab/unityserver --productkey=XXX

Thanks for your help.

[ERROR] Fatal error. The unity_server process cannot be started. There may have been an issue during installation of graphlab-create. Please uninstall graphlab-create and reinstall it, looking for errors that may occur during installation. If the problem persists, please contact support@dato.com.

AssertionError Traceback (most recent call last) <ipython-input-2-b682fd3a888e> in <module>() ----> 1 vertices = gl.SFrame.readcsv('http://s3.amazonaws.com/dato-datasets/bond/bondvertices.csv') 2 edges = gl.SFrame.readcsv('http://s3.amazonaws.com/dato-datasets/bond/bondedges.csv')

/home/sjohnson/anaconda/lib/python2.7/site-packages/graphlab/datastructures/sframe.pyc in readcsv(cls, url, delimiter, header, errorbadlines, commentchar, escapechar, doublequote, quotechar, skipinitialspace, columntypehints, navalues, lineterminator, usecols, nrows, skiprows, verbose, kwargs) 1536 verbose=verbose, 1537 store_errors=False, -> 1538 kwargs)[0] 1539 1540

/home/sjohnson/anaconda/lib/python2.7/site-packages/graphlab/datastructures/sframe.pyc in readcsvimpl(cls, url, delimiter, header, errorbadlines, commentchar, escapechar, doublequote, quotechar, skipinitialspace, columntypehints, navalues, lineterminator, usecols, nrows, skiprows, verbose, storeerrors, **kwargs) 1001 parsingconfig["rowlimit"] = nrows 1002 -> 1003 proxy = UnitySFrameProxy(glconnect.getclient()) 1004 internalurl = makeinternalurl(url) 1005

/home/sjohnson/anaconda/lib/python2.7/site-packages/graphlab/connect/main.pyc in getclient() 256 if not isconnected(): 257 launch() --> 258 assert isconnected(), ENGINESTARTERRORMESSAGE 259 return CLIENT 260

AssertionError: Cannot connect to GraphLab Create engine. Contact support@dato.com for help.


User 1592 | 9/25/2015, 6:18:16 AM


Can you try to run the following script inside your python and send out the output of the script? This can help us isolate the problem:

import os
import subprocess
from subprocess  import PIPE
from graphlab import sys_util

product_key = graphlab.product_key.get_product_key()
license_info = graphlab.product_key._get_license_info()
graphlab.product_key._is_product_key_valid(product_key, license_info)
from graphlab.util.config import DEFAULT_CONFIG
cmd = "\"%s\" --help" % (DEFAULT_CONFIG.server_bin)

msg = subprocess.check_output(cmd, stderr=subprocess.STDOUT, env=sys_util.make_unity_server_env(), shell=True)
print msg

Please send us the information to support@dato.com (in order not to disclose your license key)

User 2336 | 9/28/2015, 2:32:25 PM

@peregin55, I have run into same error despite installing graphlab by tar.gz installer I was provided in an email (it contained product key build in the download name; below, I refer to the key as 'XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX'):

sudo python2 -m pip install --upgrade --no-cache-dir https://get.dato.com/GraphLab-Create/1.6.1/marta.karass@gmail.com/XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX/GraphLab-Create-License.tar.gz

As I said, I kept receivng same AssertionError when trying to use the module.

However, the script above has gave me a hint and a command:

import graphlab

did the trick (thank you, @"Danny Bickson" ! :) )

User 2311 | 10/2/2015, 1:45:02 AM

Hi guys,

Thanks for your help! So I ran a variant of Danny's script:

import subprocess
import graphlab
from graphlab.util.config import DEFAULT_CONFIG
from graphlab import sys_util

cmd = "\"%s\" --help" % (DEFAULT_CONFIG.server_bin)
env = sys_util.make_unity_server_env()

print("cmd = {}".format(cmd))
print("ld-library-path = {}".format(env.get('LD_LIBRARY_PATH')))
msg = subprocess.check_output(cmd, stderr=subprocess.STDOUT, env=env, shell=True)
print msg

which outputs the same failure, but shows that the LDLIBRARYPATH is being overridden to include the Anaconda lib directory:

cmd = "/home/sjohnson/anaconda/lib/python2.7/site-packages/graphlab/unity_server" --help
ld-library-path =/home/sjohnson/anaconda/lib:/etc/java-config-2/current-system-vm/jre/lib/amd64/server:/home/sjohnson/anaconda/lib:/etc/java-config-2/current-system-vm/jre/lib/amd64/server
Traceback (most recent call last):
  File "graphlab_troubleshoot2.py", line 11, in <module>

This makes me think it's an issue linking in a dynamic library, so I ran the following on the command line:

$  export LD_LIBRARY_PATH="/home/sjohnson/anaconda/lib"
$  ldd /home/sjohnson/anaconda/lib/python2.7/site-packages/graphlab/unity_server

/bin/bash: symbol lookup error: /bin/bash: undefined symbol: rl_signal_event_hook

After searching the web I found people having simliar issues in other apps. Sounds like it is an underlying issue involving readline (I'm running bash 4.3 and readline-6.3) https://bugs.archlinux.org/task/39533 https://github.com/joeferraro/MavensMate-SublimeText/issues/523 https://github.com/docker/compose/issues/170

Regardless, I can work around it by setting my LDLIBRARYPATH back to the standard locations, overriding Anaconda's libs:

export LD_LIBRARY_PATH='/usr/lib:/lib:${LD_LIBRARY_PATH}'

With that in place I can use GraphLab Create. Thanks!

User 940 | 10/6/2015, 5:27:06 PM

@peregin55 ,

I'm glad to hear this! Let us know if you have any other questions.

Cheers! -Piotr

User 3120 | 1/24/2016, 7:21:03 PM

Hello @piotr ,

I'm running Manjaro linux and installed GraphLab using anaconda.

@peregin55 saved me with his workaround. However, I'm not completely sure how to solve the issue permanently? Should I consider the option of doing the LDLIBRARYPATH override each time I activate my working conda env?

Or is there a safe way to override permanently the variable in the conda env?

edit: I found a way to do it by following instructions found here: http://stackoverflow.com/questions/31598963/how-to-set-specific-environment-variables-when-activating-conda-environment

Thanks for the solution!

Sorry for my newbie questions, Thanks, Arnaud