Open aidangibson opened 10 months ago
Having the exact same problem... I've tried the prod and all the recent stable branches and master branch with no luck. Also had no luck with their docker script.
I'm not sure if it's related, but I had the same issue before, and the error was solved(or maybe just disappear for some reason) after I delete .bundle/plugin folder and run bundle install again
I recently installed canvas in a self-hosted vm instance. bundle exec rake canvas:compile_assets
was a pain point.
Despite the problem doesn't seem the same, just running bundle exec rails js:webpack_production
works for me.
If you google the error, all the issues are canvas related, so I guess that they are wrapping a memory error with that exception. It seems that js:webpack_production is a task with heavy memory requirements and that's why it fails often to compile.
I'm trying to put together a production Dockerfile, but I'm also verifying the steps in Ubuntu 22.04 VM. I got stuck on this as well, FrozenError, although in my case it's after css:compile
so I guess it's sooner?
--> Finished: 'css:compile' in 17.58s
rake aborted!
Parallel::UndumpableException: FrozenError: can't modify frozen Array: ["/var/canvas/app/controllers", "/var/canvas/app/controllers/concerns", "/var/canvas/app/graphql", "/var/canvas/app/helpers", "/var/canvas/app/messages", "/var/canvas/app/models", "/var/canvas/app/observers", "/var/canvas/app/presenters", "/var/canvas/app/serializers", "/var/canvas/app/services", "/var/canvas/app/stylesheets", "/var/canvas/lib", "/var/canvas/gems/plugins/qti_exporter/lib", "/var/canvas/gems/plugins/moodle_importer/lib", "/var/canvas/gems/plugins/account_reports/lib", "/var/canvas/gems/plugins/academic_benchmark/lib", "/var/canvas/vendor/bundle/ruby/3.1.0/gems/sentry-rails-5.16.1/app/jobs", "/var/canvas/vendor/bundle/ruby/3.1.0/gems/canvas_webex-0.18.2/app/models", "/var/canvas/vendor/bundle/ruby/3.1.0/gems/canvas_webex-0.18.2/lib", "/var/canvas/vendor/bundle/ruby/3.1.0/gems/canvas_connect-0.3.16/app/models", "/var/canvas/vendor/bundle/ruby/3.1.0/gems/canvas_connect-0.3.16/lib", #<Pathname:/var/canvas/lib/stubs>]
/var/canvas/vendor/bundle/ruby/3.1.0/gems/railties-7.0.8/lib/rails/engine.rb:574:in `unshift'
No change after deleting .bundle/plugin
and running bundle install
.
I used https://github.com/instructure/canvas-lms/archive/prod.tar.gz, I'd rather go for a concrete pinned version, but I don't know how to do it and existing guides differ quite a lot on how and what to download, often leading to 404 anyway.
I had the same exact problem when using my own Dockerfile, and I gave up on it after a few tries.
I decided to give it another try today, and following Production Start almost to the letter on the master
branch finally worked. I used a c5.2xlarge instance on AWS to get a lot of CPU and memory and eliminate this from the equation.
I'm going to try creating a Dockerfile again using the master
branch to see if it works too.
Just to be sure, could that error indicate a lack of memory? I'm no Rails/Ruby expert, but just from the message itself, I assume it's the source code problem. EDIT: I'm using Ubuntu VM with 16GB of RAM, 8 vCPU and Docker on it. 16GB should be enough, or not?
What are the memory requirements? It's quite a strange one. I'm a novice with ruby. I haven't picked this project back up for the last few months.
From: virgo47 @.> Sent: Tuesday, 26 March 2024 8:00 pm To: instructure/canvas-lms @.> Cc: aidangibson @.>; Author @.> Subject: Re: [instructure/canvas-lms] Issue using canvas:compile | Parallel::UndumpableException: FrozenError: can't modify frozen Array (Issue #2303)
Just to be sure, could that error indicate a lack of memory? I'm no Rails/Ruby expert, but just from the message itself, I assume it's the source code problem.
— Reply to this email directly, view it on GitHubhttps://github.com/instructure/canvas-lms/issues/2303#issuecomment-2019525618, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ADCOZDG6ZMRTQVSIIGNACXLY2EFIHAVCNFSM6AAAAABCB7JNKCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMJZGUZDKNRRHA. You are receiving this because you authored the thread.Message ID: @.***>
EDIT: So my problem seems to be that I wanted to run this as Dockerfile step - but this step requires config/database.yml correctly configured and DB initalized. The error message is unbelievably cryptic, but the reason is simple and the step is shown AFTER DB initialization for good reason. In order to optimize Dockerfile steps, I reordered some, but this one must go after DB init. It probably can't be done during Docker image preparation (unless one prepares some temporary DB as well?) and I'll put these steps into some kind of "seeder job" in my Helm chart.
I notice there's a line Managed item /home/science/canvas/node\_modules/plugin-bundles-generated.js isn't a directory or doesn't contain a package.json (see snapshot.managedPaths option)
in your complete output log
is the file/folder exist? maybe you can try to make a backup for it, removing it and run the compile assets command again
I will have to give this a go over Easter, or in a few weeks time. There have been a few good pieces of input as of late to inspire me to give it another go.
From: Pero @.> Sent: Thursday, March 28, 2024 10:36:03 PM To: instructure/canvas-lms @.> Cc: aidangibson @.>; Author @.> Subject: Re: [instructure/canvas-lms] Issue using canvas:compile | Parallel::UndumpableException: FrozenError: can't modify frozen Array (Issue #2303)
I notice there's a line Managed item /home/science/canvas/node_modules/plugin-bundles-generated.js isn't a directory or doesn't contain a package.json (see snapshot.managedPaths option) in your complete output log
is the file/folder exist? maybe you can try to make a backup for it, removing it and run the compile assets command again
— Reply to this email directly, view it on GitHubhttps://github.com/instructure/canvas-lms/issues/2303#issuecomment-2024772053, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ADCOZDC4HN2ZHPO2TKJRVLLY2PQAHAVCNFSM6AAAAABCB7JNKCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMRUG43TEMBVGM. You are receiving this because you authored the thread.Message ID: @.***>
I'm still getting the same error, even after trying different versions of ruby and different branches... Did anyone have any luck fixing this?
Unfortunately I didn't, which is a bit of a shame. I'm not sure I'll get more time to investigate before December.
From: Luiz Gustavo Nogara @.> Sent: Wednesday, 22 May 2024 6:08 am To: instructure/canvas-lms @.> Cc: aidangibson @.>; Author @.> Subject: Re: [instructure/canvas-lms] Issue using canvas:compile | Parallel::UndumpableException: FrozenError: can't modify frozen Array (Issue #2303)
I'm still getting the same error, even after trying different versions of ruby and different branches... Did anyone have any luck fixing this?
— Reply to this email directly, view it on GitHubhttps://github.com/instructure/canvas-lms/issues/2303#issuecomment-2123169434, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ADCOZDDXLON5UHKWEM4CRYDZDOETTAVCNFSM6AAAAABCB7JNKCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMRTGE3DSNBTGQ. You are receiving this because you authored the thread.Message ID: @.***>
I was following the "quick" start for developers: https://github.com/instructure/canvas-lms/wiki/Quick-Start
And getting this FrozenError
Then I did later DB setup steps:
$ cp config/database.yml.example config/database.yml
$ createdb canvas_development
$ cp config/security.yml.example config/security.yml
$ bundle exec rails db:initial_setup
And then came back and did:
bundle exec rails canvas:compile_assets
Now it only gives me a warning (unrelated to this issue):
WARNING in ⚠ custom stage for process_assets is not supported yet, so Infinity is fallback to Compilation.PROCESS_ASSETS_STAGE_REPORT(5000)
The installation and set up process needs to be reviewed by "someone who knows what they are doing" (tm), and the order of steps etc. be adjusted.
I have same error. after bundle exec rails db:initial_setup
, It works.
I have the same error, when I executed: RAILS_ENV=production bundle exec rake canvas:compile_assets --trace: ...... rake aborted! Parallel::UndumpableException: FrozenError: can't modify frozen Array: ["/usr/src/app/app/controllers", "/usr/src/app/app/controllers/concerns", "/usr/src/app/app/graphql", "/usr/src/app/app/helpers", "/usr/src/app/app/messages", "/usr/src/app/app/models", "/usr/src/app/app/observers", "/usr/src/app/app/presenters", "/usr/src/app/app/serializers", "/usr/src/app/app/services", "/usr/src/app/app/stylesheets", "/usr/src/app/lib", "/usr/src/app/gems/plugins/qti_exporter/lib", "/usr/src/app/gems/plugins/moodle_importer/lib", "/usr/src/app/gems/plugins/account_reports/lib", "/usr/src/app/gems/plugins/academic_benchmark/lib", "/usr/src/app/vendor/bundle/ruby/3.3.0/gems/sentry-rails-5.19.0/app/jobs", "/usr/src/app/vendor/bundle/ruby/3.3.0/gems/canvas_webex-0.18.2/app/models", "/usr/src/app/vendor/bundle/ruby/3.3.0/gems/canvas_webex-0.18.2/lib", "/usr/src/app/vendor/bundle/ruby/3.3.0/gems/canvas_connect-0.3.16/app/models", "/usr/src/app/vendor/bundle/ruby/3.3.0/gems/canvas_connect-0.3.16/lib", #<Pathname:/usr/src/app/lib/stubs>] (Parallel::UndumpableException) ...... but when I executed: RAILS_ENV=production bundle exec rails db:initial_setup,then finished compiling assets in 719.7s. I also don't know why?
It seems that a valid database.yml
is needed while running bundle exec rails canvas:compile_assets
.
Here, valid means a initialized canvas database configuration.
Otherwise, the FrozenError
is raised.
Summary:
Working through the installation guide for the simple install, and have reached an issue I can't for the life of me work out. I am trying to run Canvas LMS on Ubuntu Server 22.04.3 LTS.
When running
bundle exec rails canvas:compile_assets
orbundle exec rake canvas:compile_assets
the compilation breaks with FrozenError.This error occurs in the Rails engine setup (as indicated by the path /var/lib/gems/3.1.0/gems/railties-7.0.8/lib/rails/engine.rb).
Specific Location of the Error:
It occurs at this point within canvas:compile_assets:
Steps to reproduce:
1) Follow the instructions at https://github.com/instructure/canvas-lms/wiki/Quick-Start
2) Run command
bundle exec rails canvas:compile_assets
Expected behavior:
Successful compilation of canvas-lms
Actual behavior:
FrozenError
Additional notes:
Compile Canvas Output.md