Tutor failing to compile theme assets

When developing my theme for OpenEdx based on Tutor’s Indigo, I will occasionally get an error that tutor cannot compile static assets. The error persists until I completely uninstall tutor and then reinstall. After which, it works perfectly fine again. My guess is that there is a caching issue going on, however I do not know how to delete tutor’s cache to see if that’s the case. The error is as below.

 => ERROR [production 26/27] RUN openedx-assets themes     && openedx-assets collect --settings=tutor.assets     && rdfind -makesy  54.2s
------
 > [production 26/27] RUN openedx-assets themes     && openedx-assets collect --settings=tutor.assets     && rdfind -makesymlinks true -followsymlinks true /openedx/staticfiles/:
#58 3.770 Compiling lms sass assets from theme /openedx/themes/Shabazz...
#58 3.770 rtlcss /openedx/themes/Shabazz/lms/static/css/discussion/lms-discussion-bootstrap.css /openedx/themes/Shabazz/lms/static/css/discussion/lms-discussion-bootstrap-rtl.css
#58 3.817 rtlcss: Warning! No config present, using defaults.
#58 3.850 Saving: /openedx/themes/Shabazz/lms/static/css/discussion/lms-discussion-bootstrap-rtl.css
#58 3.902 rtlcss /openedx/themes/Shabazz/lms/static/css/bootstrap/lms-main.css /openedx/themes/Shabazz/lms/static/css/bootstrap/lms-main-rtl.css
#58 3.949 rtlcss: Warning! No config present, using defaults.
#58 3.991 Saving: /openedx/themes/Shabazz/lms/static/css/bootstrap/lms-main-rtl.css
#58 4.063  Sass dir '/openedx/themes/Shabazz/lms/static/certificates/sass' does not exists, skipping sass compilation for '/openedx/themes/Shabazz'
#58 4.063 Compiling cms sass assets from theme /openedx/themes/Shabazz...
#58 4.344 python manage.py lms --settings=tutor.assets collectstatic --ignore "fixtures" --ignore "karma_*.js" --ignore "spec" --ignore "spec_helpers" --ignore "spec-helpers" --ignore "xmodule_js" --ignore "geoip" --ignore "sass" --noinput > /dev/null
#58 34.19 		Finished collecting lms assets.
#58 34.19 python manage.py cms --settings=tutor.assets collectstatic --ignore "fixtures" --ignore "karma_*.js" --ignore "spec" --ignore "spec_helpers" --ignore "spec-helpers" --ignore "xmodule_js" --ignore "geoip" --ignore "sass" --noinput > /dev/null
#58 53.64 Traceback (most recent call last):
#58 53.64   File "manage.py", line 106, in <module>
#58 53.64     execute_from_command_line([sys.argv[0]] + django_args)
#58 53.64   File "/openedx/venv/lib/python3.8/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
#58 53.64     utility.execute()
#58 53.64   File "/openedx/venv/lib/python3.8/site-packages/django/core/management/__init__.py", line 413, in execute
#58 53.64     self.fetch_command(subcommand).run_from_argv(self.argv)
#58 53.64   File "/openedx/venv/lib/python3.8/site-packages/django/core/management/base.py", line 354, in run_from_argv
#58 53.64     self.execute(*args, **cmd_options)
#58 53.64   File "/openedx/venv/lib/python3.8/site-packages/django/core/management/base.py", line 398, in execute
#58 53.64     output = self.handle(*args, **options)
#58 53.64   File "/openedx/venv/lib/python3.8/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 187, in handle
#58 53.64     collected = self.collect()
#58 53.64   File "/openedx/venv/lib/python3.8/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 128, in collect
#58 53.64     for original_path, processed_path, processed in processor:
#58 53.64   File "/openedx/venv/lib/python3.8/site-packages/require/storage.py", line 175, in post_process
#58 53.64     for path in super_class.post_process(paths, dry_run, **options):
#58 53.64   File "/openedx/edx-platform/openedx/core/djangoapps/theming/storage.py", line 282, in post_process
#58 53.64     packager.pack_stylesheets(package)
#58 53.64   File "/openedx/venv/lib/python3.8/site-packages/pipeline/packager.py", line 96, in pack_stylesheets
#58 53.64     return self.pack(package, self.compressor.compress_css, css_compressed,
#58 53.64   File "/openedx/venv/lib/python3.8/site-packages/pipeline/packager.py", line 117, in pack
#58 53.64     self.save_file(output_filename, content)
#58 53.64   File "/openedx/venv/lib/python3.8/site-packages/pipeline/packager.py", line 128, in save_file
#58 53.64     return self.storage.save(path, ContentFile(smart_bytes(content)))
#58 53.64   File "/openedx/venv/lib/python3.8/site-packages/django/core/files/storage.py", line 54, in save
#58 53.64     name = self._save(name, content)
#58 53.64   File "/openedx/venv/lib/python3.8/site-packages/django/core/files/storage.py", line 260, in _save
#58 53.64     os.makedirs(directory, exist_ok=True)
#58 53.64   File "/opt/pyenv/versions/3.8.12/lib/python3.8/os.py", line 223, in makedirs
#58 53.64     mkdir(name, mode)
#58 53.64 OSError: [Errno 28] No space left on device: '/openedx/staticfiles/studio/Shabazz/css'
#58 54.05 Traceback (most recent call last):
#58 54.05   File "/openedx/bin/openedx-assets", line 218, in <module>
#58 54.05     main()
#58 54.05   File "/openedx/bin/openedx-assets", line 89, in main
#58 54.05     args.func(args)
#58 54.05   File "/openedx/bin/openedx-assets", line 157, in run_collect
#58 54.05     assets.collect_assets(args.systems, args.settings)
#58 54.05   File "/openedx/edx-platform/pavelib/assets.py", line 717, in collect_assets
#58 54.05     sh(django_cmd(sys, settings, "collectstatic {ignore_args} --noinput {logfile_str}".format(
#58 54.05   File "/openedx/venv/lib/python3.8/site-packages/paver/shell.py", line 60, in sh
#58 54.05     return dry(command, runpipe)
#58 54.05   File "/openedx/venv/lib/python3.8/site-packages/paver/easy.py", line 15, in dry
#58 54.05     return func(*args, **kw)
#58 54.05   File "/openedx/venv/lib/python3.8/site-packages/paver/shell.py", line 55, in runpipe
#58 54.05     raise BuildFailure("Subprocess return code: %d" % p.returncode)
#58 54.05 paver.tasks.BuildFailure: Subprocess return code: 1
------
executor failed running [/bin/sh -c openedx-assets themes     && openedx-assets collect --settings=tutor.assets     && rdfind -makesymlinks true -followsymlinks true /openedx/staticfiles/]: exit code: 1
Error: Command failed with status 1: docker build -t docker.io/overhangio/openedx:13.1.11 /Users/adevezin/Library/Application Support/tutor/env/build/openedx

The error is very clearly

OSError: [Errno 28] No space left on device: ‘/openedx/staticfiles/studio/Shabazz/css’

check disk image size

2 Likes

Thanks. I am not used to docker so I didn’t understand that error.