Celebrate Excellence in Education: Nominate Outstanding Educators by April 15!
Hi All, I'm having an issue with a self hosted Canvas. When I try to import a course (exported from the same or from another server), doesn't matter the size or content it has, the process ends with an error message. I've even tried with an empty course. Same result when copying a course. We have posted a message some time ago in the developers google group, but no one answered. It looks like the support from Instructure to the self hosted version is very limited.
We don't have any other issue in the server, the file upload/download and all other functionality works fine. The Canvas version si the latest stable from November 10, 2020. We have checked permissions on the /var/canvas/tmp folder, and we even see the export file is created, but then it fails to import it.
Here is the full error message, maybe someone can help:
No such file or directory - file
/var/canvas/gems/canvas_mimetype_fu/lib/canvas_mimetype_fu/mimetype_fu.rb:25:in `popen' /var/canvas/gems/canvas_mimetype_fu/lib/canvas_mimetype_fu/mimetype_fu.rb:25:in `mime_type?' /var/canvas/gems/canvas_unzip/lib/canvas_unzip.rb:114:in `each_entry' /var/canvas/gems/canvas_unzip/lib/canvas_unzip.rb:78:in `extract_archive' /var/canvas/lib/canvas/migration/archive.rb:124:in `unzip_archive' /var/canvas/lib/canvas/migration/migrator.rb:57:in `unzip_archive' /var/canvas/lib/cc/importer/canvas/converter.rb:44:in `export' /var/canvas/lib/cc/importer/cc_worker.rb:49:in `perform' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/backend/base.rb:254:in `block in invoke_job' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/lifecycle.rb:67:in `block in initialize' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/lifecycle.rb:72:in `execute' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/lifecycle.rb:45:in `run_callbacks' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/backend/base.rb:251:in `invoke_job' /var/canvas/vendor/bundle/ruby/2.6.0/gems/switchman-inst-jobs-2.0.0/lib/switchman_inst_jobs/delayed/backend/base.rb:85:in `block in invoke_job' /var/canvas/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.1/app/models/switchman/shard.rb:628:in `block in activate' /var/canvas/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.1/app/models/switchman/shard.rb:96:in `activate' /var/canvas/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.1/app/models/switchman/shard.rb:627:in `activate' /var/canvas/vendor/bundle/ruby/2.6.0/gems/switchman-inst-jobs-2.0.0/lib/switchman_inst_jobs/delayed/backend/base.rb:85:in `invoke_job' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/worker.rb:210:in `block (2 levels) in perform' /usr/lib/ruby/2.6.0/benchmark.rb:308:in `realtime' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/worker.rb:204:in `block in perform' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-statsd-1.4.1/lib/inst_jobs_statsd/stats/timing/perform.rb:22:in `block (2 levels) in enable_perform_timing' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-statsd-1.4.1/lib/inst_jobs_statsd/stats/timing.rb:8:in `block in report_timing' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst_statsd-2.1.6/lib/inst_statsd/statsd.rb:89:in `time' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-statsd-1.4.1/lib/inst_jobs_statsd/stats/timing.rb:8:in `report_timing' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-statsd-1.4.1/lib/inst_jobs_statsd/stats/timing/perform.rb:21:in `block in enable_perform_timing' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/lifecycle.rb:85:in `block (2 levels) in add' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-statsd-1.4.1/lib/inst_jobs_statsd/stats/timing/perform.rb:13:in `block (2 levels) in enable_batching' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst_statsd-2.1.6/lib/inst_statsd/statsd.rb:95:in `batch' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-statsd-1.4.1/lib/inst_jobs_statsd/stats/timing/perform.rb:12:in `block in enable_batching' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/lifecycle.rb:85:in `block (2 levels) in add' /var/canvas/config/initializers/delayed_job.rb:151:in `block (2 levels) in <top (required)>' /var/canvas/lib/temp_cache.rb:28:in `enable' /var/canvas/config/initializers/delayed_job.rb:150:in `block in <top (required)>' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/lifecycle.rb:85:in `block (2 levels) in add' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/lifecycle.rb:67:in `block in initialize' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/lifecycle.rb:85:in `block in add' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/lifecycle.rb:85:in `block in add' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/lifecycle.rb:85:in `block in add' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/lifecycle.rb:72:in `execute' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/lifecycle.rb:45:in `run_callbacks' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/worker.rb:201:in `perform' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/worker.rb:174:in `block (2 levels) in run' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/worker.rb:271:in `block in configure_for_job' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/worker.rb:40:in `running_job' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/worker.rb:267:in `configure_for_job' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/worker.rb:173:in `block in run' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/lifecycle.rb:67:in `block in initialize' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/lifecycle.rb:72:in `execute' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/lifecycle.rb:45:in `run_callbacks' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/worker.rb:166:in `run' /var/canvas/vendor/bundle/ruby/2.6.0/gems/switchman-inst-jobs-2.0.0/lib/switchman_inst_jobs/delayed/worker.rb:26:in `block in run' /var/canvas/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.1/app/models/switchman/shard.rb:628:in `block in activate' /var/canvas/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.1/app/models/switchman/shard.rb:96:in `activate' /var/canvas/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.1/app/models/switchman/shard.rb:627:in `activate' /var/canvas/vendor/bundle/ruby/2.6.0/gems/switchman-inst-jobs-2.0.0/lib/switchman_inst_jobs/delayed/worker.rb:26:in `run' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/worker.rb:133:in `block in start' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/lifecycle.rb:67:in `block in initialize' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/lifecycle.rb:72:in `execute' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/lifecycle.rb:45:in `run_callbacks' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/worker.rb:131:in `start' /var/canvas/vendor/bundle/ruby/2.6.0/gems/switchman-inst-jobs-2.0.0/lib/switchman_inst_jobs/delayed/worker.rb:19:in `block in start' /var/canvas/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.1/app/models/switchman/shard.rb:628:in `block in activate' /var/canvas/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.1/app/models/switchman/shard.rb:96:in `activate' /var/canvas/vendor/bundle/ruby/2.6.0/gems/switchman-2.0.1/app/models/switchman/shard.rb:627:in `activate' /var/canvas/vendor/bundle/ruby/2.6.0/gems/switchman-inst-jobs-2.0.0/lib/switchman_inst_jobs/delayed/worker.rb:19:in `start' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/pool.rb:97:in `block in spawn_worker' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/pool.rb:108:in `block in fork_with_reconnects' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/pool.rb:105:in `fork' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/pool.rb:105:in `fork_with_reconnects' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/pool.rb:96:in `spawn_worker' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/pool.rb:74:in `block (2 levels) in spawn_all_workers' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/pool.rb:74:in `times' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/pool.rb:74:in `block in spawn_all_workers' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/pool.rb:73:in `each' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/pool.rb:73:in `spawn_all_workers' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/pool.rb:40:in `start' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/cli.rb:96:in `start' /var/canvas/vendor/bundle/ruby/2.6.0/gems/inst-jobs-0.16.0/lib/delayed/cli.rb:34:in `run' /var/canvas/script/delayed_job:11:in `<main>'
Solved! Go to Solution.
Make sure you have the "file" command available on the server this instance is installed on. It's a utility that identifies file types in the Linux/Unix world.
Here's a link to the line of code that's failing. The call to IO.popen is trying to run the "file" command but is failing because it cannot find the command. This could be because (1) "file" isn't installed on the server or (2) the PATH environment variable for the process the app server is running under isn't setup correctly so the process cannot find "file", or (3) there could be a permissions issue preventing the app server process from running "file", or (4) some other reason more subtle I'm not thinking of.
Make sure you have the "file" command available on the server this instance is installed on. It's a utility that identifies file types in the Linux/Unix world.
Here's a link to the line of code that's failing. The call to IO.popen is trying to run the "file" command but is failing because it cannot find the command. This could be because (1) "file" isn't installed on the server or (2) the PATH environment variable for the process the app server is running under isn't setup correctly so the process cannot find "file", or (3) there could be a permissions issue preventing the app server process from running "file", or (4) some other reason more subtle I'm not thinking of.
@pennedav many thanks for your help! You are right, my Ubuntu xenial didn't have the file command. I didn't realize that the message:
No such file or directory - file
was referring to the file command, and not to a file in general.
Thanks!!!
To participate in the Instructure Community, you need to sign up or log in:
Sign In
This discussion post is outdated and has been archived. Please use the Community question forums and official documentation for the most current and accurate information.