Unable to evaluate lambdas. lambda workers did not start

User 1638 | 3/25/2015, 3:43:37 PM

Hi,

I've several other threads discussing this problem yet I didn't manage to offered solutions to fix my problem :(

I installed VMware's VM player, set a machine of 2 cores and 4GB RAM, and installed ubuntu 14.04. The host OS is Windows 8.1 I then also installed python 2.7.9 and the graphlab-create package (version 1.3).

I tried to follow the <a href="http://dato.com/learn/userguide/sframe/tabular-data.html">tutorial example</a> to get the hang of things. After trying these lines of code: <pre class="CodeBlock"><code>songs = gl.SFrame.readcsv("http://s3.amazonaws.com/dato-datasets/millionsong/songdata.csv ") songs['year'] = songs['year'].apply(lambda x: None if x == 0 else x) songs.head(5)</code></pre>

the first two lines goes well, the third returns this: <blockquote class="Quote">Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python2.7/dist-packages/graphlab/datastructures/sframe.py", line 2324, in head return SFrame(proxy=self.proxy.head(n)) File "cysframe.pyx", line 97, in graphlab.cython.cysframe.UnitySFrameProxy.head File "cysframe.pyx", line 100, in graphlab.cython.cysframe.UnitySFrameProxy.head RuntimeError: Runtime Exception. Unable to evaluate lambdas. lambda workers did not start</blockquote>

Since then I tried: 1. Using the preinstalled VM with graphlab create 2. Setting virtual environment 3. Starting fresh with an empty VM 4. Setting a virtual environment within the above mentioned VM 5. Limiting the number of lambda workers as shown <a href="http://forum.dato.com/discussion/834/unable-to-evaluate-lambdas-lambda-workers-did-not-start">here</a>

I'm stuck... any suggestions how to solve this would be appreciated.

Comments

User 398 | 3/25/2015, 5:13:08 PM

Hi DannyL,

Thanks for using GraphLab Create! It sounds like you've tried a lot of the things that we would suggest to address this issue w/ lambda workers.

I am unable to reproduce this issue using Python 2.7.6 on a fresh Ubuntu 14.04 EC2 instance, also with GraphLab Create 1.3.0. I will try again w/ Python 2.7.9, but my hunch is that something is amiss in your environment. One thing you might try is to explicitly set your the following environment variable:

<code class="CodeInline">export GLSYSPATH=ipython -c "import sys; print ':'.join(sys.path)"</code>

In some situations, the Python sys path doesn't get properly propagated to the lambda workers. Setting this env. variable forces the issue. Let me know if that helps and I will continue trying to reproduce.

Thanks, Robert


User 91 | 3/25/2015, 8:33:01 PM

Robert,

I know of someone who had the same issue with Python 2.7.9. and Ubuntu 14.04 I think the issue went away when he moved to Python 2.7.6. (or maybe even 2.7.8). It was my understanding that he had 2 versions of python in the same system which confused the pylambda workers.

Regards, Krishna


User 398 | 3/25/2015, 9:00:22 PM

Hi Danny,

As Krishna says, other folks have had issues with lambda workers when there were competing versions of Python 2.7.x on the same machine. For my part, after finally getting Python 2.7.9 installed, I was able to run this code and the lambda workers behaved as expected.

So my advice would be to make sure that you only have one installation of Python on the machine that you're working on. Let us know how it goes.

Best, Robert


User 1638 | 5/6/2015, 2:10:10 PM

Hi guys,

Took me a while, but I just tried what Robert suggested about setting the virtual environment variables, and now it works! :smiley: Well, at least the above example, if I'll run into this problem again I'll let you know.

Huge Thanks!!! Daniel


User 2129 | 8/8/2015, 12:22:56 PM

Hi Robert,

How do I set the environment variable in windows as you have described?


User 2869 | 12/20/2015, 5:32:15 AM

thanks -- setting env variable worked on mac with python 2.7...