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

OSError: [Errno 28] No space left on this device on slim_handler=true #1872

Open
thogerb opened this issue May 14, 2019 · 4 comments
Open

OSError: [Errno 28] No space left on this device on slim_handler=true #1872

thogerb opened this issue May 14, 2019 · 4 comments

Comments

@thogerb
Copy link

thogerb commented May 14, 2019

I getting "No space left on this device" error with a vanilla Django project + TensorFlow. I have looked through the other issues on Zappa and TensorFlow, but with little luck.

Main question/confusion: Is the TensorFlow too big in itself for Zappa/Lambda or am I doing something wrong?

Hope you can help

Context

I am trying to use TensorFlow with Zappa, deploying a vanilla Django project and it's throwing the "No space left on this device". Reading through related issues, I don't understand why I am not able to get TensorFlow pushed to S3/Lambda when it is ONLY (no model):

  • Zappa (and it's dependencies)
  • Django
  • TensorFlow (and it's depencies)

I have tried to go through all the issues here related to TensorFlow and it seems that people are able to get it up there in the cloud, but I have been struggling with it for quite some hours now.

Expected Behavior

Zappa should deploy without error.

Actual Behavior

Traceback (most recent call last):
File "/var/task/handler.py", line 602, in lambda_handler
return LambdaHandler.lambda_handler(event, context)
File "/var/task/handler.py", line 245, in lambda_handler
handler = cls()
File "/var/task/handler.py", line 102, in init
self.load_remote_project_archive(project_archive_path)
File "/var/task/handler.py", line 174, in load_remote_project_archive
t.extractall(project_folder)
File "/var/lang/lib/python3.6/tarfile.py", line 2010, in extractall
numeric_owner=numeric_owner)
File "/var/lang/lib/python3.6/tarfile.py", line 2052, in extract
numeric_owner=numeric_owner)
File "/var/lang/lib/python3.6/tarfile.py", line 2122, in _extract_member
self.makefile(tarinfo, targetpath)
File "/var/lang/lib/python3.6/tarfile.py", line 2171, in makefile
copyfileobj(source, target, tarinfo.size, ReadError, bufsize)
File "/var/lang/lib/python3.6/tarfile.py", line 252, in copyfileobj
dst.write(buf)
OSError: [Errno 28] No space left on device

Possible Fix

Steps to Reproduce

What I am doing:

  1. Creating a new venv and only "pip install zappa django tensorflow"
  2. Creating a new Django project
  3. zappa init'ing (all defaults), adding slim_handler=true and zappa deploy dev'ing

Your Environment

  • Zappa version used: 0.48.2
  • Operating System and Python version: MacOs, Python 3.6

pip freeze

absl-py==0.7.1
argcomplete==1.9.3
astor==0.7.1
boto3==1.9.147
botocore==1.12.147
certifi==2019.3.9
cfn-flip==1.2.0
chardet==3.0.4
Click==7.0
Django==2.2.1
docutils==0.14
durationpy==0.5
future==0.16.0
gast==0.2.2
grpcio==1.20.1
h5py==2.9.0
hjson==3.0.1
idna==2.8
jmespath==0.9.3
kappa==0.6.0
Keras-Applications==1.0.7
Keras-Preprocessing==1.0.9
lambda-packages==0.20.0
Markdown==3.1
mock==3.0.5
numpy==1.16.3
placebo==0.9.0
protobuf==3.7.1
python-dateutil==2.6.1
python-slugify==1.2.4
pytz==2019.1
PyYAML==5.1
requests==2.21.0
s3transfer==0.2.0
six==1.12.0
sqlparse==0.3.0
tensorboard==1.13.1
tensorflow==1.13.1
tensorflow-estimator==1.13.0
termcolor==1.1.0
toml==0.10.0
tqdm==4.19.1
troposphere==2.4.6
Unidecode==1.0.23
urllib3==1.24.3
Werkzeug==0.15.2
wsgi-request-logger==0.4.6
zappa==0.48.2

pip package size of tensorflow

330M lib/python3.6/site-packages/tensorflow

@CodesInTheShell
Copy link

Are you able to solve this? I did "memory_size": 3008, but with no luck for a hello word flask app with autosklearn (sklearn, numpy, pandas, etc.)

@moviedatascience
Copy link

Were you ever able to solve this? I'm running into the same problem.

@thogerb
Copy link
Author

thogerb commented Feb 3, 2020

Unfortunately not. I found some guidance online on how you might be able to strip down the Tensorflow package, for example getting rid of TensorBoard -- but never succeeded with it. Lambda sizes now don't seem to be a fit for the large bundle sized of numpy, sklearn, pandas, tensorflow, keras, and similar. Numpy alone is possible, but that also stretches capacity.

@moviedatascience
Copy link

Really unfortunate considering the gzip addition was supposedly created for tensorflow

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants