Kolibri: Export & update of the older channel on the local drive

Created on 24 May 2019  路  6Comments  路  Source: learningequality/kolibri

Observed behavior

Trying out a scenario that is presumably something users would stumble upon:

  1. First I tried to import an older version of the GDL channel I had on one local drive, import was successful.

  2. Next I updated that channel to the most recent version by importing from Studio, success again.

  3. Finally I tried to export the same channel back to the local drive to update it, and the export failed.

Ubuntu16 04 (0 12 4-b3)  Running  - Oracle VM VirtualBox_049

Expected behavior

Should the users be able to update the local channel storage by exporting from an updated channel on the server, or this isn't something we recommend? If not, should we make a note of that in the user documentation, and recommend that the export is always created anew, that is, from scratch?

User-facing consequences

Inability to update channels on local drives.

Errors and logs

Nothing in the console or network tab, logs are the same as in #5547.
DB of the channel in question (from the local drive, original and after export):

0e173fca6e9052f8a474a2fb84055faf.zip

0e173fca6e9052f8a474a2fb84055faf-after-export.zip

Steps to reproduce

Let me know if you want me to upload the full KOLIBRI_DATA folder somewhere.

Context

  • Kolibri version: 0.12.4b3
  • Operating system: Ubuntu 16.04
  • Browser: Chrome & Firefox
P1 - important bug

All 6 comments

Did the export in (3) succeed partly then fail, or did it fail immediately?

Seemed to be going on for a short while, and then failed. On subsequent try it failed immediately.

from the log

INFO 2019-05-23 05:21:08,916 exportchannel Exporting channel database for channel id 0e173fca6e9052f8a474a2fb84055faf to /media/osboxes/TOSHIBA/KOLIBRI_DATA
ERROR 2019-05-23 05:21:08,927 worker Job b0db68ebc80b43f7b095a909779223b1 raised an exception: Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/kolibri/dist/iceqube/worker.py", line 61, in handle_finished_future
    result = future.result()
  File "/usr/lib/python3.5/concurrent/futures/_base.py", line 398, in result
    return self.__get_result()
  File "/usr/lib/python3.5/concurrent/futures/_base.py", line 357, in __get_result
    raise self._exception
  File "/usr/lib/python3.5/concurrent/futures/thread.py", line 55, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/lib/python3/dist-packages/kolibri/dist/iceqube/worker.py", line 206, in wrap
    raise e
  File "/usr/lib/python3/dist-packages/kolibri/dist/iceqube/worker.py", line 202, in wrap
    return f(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/kolibri/dist/iceqube/classes.py", line 120, in y
    return func(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/kolibri/core/tasks/api.py", line 404, in _localexport
    check_for_cancel=check_for_cancel,
  File "/usr/lib/python3/dist-packages/kolibri/dist/django/core/management/__init__.py", line 131, in call_command
    return command.execute(*args, **defaults)
  File "/usr/lib/python3/dist-packages/kolibri/dist/django/core/management/base.py", line 330, in execute
    output = self.handle(*args, **options)
  File "/usr/lib/python3/dist-packages/kolibri/core/tasks/management/commands/base.py", line 84, in handle
    return self.handle_async(*args, **options)
  File "/usr/lib/python3/dist-packages/kolibri/core/content/management/commands/exportchannel.py", line 35, in handle_async
    for block in copy:
  File "/usr/lib/python3/dist-packages/kolibri/core/content/utils/transfer.py", line 85, in __next__
    return self.next()
  File "/usr/lib/python3/dist-packages/kolibri/core/content/utils/transfer.py", line 95, in next
    self.dest_file_obj.write(chunk)
OSError: [Errno 5] Input/output error

it seems that it cannot write to your local drive. Are you able to directly copy the database file from KOLIBRI_HOME/content/databases to /media/osboxes/TOSHIBA/KOLIBRI_DATA/content/databases?

@radinamatic To go off @lyw07's last observation, are you able to Export a completely new channel to your USB drive (i.e. one that has zero contents on it already)? I'd be curious to see if you get the same Input/Output error.

Well, it does seem to be a garden variety connection-with-external-drive issue, as after plugging out and in again, I'm able to export that channel and other too... :woman_shrugging:

Ubuntu16 04 (0 12 4-b3)  Running  - Oracle VM VirtualBox_060

I guess I was trying so hard to find a fault in various import/export scenarios, the unit finally got fed up with me, and refused to obey! bug-confirmation-bias :joy:

Seems resolved, closing for now!

Was this page helpful?
0 / 5 - 0 ratings