overhangio / tutor

The Docker-based Open edX distribution designed for peace of mind
https://docs.tutor.overhang.io/
GNU Affero General Public License v3.0
936 stars 443 forks source link

[Errno 2] No such file or directory: u'/edx/var/edxapp/media/video-transcripts/3915c7f1ca9d4b1088ee4d6f428470bc.sjson' #175

Closed adesrod closed 5 years ago

adesrod commented 5 years ago

Hello again, EDX can´t export courses, when any tutor tries the next message pop up in the second step (exporting)

[Errno 2] No such file or directory: u'/edx/var/edxapp/media/video-transcripts/3915c7f1ca9d4b1088ee4d6f428470bc.sjson'

I appreciate any idea or possible solution


Extra information:

  1. "git log -1"
commit c42b747e3538eb8f0ead1534c381933afdc0b87e
Author: R<C3><A9>gis Behmo <regis@behmo.com>
Date:   Wed Jan 23 05:29:46 2019 +0100
  1. make info
    
    make -s -C ../.. info
    Linux ip-172-31-38-145 4.4.0-1072-aws #82-Ubuntu SMP Fri Nov 2 15:00:21 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
    -------------------------
    c42b747e3538eb8f0ead1534c381933afdc0b87e
    -------------------------
    Client:
    Version:           18.09.1
    API version:       1.39
    Go version:        go1.10.6
    Git commit:        4c52b90
    Built:             Wed Jan  9 19:35:23 2019
    OS/Arch:           linux/amd64
    Experimental:      false

Server: Docker Engine - Community Engine: Version: 18.09.1 API version: 1.39 (minimum version 1.12) Go version: go1.10.6 Git commit: 4c52b90 Built: Wed Jan 9 19:02:44 2019 OS/Arch: linux/amd64 Experimental: false

docker-compose version 1.24.0-rc1, build 0f3d4dda

dannielarriola commented 5 years ago

Hi, This was fixed in 5a34a1191a48bdbb7cad64d7f422f1822906ada8 commit. volumes for media transcripts are required in nginx service

regisb commented 5 years ago

@adesrod can you confirm this is fixed by upgrading? please check the documentation for upgrading instructions.

adesrod commented 5 years ago

Hello @regisb, I tried with the last version (tutor version 3) and created and demo course with the command "tutor local importdemocourse", then from the platform I attempted export course but again in the second step I get the next error:

Exporting [Errno 2] No such file or directory: u'/openedx/data/uploads/video-transcripts/4705ad2da7324986af66374ccab78089.sjson'

regisb commented 5 years ago

This is strange. Can you please post here the result of the following command:

cat $(tutor config printroot)/env/local/docker-compose.yml

There shouldn't be any confidential information in there.

adesrod commented 5 years ago
cat $(tutor config printroot)/env/local/docker-compose.yml
version: "3"
services:

  ############# External services

  memcached:
    image: memcached:1.4.38
    restart: unless-stopped

  mongodb:
    image: mongo:3.2.16
    # Use WiredTiger in all environments, just like at edx.org
    command: mongod --smallfiles --nojournal --storageEngine wiredTiger
    restart: unless-stopped
    volumes:
      - ../../data/mongodb:/data/db

  mysql:
    image: mysql:5.6.36
    command: mysqld --character-set-server=utf8 --collation-server=utf8_general_ci
    restart: unless-stopped
    volumes:
      - ../../data/mysql:/var/lib/mysql
    env_file: ../apps/mysql/auth.env

  elasticsearch:
    image: elasticsearch:1.5.2
    environment:
      - "ES_JAVA_OPTS=-Xms1g -Xmx1g"
      - "cluster.name=openedx"
      - "bootstrap.memory_lock=true"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    restart: unless-stopped
    volumes:
      - ../../data/elasticsearch:/usr/share/elasticsearch/data

  openedx-assets:
    image: regis/openedx:hawthorn
    volumes:
      - ../../data/openedx:/var/www/openedx
    command: bash -c "rm -rf /var/www/openedx/staticfiles && cp -r /openedx/staticfiles/ /var/www/openedx/"

  nginx:
    image: nginx:1.13
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ../apps/nginx:/etc/nginx/conf.d/
      - ../../data/openedx:/var/www/openedx:ro
      - ../../data/cms:/openedx/data/cms/:ro
      - ../../data/lms:/openedx/data/lms/:ro
      - ../../data/letsencrypt:/etc/letsencrypt/:ro
    depends_on:
      - lms
      - cms
      - notes

  rabbitmq:
    image: rabbitmq:3.6.10
    volumes:
      - ../../data/rabbitmq:/var/lib/rabbitmq
    restart: unless-stopped

  # Simple SMTP server
  smtp:
    image: namshi/smtp
    restart: unless-stopped

  ############# Forum

  forum:
    image: regis/openedx-forum:hawthorn
    restart: unless-stopped
    depends_on:
      - elasticsearch
      - mongodb

  ############# LMS and CMS

  lms:
    image: regis/openedx:hawthorn
    environment:
      SERVICE_VARIANT: lms
      SETTINGS: ${EDX_PLATFORM_SETTINGS:-tutor.production}
    restart: unless-stopped
    volumes:
      - ../apps/openedx/settings/lms/:/openedx/edx-platform/lms/envs/tutor/
      - ../apps/openedx/settings/cms/:/openedx/edx-platform/cms/envs/tutor/
      - ../apps/openedx/config/:/openedx/config/
      - ../../data/lms:/openedx/data
    depends_on:
      - elasticsearch
      - forum
      - memcached
      - mongodb
      - mysql
      - rabbitmq
      - smtp

  cms:
    image: regis/openedx:hawthorn
    environment:
      SERVICE_VARIANT: cms
      SETTINGS: ${EDX_PLATFORM_SETTINGS:-tutor.production}
    restart: unless-stopped
    volumes:
      - ../apps/openedx/settings/lms/:/openedx/edx-platform/lms/envs/tutor/
      - ../apps/openedx/settings/cms/:/openedx/edx-platform/cms/envs/tutor/
      - ../apps/openedx/config/:/openedx/config/
      - ../../data/cms:/openedx/data
    depends_on:
      - elasticsearch
      - memcached
      - mongodb
      - mysql
      - rabbitmq
      - smtp

  ############# LMS and CMS workers

  # We could probably create one service per queue here. For small instances, it is not necessary.
  lms_worker:
    image: regis/openedx:hawthorn
    environment:
      SERVICE_VARIANT: lms
      SETTINGS: ${EDX_PLATFORM_SETTINGS:-tutor.production}
      C_FORCE_ROOT: "1" # run celery tasks as root #nofear
    command: ./manage.py lms celery worker --loglevel=info --hostname=edx.lms.core.default.%%h --maxtasksperchild 100
    restart: unless-stopped
    volumes:
      - ../apps/openedx/settings/lms/:/openedx/edx-platform/lms/envs/tutor/
      - ../apps/openedx/settings/cms/:/openedx/edx-platform/cms/envs/tutor/
      - ../apps/openedx/config/:/openedx/config/
      - ../../data/lms:/openedx/data
    depends_on:
      - lms

  cms_worker:
    image: regis/openedx:hawthorn
    environment:
      SERVICE_VARIANT: cms
      SETTINGS: ${EDX_PLATFORM_SETTINGS:-tutor.production}
      C_FORCE_ROOT: "1" # run celery tasks as root #nofear
    command: ./manage.py cms celery worker --loglevel=info --hostname=edx.cms.core.default.%%h --maxtasksperchild 100
    restart: unless-stopped
    volumes:
      - ../apps/openedx/settings/lms/:/openedx/edx-platform/lms/envs/tutor/
      - ../apps/openedx/settings/cms/:/openedx/edx-platform/cms/envs/tutor/
      - ../apps/openedx/config/:/openedx/config/
      - ../../data/cms:/openedx/data
    depends_on:
      - cms

  ############# Notes: backend store for edX Student Notes
  notes:
    image: regis/openedx-notes:hawthorn
    networks:
      default:
        aliases:
          - notes.openedx
    environment:
      DJANGO_SETTINGS_MODULE: notesserver.settings.tutor
    volumes:
      - ../apps/notes/settings/tutor.py:/openedx/edx-notes-api/notesserver/settings/tutor.py
      - ../../data/notes:/openedx/data
    restart: unless-stopped
    depends_on:
      - mysql

  ############# Xqueue: external grading of Open edX problems
  xqueue:
    image: regis/openedx-xqueue:hawthorn
    volumes:
      - ../apps/xqueue/settings/tutor.py:/openedx/xqueue/xqueue/tutor.py
      - ../../data/xqueue:/openedx/data
    environment:
      DJANGO_SETTINGS_MODULE: xqueue.tutor
    restart: unless-stopped
    depends_on:
      - mysql

  xqueue_consumer:
    image: regis/openedx-xqueue:hawthorn
    volumes:
      - ../apps/xqueue/settings/tutor.py:/openedx/xqueue/xqueue/tutor.py
      - ../../data/xqueue:/openedx/data
    environment:
      DJANGO_SETTINGS_MODULE: xqueue.tutor
    restart: unless-stopped
    command: ./manage.py run_consumer
    depends_on:
      - mysql
regisb commented 5 years ago

I see nothing out of the ordinary here. Did you stop all containers prior to upgrading? Please run:

  1. tutor local stop
  2. paste here the output of docker ps
  3. tutor local quickstart
  4. tutor local importdemocourse
  5. Attempt to export. Please post the full stacktrace in case of error.
adesrod commented 5 years ago

Yes, I stopped all containers before anything, but once again I get the same error [Errno 2] No such file or directory: u'/openedx/data/uploads/video-transcripts/3915c7f1ca9d4b1088ee4d6f428470bc.sjson', could be possible fix directly changing some files or something like that? 2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

  1. What do you mean with the full stracktrace ?
regisb commented 5 years ago

could be possible fix directly changing some files or something like that?

From where I stand I really don't understand where the problem is, so I'm having trouble suggesting a place to do modifications.

  1. What do you mean with the full stracktrace ?

Well, I thought that the "[Errno 2] No such file or directory" error occurred in the console? Does it show inside the CMS? After the error happens, please paste here the output of the following commands:

tutor local logs --tail=100 cms
tutor local logs --tail=100 cms_worker
adesrod commented 5 years ago
~ tutor local logs --tail=100 cms_worker
docker-compose -f /home/ubuntu/.local/share/tutor/env/local/docker-compose.yml --project-name tutor_local logs --tail 100 cms_worker
Attaching to tutor_local_cms_worker_1
cms_worker_1      |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/video_module/video_module.py", line 717, in definition_to_xml
cms_worker_1      |     course_id=unicode(self.runtime.course_id.for_branch(None))
cms_worker_1      |   File "/usr/local/lib/python2.7/dist-packages/edxval/api.py", line 864, in export_to_xml
cms_worker_1      |     return create_transcripts_xml(video_id, video_el, resource_fs, static_dir)
cms_worker_1      |   File "/usr/local/lib/python2.7/dist-packages/edxval/api.py", line 924, in create_transcripts_xml
cms_worker_1      |     static_dir=combine(u'course', static_dir)  # File system should not start from /draft directory.
cms_worker_1      |   File "/usr/local/lib/python2.7/dist-packages/edxval/api.py", line 882, in create_transcript_file
cms_worker_1      |     transcript_data = get_video_transcript_data(video_id, language_code)
cms_worker_1      |   File "/usr/local/lib/python2.7/dist-packages/edxval/api.py", line 292, in get_video_transcript_data
cms_worker_1      |     return dict(file_name=video_transcript.filename, content=video_transcript.transcript.file.read())
cms_worker_1      |   File "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/files.py", line 51, in _get_file
cms_worker_1      |     self._file = self.storage.open(self.name, 'rb')
cms_worker_1      |   File "/usr/local/lib/python2.7/dist-packages/django/core/files/storage.py", line 38, in open
cms_worker_1      |     return self._open(name, mode)
cms_worker_1      |   File "/usr/local/lib/python2.7/dist-packages/django/core/files/storage.py", line 300, in _open
cms_worker_1      |     return File(open(self.path(name), mode))
cms_worker_1      | IOError: [Errno 2] No such file or directory: u'/openedx/data/uploads/video-transcripts/3915c7f1ca9d4b1088ee4d6f428470bc.sjson'
cms_worker_1      | [2019-02-26 03:49:24,555: ERROR/Worker-1] contentstore.tasks.export_olx[9c310f22-ee97-457a-8ce8-84ae5e323462]: Error exporting course course-v1:UD+103+2018_3
cms_worker_1      | Traceback (most recent call last):
cms_worker_1      |   File "/openedx/edx-platform/cms/djangoapps/contentstore/tasks.py", line 539, in export_olx
cms_worker_1      |     tarball = create_export_tarball(courselike_module, courselike_key, {}, self.status)
cms_worker_1      |   File "/openedx/edx-platform/cms/djangoapps/contentstore/tasks.py", line 565, in create_export_tarball
cms_worker_1      |     export_course_to_xml(modulestore(), contentstore(), course_module.id, root_dir, name)
cms_worker_1      |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/modulestore/xml_exporter.py", line 346, in export_course_to_xml
cms_worker_1      |     CourseExportManager(modulestore, contentstore, course_key, root_dir, course_dir).export()
cms_worker_1      |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/modulestore/xml_exporter.py", line 169, in export
cms_worker_1      |     courselike.add_xml_to_node(root)
cms_worker_1      |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/xml_module.py", line 602, in add_xml_to_node
cms_worker_1      |     super(XmlParserMixin, self).add_xml_to_node(node)  # pylint: disable=bad-super-call
cms_worker_1      |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/x_module.py", line 1114, in add_xml_to_node
cms_worker_1      |     xml_string = self.export_to_xml(self.runtime.export_fs)
cms_worker_1      |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/xml_module.py", line 591, in export_to_xml
cms_worker_1      |     super(XmlDescriptor, self).add_xml_to_node(node)
cms_worker_1      |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/xml_module.py", line 454, in add_xml_to_node
cms_worker_1      |     xml_object = self.definition_to_xml(self.runtime.export_fs)
cms_worker_1      |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/course_module.py", line 1055, in definition_to_xml
cms_worker_1      |     xml_object = super(CourseDescriptor, self).definition_to_xml(resource_fs)
cms_worker_1      |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/seq_module.py", line 669, in definition_to_xml
cms_worker_1      |     self.runtime.add_block_as_child_node(child, xml_object)
cms_worker_1      |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/x_module.py", line 1520, in add_block_as_child_node
cms_worker_1      |     block.add_xml_to_node(child)
cms_worker_1      |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/xml_module.py", line 602, in add_xml_to_node
cms_worker_1      |     super(XmlParserMixin, self).add_xml_to_node(node)  # pylint: disable=bad-super-call
cms_worker_1      |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/x_module.py", line 1114, in add_xml_to_node
cms_worker_1      |     xml_string = self.export_to_xml(self.runtime.export_fs)
cms_worker_1      |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/xml_module.py", line 591, in export_to_xml
cms_worker_1      |     super(XmlDescriptor, self).add_xml_to_node(node)
cms_worker_1      |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/xml_module.py", line 454, in add_xml_to_node
cms_worker_1      |     xml_object = self.definition_to_xml(self.runtime.export_fs)
cms_worker_1      |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/seq_module.py", line 669, in definition_to_xml
cms_worker_1      |     self.runtime.add_block_as_child_node(child, xml_object)
cms_worker_1      |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/x_module.py", line 1520, in add_block_as_child_node
cms_worker_1      |     block.add_xml_to_node(child)
cms_worker_1      |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/xml_module.py", line 602, in add_xml_to_node
cms_worker_1      |     super(XmlParserMixin, self).add_xml_to_node(node)  # pylint: disable=bad-super-call
cms_worker_1      |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/x_module.py", line 1114, in add_xml_to_node
cms_worker_1      |     xml_string = self.export_to_xml(self.runtime.export_fs)
cms_worker_1      |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/xml_module.py", line 591, in export_to_xml
cms_worker_1      |     super(XmlDescriptor, self).add_xml_to_node(node)
cms_worker_1      |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/xml_module.py", line 454, in add_xml_to_node
cms_worker_1      |     xml_object = self.definition_to_xml(self.runtime.export_fs)
cms_worker_1      |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/seq_module.py", line 669, in definition_to_xml
cms_worker_1      |     self.runtime.add_block_as_child_node(child, xml_object)
cms_worker_1      |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/x_module.py", line 1520, in add_block_as_child_node
cms_worker_1      |     block.add_xml_to_node(child)
cms_worker_1      |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/xml_module.py", line 454, in add_xml_to_node
cms_worker_1      |     xml_object = self.definition_to_xml(self.runtime.export_fs)
cms_worker_1      |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/vertical_block.py", line 160, in definition_to_xml
cms_worker_1      |     self.runtime.add_block_as_child_node(child, xml_object)
cms_worker_1      |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/x_module.py", line 1520, in add_block_as_child_node
cms_worker_1      |     block.add_xml_to_node(child)
cms_worker_1      |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/xml_module.py", line 602, in add_xml_to_node
cms_worker_1      |     super(XmlParserMixin, self).add_xml_to_node(node)  # pylint: disable=bad-super-call
cms_worker_1      |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/x_module.py", line 1114, in add_xml_to_node
cms_worker_1      |     xml_string = self.export_to_xml(self.runtime.export_fs)
cms_worker_1      |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/xml_module.py", line 591, in export_to_xml
cms_worker_1      |     super(XmlDescriptor, self).add_xml_to_node(node)
cms_worker_1      |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/xml_module.py", line 454, in add_xml_to_node
cms_worker_1      |     xml_object = self.definition_to_xml(self.runtime.export_fs)
cms_worker_1      |   File "/openedx/edx-platform/common/lib/xmodule/xmodule/video_module/video_module.py", line 717, in definition_to_xml
cms_worker_1      |     course_id=unicode(self.runtime.course_id.for_branch(None))
cms_worker_1      |   File "/usr/local/lib/python2.7/dist-packages/edxval/api.py", line 864, in export_to_xml
cms_worker_1      |     return create_transcripts_xml(video_id, video_el, resource_fs, static_dir)
cms_worker_1      |   File "/usr/local/lib/python2.7/dist-packages/edxval/api.py", line 924, in create_transcripts_xml
cms_worker_1      |     static_dir=combine(u'course', static_dir)  # File system should not start from /draft directory.
cms_worker_1      |   File "/usr/local/lib/python2.7/dist-packages/edxval/api.py", line 882, in create_transcript_file
cms_worker_1      |     transcript_data = get_video_transcript_data(video_id, language_code)
cms_worker_1      |   File "/usr/local/lib/python2.7/dist-packages/edxval/api.py", line 292, in get_video_transcript_data
cms_worker_1      |     return dict(file_name=video_transcript.filename, content=video_transcript.transcript.file.read())
cms_worker_1      |   File "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/files.py", line 51, in _get_file
cms_worker_1      |     self._file = self.storage.open(self.name, 'rb')
cms_worker_1      |   File "/usr/local/lib/python2.7/dist-packages/django/core/files/storage.py", line 38, in open
cms_worker_1      |     return self._open(name, mode)
cms_worker_1      |   File "/usr/local/lib/python2.7/dist-packages/django/core/files/storage.py", line 300, in _open
cms_worker_1      |     return File(open(self.path(name), mode))
cms_worker_1      | IOError: [Errno 2] No such file or directory: u'/openedx/data/uploads/video-transcripts/3915c7f1ca9d4b1088ee4d6f428470bc.sjson'
cms_worker_1      | [2019-02-26 03:49:24,585: INFO/MainProcess] Received task: cms_user_tasks.tasks.send_task_complete_email[514dc601-0df6-458c-8fc8-68e4e6e95579]
cms_worker_1      | [2019-02-26 03:49:24,597: INFO/MainProcess] Task contentstore.tasks.export_olx[9c310f22-ee97-457a-8ce8-84ae5e323462] succeeded in 0.459136160003s: None
cms_worker_1      | [2019-02-26 03:49:24,608: INFO/Worker-2] cms_user_tasks.tasks.send_task_complete_email[514dc601-0df6-458c-8fc8-68e4e6e95579]: Task complete email has been sent to User camilorodriguezpto@gmail.com
cms_worker_1      | [2019-02-26 03:49:24,611: INFO/MainProcess] Task cms_user_tasks.tasks.send_task_complete_email[514dc601-0df6-458c-8fc8-68e4e6e95579] succeeded in 0.0242634239985s: None

~ tutor local logs --tail=100 cms
docker-compose -f /home/ubuntu/.local/share/tutor/env/local/docker-compose.yml --project-name tutor_local logs --tail 100 cms
Attaching to tutor_local_cms_1
cms_1             | 2019-02-26 03:41:24 [6] [INFO] Starting gunicorn 0.17.4
cms_1             | 2019-02-26 03:41:25 [6] [INFO] Listening at: http://0.0.0.0:8000 (6)
cms_1             | 2019-02-26 03:41:25 [6] [INFO] Using worker: sync
cms_1             | 2019-02-26 03:41:25 [10] [INFO] Booting worker with pid: 10
cms_1             | 2019-02-26 03:42:43,050 INFO 10 [tracking] logger.py:50 - {"username": "", "event_type": "/export/course-v1:UD+103+2018_3", "ip": "186.155.50.241", "agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36", "host": "studio.edx4.planestic.udistrital.edu.co", "referer": "", "accept_language": "es-ES,es;q=0.9", "event": "{\"POST\": {}, \"GET\": {}}", "event_source": "server", "context": {"user_id": null, "org_id": "", "course_id": "", "path": "/export/course-v1:UD+103+2018_3"}, "time": "2019-02-26T03:42:43.050798+00:00", "page": null}
cms_1             | 2019-02-26 03:42:43,412 INFO 10 [tracking] logger.py:50 - {"username": "", "event_type": "/signin", "ip": "186.155.50.241", "agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36", "host": "studio.edx4.planestic.udistrital.edu.co", "referer": "", "accept_language": "es-ES,es;q=0.9", "event": "{\"POST\": {}, \"GET\": {\"next\": [\"/export/course-v1:UD+103+2018_3\"]}}", "event_source": "server", "context": {"user_id": null, "org_id": "", "course_id": "", "path": "/signin"}, "time": "2019-02-26T03:42:43.412185+00:00", "page": null}
cms_1             | 2019-02-26 03:42:51,881 INFO 10 [audit] models.py:2422 - Login success - camilo (camilorodriguezpto@gmail.com)
cms_1             | 2019-02-26 03:42:52,058 INFO 10 [tracking] logger.py:50 - {"username": "camilo", "event_type": "/export/course-v1:UD+103+2018_3", "ip": "186.155.50.241", "agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36", "host": "studio.edx4.planestic.udistrital.edu.co", "referer": "https://studio.edx4.planestic.udistrital.edu.co/signin?next=/export/course-v1%3AUD%2B103%2B2018_3", "accept_language": "es-ES,es;q=0.9", "event": "{\"POST\": {}, \"GET\": {}}", "event_source": "server", "context": {"user_id": 79, "org_id": "", "course_id": "", "path": "/export/course-v1:UD+103+2018_3"}, "time": "2019-02-26T03:42:52.058426+00:00", "page": null}
cms_1             | 2019-02-26 03:42:54,008 INFO 10 [tracking] logger.py:50 - {"username": "camilo", "event_type": "/export_status/course-v1:UD+103+2018_3", "ip": "186.155.50.241", "agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36", "host": "studio.edx4.planestic.udistrital.edu.co", "referer": "https://studio.edx4.planestic.udistrital.edu.co/export/course-v1:UD+103+2018_3", "accept_language": "es-ES,es;q=0.9", "event": "{\"POST\": {}, \"GET\": {}}", "event_source": "server", "context": {"user_id": 79, "org_id": "", "course_id": "", "path": "/export_status/course-v1:UD+103+2018_3"}, "time": "2019-02-26T03:42:54.008030+00:00", "page": null}
cms_1             | 2019-02-26 03:43:15,668 INFO 10 [tracking] logger.py:50 - {"username": "camilo", "event_type": "/export/course-v1:UD+103+2018_3", "ip": "186.155.50.241", "agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36", "host": "studio.edx4.planestic.udistrital.edu.co", "referer": "https://studio.edx4.planestic.udistrital.edu.co/export/course-v1:UD+103+2018_3", "accept_language": "es-ES,es;q=0.9", "event": "{\"POST\": {}, \"GET\": {}}", "event_source": "server", "context": {"user_id": 79, "org_id": "", "course_id": "", "path": "/export/course-v1:UD+103+2018_3"}, "time": "2019-02-26T03:43:15.668384+00:00", "page": null}
cms_1             | 2019-02-26 03:43:16,859 INFO 10 [tracking] logger.py:50 - {"username": "camilo", "event_type": "/export_status/course-v1:UD+103+2018_3", "ip": "186.155.50.241", "agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36", "host": "studio.edx4.planestic.udistrital.edu.co", "referer": "https://studio.edx4.planestic.udistrital.edu.co/export/course-v1:UD+103+2018_3", "accept_language": "es-ES,es;q=0.9", "event": "{\"POST\": {}, \"GET\": {}}", "event_source": "server", "context": {"user_id": 79, "org_id": "", "course_id": "", "path": "/export_status/course-v1:UD+103+2018_3"}, "time": "2019-02-26T03:43:16.859590+00:00", "page": null}
cms_1             | 2019-02-26 03:44:34 [6] [INFO] Starting gunicorn 0.17.4
cms_1             | 2019-02-26 03:44:34 [6] [INFO] Listening at: http://0.0.0.0:8000 (6)
cms_1             | 2019-02-26 03:44:34 [6] [INFO] Using worker: sync
cms_1             | 2019-02-26 03:44:34 [10] [INFO] Booting worker with pid: 10
cms_1             | 2019-02-26 03:45:01,101 INFO 10 [tracking] logger.py:50 - {"username": "", "event_type": "/export/", "ip": "186.155.50.241", "agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36", "host": "studio.edx4.planestic.udistrital.edu.co", "referer": "", "accept_language": "es-ES,es;q=0.9", "event": "{\"POST\": {}, \"GET\": {}}", "event_source": "server", "context": {"user_id": null, "org_id": "", "course_id": "", "path": "/export/"}, "time": "2019-02-26T03:45:01.101206+00:00", "page": null}
cms_1             | 2019-02-26 03:45:09,923 INFO 10 [tracking] logger.py:50 - {"username": "", "event_type": "/", "ip": "186.155.50.241", "agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36", "host": "studio.edx4.planestic.udistrital.edu.co", "referer": "", "accept_language": "es-ES,es;q=0.9", "event": "{\"POST\": {}, \"GET\": {}}", "event_source": "server", "context": {"user_id": null, "org_id": "", "course_id": "", "path": "/"}, "time": "2019-02-26T03:45:09.923193+00:00", "page": null}
cms_1             | 2019-02-26 03:45:31,554 INFO 10 [tracking] logger.py:50 - {"username": "", "event_type": "/signin", "ip": "186.155.50.241", "agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36", "host": "studio.edx4.planestic.udistrital.edu.co", "referer": "https://studio.edx4.planestic.udistrital.edu.co/", "accept_language": "es-ES,es;q=0.9", "event": "{\"POST\": {}, \"GET\": {}}", "event_source": "server", "context": {"user_id": null, "org_id": "", "course_id": "", "path": "/signin"}, "time": "2019-02-26T03:45:31.554612+00:00", "page": null}
cms_1             | 2019-02-26 03:45:38,799 INFO 10 [audit] models.py:2422 - Login success - camilo (camilorodriguezpto@gmail.com)
cms_1             | 2019-02-26 03:45:38,950 INFO 10 [tracking] logger.py:50 - {"username": "camilo", "event_type": "/", "ip": "186.155.50.241", "agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36", "host": "studio.edx4.planestic.udistrital.edu.co", "referer": "https://studio.edx4.planestic.udistrital.edu.co/signin", "accept_language": "es-ES,es;q=0.9", "event": "{\"POST\": {}, \"GET\": {}}", "event_source": "server", "context": {"user_id": 79, "org_id": "", "course_id": "", "path": "/"}, "time": "2019-02-26T03:45:38.950470+00:00", "page": null}
cms_1             | 2019-02-26 03:45:39,077 INFO 10 [tracking] logger.py:50 - {"username": "camilo", "event_type": "/home/", "ip": "186.155.50.241", "agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36", "host": "studio.edx4.planestic.udistrital.edu.co", "referer": "https://studio.edx4.planestic.udistrital.edu.co/signin", "accept_language": "es-ES,es;q=0.9", "event": "{\"POST\": {}, \"GET\": {}}", "event_source": "server", "context": {"user_id": 79, "org_id": "", "course_id": "", "path": "/home/"}, "time": "2019-02-26T03:45:39.077573+00:00", "page": null}
cms_1             | 2019-02-26 03:45:42,179 INFO 10 [tracking] logger.py:50 - {"username": "camilo", "event_type": "/course/course-v1:UD+103+2018_3", "ip": "186.155.50.241", "agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36", "host": "studio.edx4.planestic.udistrital.edu.co", "referer": "https://studio.edx4.planestic.udistrital.edu.co/home/", "accept_language": "es-ES,es;q=0.9", "event": "{\"POST\": {}, \"GET\": {}}", "event_source": "server", "context": {"user_id": 79, "org_id": "", "course_id": "", "path": "/course/course-v1:UD+103+2018_3"}, "time": "2019-02-26T03:45:42.179246+00:00", "page": null}
cms_1             | 2019-02-26 03:45:48,382 INFO 10 [tracking] logger.py:50 - {"username": "camilo", "event_type": "/export/course-v1:UD+103+2018_3", "ip": "186.155.50.241", "agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36", "host": "studio.edx4.planestic.udistrital.edu.co", "referer": "https://studio.edx4.planestic.udistrital.edu.co/course/course-v1:UD+103+2018_3", "accept_language": "es-ES,es;q=0.9", "event": "{\"POST\": {}, \"GET\": {}}", "event_source": "server", "context": {"user_id": 79, "org_id": "", "course_id": "", "path": "/export/course-v1:UD+103+2018_3"}, "time": "2019-02-26T03:45:48.382691+00:00", "page": null}
cms_1             | 2019-02-26 03:45:49,632 INFO 10 [tracking] logger.py:50 - {"username": "camilo", "event_type": "/export_status/course-v1:UD+103+2018_3", "ip": "186.155.50.241", "agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36", "host": "studio.edx4.planestic.udistrital.edu.co", "referer": "https://studio.edx4.planestic.udistrital.edu.co/export/course-v1:UD+103+2018_3", "accept_language": "es-ES,es;q=0.9", "event": "{\"POST\": {}, \"GET\": {}}", "event_source": "server", "context": {"user_id": 79, "org_id": "", "course_id": "", "path": "/export_status/course-v1:UD+103+2018_3"}, "time": "2019-02-26T03:45:49.632701+00:00", "page": null}
cms_1             | 2019-02-26 03:49:24,082 INFO 10 [tracking] logger.py:50 - {"username": "camilo", "event_type": "/export/course-v1:UD+103+2018_3", "ip": "186.155.50.241", "agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36", "host": "studio.edx4.planestic.udistrital.edu.co", "referer": "https://studio.edx4.planestic.udistrital.edu.co/export/course-v1:UD+103+2018_3", "accept_language": "es-ES,es;q=0.9", "event": "{\"POST\": {}, \"GET\": {}}", "event_source": "server", "context": {"user_id": 79, "org_id": "", "course_id": "", "path": "/export/course-v1:UD+103+2018_3"}, "time": "2019-02-26T03:49:24.082700+00:00", "page": null}
cms_1             | 2019-02-26 03:49:25,264 INFO 10 [tracking] logger.py:50 - {"username": "camilo", "event_type": "/export_status/course-v1:UD+103+2018_3", "ip": "186.155.50.241", "agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36", "host": "studio.edx4.planestic.udistrital.edu.co", "referer": "https://studio.edx4.planestic.udistrital.edu.co/export/course-v1:UD+103+2018_3", "accept_language": "es-ES,es;q=0.9", "event": "{\"POST\": {}, \"GET\": {}}", "event_source": "server", "context": {"user_id": 79, "org_id": "", "course_id": "", "path": "/export_status/course-v1:UD+103+2018_3"}, "time": "2019-02-26T03:49:25.264279+00:00", "page": null}
cms_1             | 2019-02-26 05:21:57,426 ERROR 10 [django.security.DisallowedHost] exception.py:80 - Invalid HTTP_HOST header: '3.85.231.151'. You may need to add u'3.85.231.151' to ALLOWED_HOSTS.
cms_1             | 2019-02-26 09:21:24,287 ERROR 10 [django.security.DisallowedHost] exception.py:80 - Invalid HTTP_HOST header: '3.85.231.151:443'. You may need to add u'3.85.231.151' to ALLOWED_HOSTS.
cms_1             | 2019-02-26 09:27:10,362 ERROR 10 [django.security.DisallowedHost] exception.py:80 - Invalid HTTP_HOST header: '3.85.231.151'. You may need to add u'3.85.231.151' to ALLOWED_HOSTS.
cms_1             | 2019-02-26 09:27:16,041 ERROR 10 [django.security.DisallowedHost] exception.py:80 - Invalid HTTP_HOST header: '3.85.231.151'. You may need to add u'3.85.231.151' to ALLOWED_HOSTS.
cms_1             | 2019-02-26 09:27:16,321 ERROR 10 [django.security.DisallowedHost] exception.py:80 - Invalid HTTP_HOST header: '3.85.231.151'. You may need to add u'3.85.231.151' to ALLOWED_HOSTS.
cms_1             | 2019-02-26 09:27:16,611 ERROR 10 [django.security.DisallowedHost] exception.py:80 - Invalid HTTP_HOST header: '3.85.231.151'. You may need to add u'3.85.231.151' to ALLOWED_HOSTS.
➜  ~
regisb commented 5 years ago

Let's find out what data you have... Please paste the output of the following commands:

ls $(tutor config printroot)/data/
ls $(tutor config printroot)/data/cms
ls $(tutor config printroot)/data/cms/uploads/
ls $(tutor config printroot)/data/cms/uploads/video-transcripts
ls $(tutor config printroot)/data/cms/uploads/video-transcripts/3915c7f1ca9d4b1088ee4d6f428470bc.sjson
adesrod commented 5 years ago
➜  ~ ls $(tutor config printroot)/data/
cms         elasticsearch  lms         mongodb  notes    portainer  xqueue
cms_worker  letsencrypt    lms_worker  mysql    openedx  rabbitmq

➜  ~ ls $(tutor config printroot)/data/cms
ID  UD  UDistrital  Udistrital  edX  logs  staticfiles  ttttyhh  uploads

➜  ~ ls $(tutor config printroot)/data/cms/uploads/
olx_import

 ➜ ~ ls $(tutor config printroot)/data/cms/uploads/video-transcripts
ls: cannot access '/home/ubuntu/.local/share/tutor/data/cms/uploads/video-transcripts': No such file or directory

➜  ~ ls $(tutor config printroot)/data/cms/uploads/video-transcripts/3915c7f1ca9d4b1088ee4d6f428470bc.sjson
ls: cannot access '/home/ubuntu/.local/share/tutor/data/cms/uploads/video-transcripts/3915c7f1ca9d4b1088ee4d6f428470bc.sjson': No such file or directory
regisb commented 5 years ago

Found it :) the problem was that the demo course was being imported using the lms container, and not the cms. The fix will be included in v3.0.6 which will be available in a few minutes. Meanwhile, you can fix the issue locally by running:

sudo mv $(tutor config printroot)/data/lms/uploads/video-transcripts $(tutor config printroot)/data/cms/uploads/video-transcripts

Note that importing other courses from the studio was not affected by this bug.

Thanks for your thorough reporting! You have been very helpful.