canvas-lms icon indicating copy to clipboard operation
canvas-lms copied to clipboard

QTI1.2 to 2.1

Open Novusityneil opened this issue 6 years ago • 5 comments

facing the issue of importing course. "couldn't convert QTI1.2 to 2.1" completely follow the instruction, and it doesn't work.

Please help!

Novusityneil avatar Apr 10 '19 17:04 Novusityneil

couldn't convert QTI1.2 to 2.1

Maybe you have Delayed Jobs stopped. Start them using script in script/canvas_init

god-io avatar Feb 04 '20 14:02 god-io

I am having the same issue. The package I'm importing is coming from an Instructure hosted instance of Canvas and I'm trying to import it into my own development version of Canvas.

Is there something I'm doing wrong? I would assume that the Instructure version of the Quiz exporter would be the same or newer version of the Community version.

Additionally, the "qti_conversion_error.log" generated during the import process doesn't exist.

And before someone comments... this error would never happen if Delayed Jobs weren't running.

Here's the report details:

category: content_migration
created at: 2020-05-01 07:27:05 -0700

hostname: ip-10-152-40-155
pid: 10678
type: content_migration
        Couldn't convert QTI 1.2 to 2.1, see error log: /tmp/job-3926160-ip.10.152.40.155.10678-20200501-10678-15qgw9z/cm_145_user_id_1_qti/qti_conversion_error.log

        /var/canvas/gems/plugins/qti_exporter/lib/qti/converter.rb:109:in `run_qti_converter'
/var/canvas/gems/plugins/qti_exporter/lib/qti/converter.rb:56:in `export'
/var/canvas/gems/plugins/qti_exporter/lib/canvas/migration/worker/qti_worker.rb:47:in `perform'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/backend/base.rb:254:in `block in invoke_job'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/lifecycle.rb:67:in `block in initialize'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/lifecycle.rb:72:in `execute'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/lifecycle.rb:45:in `run_callbacks'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/backend/base.rb:251:in `invoke_job'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/switchman-inst-jobs-1.3.3/lib/switchman_inst_jobs/delayed/backend/base.rb:62:in `block in invoke_job'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/switchman-1.13.2/app/models/switchman/shard_internal.rb:598:in `block in activate'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/switchman-1.13.2/app/models/switchman/shard_internal.rb:88:in `activate'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/switchman-1.13.2/app/models/switchman/shard_internal.rb:597:in `activate'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/switchman-inst-jobs-1.3.3/lib/switchman_inst_jobs/delayed/backend/base.rb:62:in `invoke_job'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/worker.rb:196:in `block (2 levels) in perform'
/usr/lib/ruby/2.4.0/benchmark.rb:308:in `realtime'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/worker.rb:190:in `block in perform'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-statsd-1.2.3/lib/inst_jobs_statsd/stats/timing/perform.rb:22:in `block (2 levels) in enable_perform_timing'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-statsd-1.2.3/lib/inst_jobs_statsd/stats/timing.rb:8:in `block in report_timing'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst_statsd-2.1.4/lib/inst_statsd/statsd.rb:89:in `time'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-statsd-1.2.3/lib/inst_jobs_statsd/stats/timing.rb:8:in `report_timing'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-statsd-1.2.3/lib/inst_jobs_statsd/stats/timing/perform.rb:21:in `block in enable_perform_timing'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/lifecycle.rb:85:in `block (2 levels) in add'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-statsd-1.2.3/lib/inst_jobs_statsd/stats/timing/perform.rb:13:in `block (2 levels) in enable_batching'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst_statsd-2.1.4/lib/inst_statsd/statsd.rb:95:in `batch'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-statsd-1.2.3/lib/inst_jobs_statsd/stats/timing/perform.rb:12:in `block in enable_batching'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/lifecycle.rb:85:in `block (2 levels) in add'
/var/canvas/config/initializers/delayed_job.rb:133:in `block (2 levels) in <top (required)>'
/var/canvas/lib/temp_cache.rb:28:in `enable'
/var/canvas/config/initializers/delayed_job.rb:132:in `block in <top (required)>'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/lifecycle.rb:85:in `block (2 levels) in add'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/lifecycle.rb:67:in `block in initialize'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/lifecycle.rb:85:in `block in add'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/lifecycle.rb:85:in `block in add'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/lifecycle.rb:85:in `block in add'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/lifecycle.rb:72:in `execute'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/lifecycle.rb:45:in `run_callbacks'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/worker.rb:187:in `perform'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/worker.rb:160:in `block (2 levels) in run'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/worker.rb:257:in `block in configure_for_job'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/worker.rb:40:in `running_job'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/worker.rb:253:in `configure_for_job'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/worker.rb:159:in `block in run'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/lifecycle.rb:67:in `block in initialize'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/lifecycle.rb:72:in `execute'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/lifecycle.rb:45:in `run_callbacks'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/worker.rb:152:in `run'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/switchman-inst-jobs-1.3.3/lib/switchman_inst_jobs/delayed/worker.rb:26:in `block in run'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/switchman-1.13.2/app/models/switchman/shard_internal.rb:598:in `block in activate'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/switchman-1.13.2/app/models/switchman/shard_internal.rb:88:in `activate'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/switchman-1.13.2/app/models/switchman/shard_internal.rb:597:in `activate'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/switchman-inst-jobs-1.3.3/lib/switchman_inst_jobs/delayed/worker.rb:26:in `run'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/worker.rb:132:in `block in start'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/lifecycle.rb:67:in `block in initialize'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/lifecycle.rb:72:in `execute'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/lifecycle.rb:45:in `run_callbacks'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/worker.rb:130:in `start'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/switchman-inst-jobs-1.3.3/lib/switchman_inst_jobs/delayed/worker.rb:19:in `block in start'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/switchman-1.13.2/app/models/switchman/shard_internal.rb:598:in `block in activate'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/switchman-1.13.2/app/models/switchman/shard_internal.rb:88:in `activate'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/switchman-1.13.2/app/models/switchman/shard_internal.rb:597:in `activate'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/switchman-inst-jobs-1.3.3/lib/switchman_inst_jobs/delayed/worker.rb:19:in `start'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/pool.rb:97:in `block in spawn_worker'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/pool.rb:108:in `block in fork_with_reconnects'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/pool.rb:105:in `fork'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/pool.rb:105:in `fork_with_reconnects'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/pool.rb:96:in `spawn_worker'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/pool.rb:74:in `block (2 levels) in spawn_all_workers'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/pool.rb:74:in `times'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/pool.rb:74:in `block in spawn_all_workers'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/pool.rb:73:in `each'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/pool.rb:73:in `spawn_all_workers'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/pool.rb:40:in `start'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/cli.rb:96:in `start'
/var/canvas/vendor/bundle/ruby/2.4.0/gems/inst-jobs-0.15.5/lib/delayed/cli.rb:48:in `run'
/var/canvas/script/delayed_job:11:in `<main>'
      

zgambino avatar May 01 '20 14:05 zgambino

@Novusityneil I am facing similar issue. Any solution for this

dev2021-ctrl avatar Apr 07 '22 15:04 dev2021-ctrl

I've ended up here while troubleshooting a similar issue.

I'm running Canvas using the quick start development setup. The delayed_jobs script seems to be running in a job container, but that container doesn't have the log file mentioned in the stack trace.

isaac-ninebyte avatar May 10 '22 01:05 isaac-ninebyte

After reading through a bunch of Ruby code, I now have a solution for the development setup.

Run this script before ./script/docker_dev_setup.sh (the results of this script will be baked into the web image):

#! /usr/bin/env bash
set -e

TOOL_DIR="QTIMigrationTool"
mkdir -p vendor
cd vendor
git clone https://github.com/instructure/QTIMigrationTool.git "$TOOL_DIR"
chmod +x "$TOOL_DIR/migrate.py"

It installs the QTI Migration Tool as per these instructions.

isaac-ninebyte avatar May 10 '22 03:05 isaac-ninebyte