Skip to content

can't modify immutable index when precompiling in 1.0.0 #31

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
jtmalinowski opened this issue Mar 12, 2014 · 5 comments
Closed

can't modify immutable index when precompiling in 1.0.0 #31

jtmalinowski opened this issue Mar 12, 2014 · 5 comments

Comments

@jtmalinowski
Copy link
Collaborator

During rake assets:precompile, an error appears as shown in the stack trace below.
It probably is related to changes in initializer between 0.9.0 and 1.0.0
Stack trace is from 3.2, but it is related to 4.0 too.

rake aborted!
can't modify immutable index
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/sprockets-2.2.2/lib/sprockets/index.rb:80:in `expire_index!'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/sprockets-2.2.2/lib/sprockets/trail.rb:31:in `prepend_path'
/Users/jakub/code/react-rails/lib/react/rails/railtie.rb:29:in `block in <class:Railtie>'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/activesupport-3.2.17/lib/active_support/lazy_load_hooks.rb:34:in `call'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/activesupport-3.2.17/lib/active_support/lazy_load_hooks.rb:34:in `execute_hook'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/activesupport-3.2.17/lib/active_support/lazy_load_hooks.rb:43:in `block in run_load_hooks'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/activesupport-3.2.17/lib/active_support/lazy_load_hooks.rb:42:in `each'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/activesupport-3.2.17/lib/active_support/lazy_load_hooks.rb:42:in `run_load_hooks'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/railties-3.2.17/lib/rails/application/finisher.rb:59:in `block in <module:Finisher>'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/railties-3.2.17/lib/rails/initializable.rb:30:in `instance_exec'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/railties-3.2.17/lib/rails/initializable.rb:30:in `run'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/railties-3.2.17/lib/rails/initializable.rb:55:in `block in run_initializers'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/railties-3.2.17/lib/rails/initializable.rb:54:in `each'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/railties-3.2.17/lib/rails/initializable.rb:54:in `run_initializers'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/railties-3.2.17/lib/rails/application.rb:136:in `initialize!'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/railties-3.2.17/lib/rails/railtie/configurable.rb:30:in `method_missing'
/Users/jakub/code/react-rails-dev-32/config/environment.rb:5:in `<top (required)>'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/activesupport-3.2.17/lib/active_support/dependencies.rb:251:in `require'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/activesupport-3.2.17/lib/active_support/dependencies.rb:251:in `block in require'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/activesupport-3.2.17/lib/active_support/dependencies.rb:236:in `load_dependency'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/activesupport-3.2.17/lib/active_support/dependencies.rb:251:in `require'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/railties-3.2.17/lib/rails/application.rb:103:in `require_environment!'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/railties-3.2.17/lib/rails/application.rb:305:in `block (2 levels) in initialize_tasks'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/task.rb:236:in `call'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/task.rb:236:in `block in execute'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/task.rb:231:in `each'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/task.rb:231:in `execute'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/task.rb:175:in `block in invoke_with_call_chain'
/Users/jakub/.rvm/rubies/ruby-1.9.3-p484/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/task.rb:168:in `invoke_with_call_chain'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/task.rb:161:in `invoke'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/turbo-sprockets-rails3-0.3.11/lib/turbo-sprockets/tasks/assets.rake:190:in `block (2 levels) in <top (required)>'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/task.rb:236:in `call'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/task.rb:236:in `block in execute'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/task.rb:231:in `each'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/task.rb:231:in `execute'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/task.rb:175:in `block in invoke_with_call_chain'
/Users/jakub/.rvm/rubies/ruby-1.9.3-p484/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/task.rb:168:in `invoke_with_call_chain'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/task.rb:197:in `block in invoke_prerequisites'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/task.rb:195:in `each'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/task.rb:195:in `invoke_prerequisites'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/task.rb:174:in `block in invoke_with_call_chain'
/Users/jakub/.rvm/rubies/ruby-1.9.3-p484/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/task.rb:168:in `invoke_with_call_chain'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/task.rb:197:in `block in invoke_prerequisites'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/task.rb:195:in `each'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/task.rb:195:in `invoke_prerequisites'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/task.rb:174:in `block in invoke_with_call_chain'
/Users/jakub/.rvm/rubies/ruby-1.9.3-p484/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/task.rb:168:in `invoke_with_call_chain'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/task.rb:161:in `invoke'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/application.rb:149:in `invoke_task'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/application.rb:106:in `block (2 levels) in top_level'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/application.rb:106:in `each'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/application.rb:106:in `block in top_level'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/application.rb:115:in `run_with_threads'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/application.rb:100:in `top_level'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/application.rb:78:in `block in run'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/application.rb:165:in `standard_exception_handling'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/application.rb:75:in `run'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/bin/rake:33:in `<top (required)>'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/bin/rake:23:in `load'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/bin/rake:23:in `<main>'
Tasks: TOP => environment
rake aborted!
Command failed with status (1): [/Users/jakub/.rvm/rubies/ruby-1.9.3-p484/b...]
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/file_utils.rb:55:in `block in create_shell_runner'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/file_utils.rb:45:in `call'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/file_utils.rb:45:in `sh'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/file_utils_ext.rb:37:in `sh'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/file_utils.rb:82:in `ruby'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/file_utils_ext.rb:37:in `ruby'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/actionpack-3.2.17/lib/sprockets/assets.rake:12:in `ruby_rake_task'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/actionpack-3.2.17/lib/sprockets/assets.rake:21:in `invoke_or_reboot_rake_task'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/actionpack-3.2.17/lib/sprockets/assets.rake:29:in `block (2 levels) in <top (required)>'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/task.rb:236:in `call'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/task.rb:236:in `block in execute'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/task.rb:231:in `each'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/task.rb:231:in `execute'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/task.rb:175:in `block in invoke_with_call_chain'
/Users/jakub/.rvm/rubies/ruby-1.9.3-p484/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/task.rb:168:in `invoke_with_call_chain'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/task.rb:161:in `invoke'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/application.rb:149:in `invoke_task'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/application.rb:106:in `block (2 levels) in top_level'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/application.rb:106:in `each'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/application.rb:106:in `block in top_level'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/application.rb:115:in `run_with_threads'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/application.rb:100:in `top_level'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/application.rb:78:in `block in run'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/application.rb:165:in `standard_exception_handling'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/lib/rake/application.rb:75:in `run'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/gems/rake-10.1.1/bin/rake:33:in `<top (required)>'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/bin/rake:23:in `load'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/bin/rake:23:in `<main>'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/bin/ruby_executable_hooks:15:in `eval'
/Users/jakub/.rvm/gems/ruby-1.9.3-p484/bin/ruby_executable_hooks:15:in `<main>'
Tasks: TOP => assets:precompile
@juno
Copy link

juno commented Mar 14, 2014

Same issue here.
I investigated that this issue introduced by changes in 8b110af.

@nLight
Copy link

nLight commented Mar 23, 2014

Exactly the same issue.

@JakubMal should we roll back these changes? config.after_initialize won't work due to sprockets architecture.

'initialiser' block receives Sprockets::Environment instance as app.assets, that allows to expire_index!
But 'config.after_initialize' receives Sprokets::Index instance, that throws an exception in expire_index! method.

johnthethird pushed a commit to johnthethird/react-rails that referenced this issue Mar 25, 2014
…tialize hook for

altering Sprockets paths.
@thmzlt
Copy link

thmzlt commented Mar 30, 2014

Same issue here. Reverting 8b110af fixes it.

@jtmalinowski
Copy link
Collaborator Author

Yeah, I'm not sure what was the reason for this change. Anyway, @johnthethird, whom I can't ref here made a nice fix, and I asked him to PR it separately, because I don't know how much we need to finish server-side rendering. It looks like his busy though, and so if he won't reply in a few days I'll cherry-pick his fix into master, and I'll try to credit him somehow.

EDIT: So I think Tuesday would be a nice day to review and finish this.

@jtmalinowski
Copy link
Collaborator Author

I have tested this using current master and it works for all known cases, let's reopen if we find a case for which this won't work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants