Infos:
- Used Zammad version: Zammad 7.1.1-1782984583.bf8c7c4.ubuntu22
- Used Zammad installation type: ubuntu package Ubuntu 22.04.5 LTS with custom addons installed
- Operating system: ubuntu
- Browser + version: irrelevant
Expected behavior:
sudo zammad run rake assets:precompileruns without erroring out
Actual behavior:
sudo zammad run rake assets:precompileerrors out with error trace below
Steps to reproduce the behavior:
- after successfully upgrading to zammad version 7.0.2 from 6.5.2 asset recompilation for custom packages broke
sudo zammad run rake assets:precompilenow no longer runs successfully
% sudo zammad run rake assets:precompile
rake aborted!
LoadError: cannot load such file -- sassc (LoadError)
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/bootsnap-1.24.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in 'Kernel#require'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/zeitwerk-2.7.5/lib/zeitwerk/core_ext/kernel.rb:34:in 'Kernel#require'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/autoload/sassc.rb:2:in '<main>'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/bootsnap-1.24.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:33:in 'Kernel#require'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/zeitwerk-2.7.5/lib/zeitwerk/core_ext/kernel.rb:34:in 'Kernel#require'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/sassc_processor.rb:42:in 'Sprockets::SasscProcessor#initialize'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/sassc_processor.rb:27:in 'Class#new'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/sassc_processor.rb:27:in 'Sprockets::SasscProcessor.instance'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/sassc_processor.rb:31:in 'Sprockets::SasscProcessor.call'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/processor_utils.rb:84:in 'Sprockets::ProcessorUtils#call_processor'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/processor_utils.rb:66:in 'block in Sprockets::ProcessorUtils#call_processors'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/processor_utils.rb:65:in 'Array#reverse_each'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/processor_utils.rb:65:in 'Sprockets::ProcessorUtils#call_processors'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/processor_utils.rb:22:in 'block in <class:CompositeProcessor>'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/processor_utils.rb:33:in 'Sprockets::ProcessorUtils::CompositeProcessor#call'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/processor_utils.rb:84:in 'Sprockets::ProcessorUtils#call_processor'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/processor_utils.rb:66:in 'block in Sprockets::ProcessorUtils#call_processors'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/processor_utils.rb:65:in 'Array#reverse_each'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/processor_utils.rb:65:in 'Sprockets::ProcessorUtils#call_processors'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/loader.rb:184:in 'Sprockets::Loader#load_from_unloaded'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/loader.rb:59:in 'block in Sprockets::Loader#load'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/loader.rb:339:in 'Sprockets::Loader#fetch_asset_from_dependency_cache'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/loader.rb:43:in 'Sprockets::Loader#load'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/cached_environment.rb:44:in 'block in Sprockets::CachedEnvironment#load'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.7/lib/concurrent-ruby/concurrent/map.rb:207:in 'block in Concurrent::Map#fetch_or_store'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.7/lib/concurrent-ruby/concurrent/map.rb:187:in 'Concurrent::Map#fetch'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.7/lib/concurrent-ruby/concurrent/map.rb:206:in 'Concurrent::Map#fetch_or_store'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/cached_environment.rb:44:in 'Sprockets::CachedEnvironment#load'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/bundle.rb:41:in 'block in Sprockets::Bundle.call'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/utils.rb:175:in 'Sprockets::Utils#dfs'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/bundle.rb:42:in 'Sprockets::Bundle.call'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/processor_utils.rb:84:in 'Sprockets::ProcessorUtils#call_processor'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/processor_utils.rb:66:in 'block in Sprockets::ProcessorUtils#call_processors'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/processor_utils.rb:65:in 'Array#reverse_each'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/processor_utils.rb:65:in 'Sprockets::ProcessorUtils#call_processors'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/loader.rb:184:in 'Sprockets::Loader#load_from_unloaded'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/loader.rb:59:in 'block in Sprockets::Loader#load'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/loader.rb:339:in 'Sprockets::Loader#fetch_asset_from_dependency_cache'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/loader.rb:43:in 'Sprockets::Loader#load'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/cached_environment.rb:44:in 'block in Sprockets::CachedEnvironment#load'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.7/lib/concurrent-ruby/concurrent/map.rb:207:in 'block in Concurrent::Map#fetch_or_store'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.7/lib/concurrent-ruby/concurrent/map.rb:187:in 'Concurrent::Map#fetch'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.7/lib/concurrent-ruby/concurrent/map.rb:206:in 'Concurrent::Map#fetch_or_store'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/cached_environment.rb:44:in 'Sprockets::CachedEnvironment#load'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/bundle.rb:32:in 'block in Sprockets::Bundle.call'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/bundle.rb:31:in 'Sprockets::Bundle.call'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/processor_utils.rb:84:in 'Sprockets::ProcessorUtils#call_processor'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/processor_utils.rb:66:in 'block in Sprockets::ProcessorUtils#call_processors'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/processor_utils.rb:65:in 'Array#reverse_each'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/processor_utils.rb:65:in 'Sprockets::ProcessorUtils#call_processors'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/loader.rb:184:in 'Sprockets::Loader#load_from_unloaded'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/loader.rb:59:in 'block in Sprockets::Loader#load'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/loader.rb:339:in 'Sprockets::Loader#fetch_asset_from_dependency_cache'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/loader.rb:43:in 'Sprockets::Loader#load'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/cached_environment.rb:44:in 'block in Sprockets::CachedEnvironment#load'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.7/lib/concurrent-ruby/concurrent/map.rb:207:in 'block in Concurrent::Map#fetch_or_store'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.7/lib/concurrent-ruby/concurrent/map.rb:187:in 'Concurrent::Map#fetch'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.7/lib/concurrent-ruby/concurrent/map.rb:206:in 'Concurrent::Map#fetch_or_store'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/cached_environment.rb:44:in 'Sprockets::CachedEnvironment#load'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/base.rb:81:in 'Sprockets::Base#find_asset'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/base.rb:88:in 'Sprockets::Base#find_all_linked_assets'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/manifest.rb:125:in 'Enumerator#each'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/manifest.rb:125:in 'Enumerable#to_a'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/sprockets-4.2.2/lib/sprockets/manifest.rb:125:in 'block (2 levels) in Sprockets::Manifest#find'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.7/lib/concurrent-ruby/concurrent/executor/safe_task_executor.rb:24:in 'block in Concurrent::SafeTaskExecutor#execute'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.7/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:48:in 'block in Concurrent::Synchronization::MutexLockableObject#synchronize'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.7/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:48:in 'Thread::Mutex#synchronize'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.7/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:48:in 'Concurrent::Synchronization::MutexLockableObject#synchronize'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.7/lib/concurrent-ruby/concurrent/executor/safe_task_executor.rb:22:in 'Concurrent::SafeTaskExecutor#execute'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.7/lib/concurrent-ruby/concurrent/promise.rb:564:in 'block in Concurrent::Promise#realize'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.7/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:382:in 'Concurrent::RubyThreadPoolExecutor::Worker#run_task'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.7/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:372:in 'block (3 levels) in Concurrent::RubyThreadPoolExecutor::Worker#create_worker'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.7/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:361:in 'block (2 levels) in Concurrent::RubyThreadPoolExecutor::Worker#create_worker'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.7/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:358:in 'Kernel#catch'
/opt/zammad/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.7/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:358:in 'block in Concurrent::RubyThreadPoolExecutor::Worker#create_worker'
Tasks: TOP => assets:precompile
(See full trace by running task with --trace)
I saw that there was a related commit Maintenance: Update to Sprockets v4 · zammad/zammad@c6e38d1 · GitHub that upgradd sprockets to version 4, claiming it not using sassc, but somehow on our system something went wrong and it tries to load sassc.
Any help is appreciated, I am currently spinning up a vm to debug this further myself.