projectblacklight / blacklight

Blacklight provides a discovery interface for any Solr (http://lucene.apache.org/solr) index.
http://projectblacklight.org/
Other
758 stars 257 forks source link

Using SolrDocument.attribute in Blacklight 7.11.1 causes undefined method attribute #2346

Open jcoyne opened 4 years ago

jcoyne commented 4 years ago

Seeing this error, but only in production mode (under Rails 5.2 w/o Zeitwerk):

I was unable to duplicate this in a vanilla install using the template: rails _5.2.4.4_ new demo -m https://raw.github.com/projectblacklight/blacklight/master/template.demo.rb

Then when starting rails in prod mode we get this error.

$ bin/rails c -e p
Traceback (most recent call last):
    87: from bin/rails:6:in `<main>'
    86: from bin/rails:6:in `require'
    85: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-5.2.4.4/lib/rails/commands.rb:18:in `<top (required)>'
    84: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-5.2.4.4/lib/rails/command.rb:46:in `invoke'
    83: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-5.2.4.4/lib/rails/command/base.rb:69:in `perform'
    82: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/thor-1.0.1/lib/thor.rb:392:in `dispatch'
    81: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/thor-1.0.1/lib/thor/invocation.rb:127:in `invoke_command'
    80: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/thor-1.0.1/lib/thor/command.rb:27:in `run'
    79: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-5.2.4.4/lib/rails/commands/console/console_command.rb:95:in `perform'
    78: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-5.2.4.4/lib/rails/command/actions.rb:15:in `require_application_and_environment!'
    77: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-5.2.4.4/lib/rails/command/actions.rb:28:in `require_environment!'
    76: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-5.2.4.4/lib/rails/application.rb:337:in `require_environment!'
    75: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:291:in `require'
    74: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:257:in `load_dependency'
    73: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:291:in `block in require'
    72: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:291:in `require'
    71: from /Users/jcoyne85/workspace/sul-dlss/argo/config/environment.rb:7:in `<top (required)>'
    70: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-5.2.4.4/lib/rails/application.rb:361:in `initialize!'
    69: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-5.2.4.4/lib/rails/initializable.rb:60:in `run_initializers'
    68: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/2.7.0/tsort.rb:205:in `tsort_each'
    67: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/2.7.0/tsort.rb:226:in `tsort_each'
    66: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/2.7.0/tsort.rb:347:in `each_strongly_connected_component'
    65: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/2.7.0/tsort.rb:347:in `call'
    64: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/2.7.0/tsort.rb:347:in `each'
    63: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/2.7.0/tsort.rb:349:in `block in each_strongly_connected_component'
    62: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/2.7.0/tsort.rb:431:in `each_strongly_connected_component_from'
    61: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/2.7.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
    60: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/2.7.0/tsort.rb:228:in `block in tsort_each'
    59: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-5.2.4.4/lib/rails/initializable.rb:61:in `block in run_initializers'
    58: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-5.2.4.4/lib/rails/initializable.rb:32:in `run'
    57: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-5.2.4.4/lib/rails/initializable.rb:32:in `instance_exec'
    56: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-5.2.4.4/lib/rails/application/finisher.rb:69:in `block in <module:Finisher>'
    55: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-5.2.4.4/lib/rails/application/finisher.rb:69:in `each'
    54: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-5.2.4.4/lib/rails/engine.rb:356:in `eager_load!'
    53: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-5.2.4.4/lib/rails/engine.rb:475:in `eager_load!'
    52: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-5.2.4.4/lib/rails/engine.rb:475:in `each'
    51: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-5.2.4.4/lib/rails/engine.rb:477:in `block in eager_load!'
    50: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-5.2.4.4/lib/rails/engine.rb:477:in `each'
    49: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-5.2.4.4/lib/rails/engine.rb:478:in `block (2 levels) in eager_load!'
    48: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:246:in `require_dependency'
    47: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:334:in `depend_on'
    46: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:356:in `require_or_load'
    45: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:37:in `load_interlock'
    44: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies/interlock.rb:13:in `loading'
    43: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/concurrency/share_lock.rb:151:in `exclusive'
    42: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies/interlock.rb:14:in `block in loading'
    41: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:37:in `block in load_interlock'
    40: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:378:in `block in require_or_load'
    39: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:291:in `require'
    38: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:257:in `load_dependency'
    37: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:291:in `block in require'
    36: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:291:in `require'
    35: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/blacklight-7.11.1/app/controllers/bookmarks_controller.rb:2:in `<top (required)>'
    34: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:195:in `const_missing'
    33: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:510:in `load_missing_constant'
    32: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:356:in `require_or_load'
    31: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:37:in `load_interlock'
    30: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies/interlock.rb:13:in `loading'
    29: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/concurrency/share_lock.rb:151:in `exclusive'
    28: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies/interlock.rb:14:in `block in loading'
    27: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:37:in `block in load_interlock'
    26: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:378:in `block in require_or_load'
    25: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:291:in `require'
    24: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:257:in `load_dependency'
    23: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:291:in `block in require'
    22: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:291:in `require'
    21: from /Users/jcoyne85/workspace/sul-dlss/argo/app/controllers/catalog_controller.rb:4:in `<top (required)>'
    20: from /Users/jcoyne85/workspace/sul-dlss/argo/app/controllers/catalog_controller.rb:11:in `<class:CatalogController>'
    19: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/blacklight-7.11.1/app/models/concerns/blacklight/configurable.rb:36:in `configure_blacklight'
    18: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/blacklight-7.11.1/lib/blacklight/configuration.rb:220:in `configure'
    17: from /Users/jcoyne85/workspace/sul-dlss/argo/app/controllers/catalog_controller.rb:32:in `block in <class:CatalogController>'
    16: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:195:in `const_missing'
    15: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:542:in `load_missing_constant'
    14: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:195:in `const_missing'
    13: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:510:in `load_missing_constant'
    12: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:356:in `require_or_load'
    11: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:37:in `load_interlock'
    10: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies/interlock.rb:13:in `loading'
     9: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/concurrency/share_lock.rb:151:in `exclusive'
     8: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies/interlock.rb:14:in `block in loading'
     7: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:37:in `block in load_interlock'
     6: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:378:in `block in require_or_load'
     5: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:291:in `require'
     4: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:257:in `load_dependency'
     3: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:291:in `block in require'
     2: from /Users/jcoyne85/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:291:in `require'
     1: from /Users/jcoyne85/workspace/sul-dlss/argo/app/models/solr_document.rb:3:in `<top (required)>'
/Users/jcoyne85/workspace/sul-dlss/argo/app/models/solr_document.rb:29:in `<class:SolrDocument>': undefined method `attribute' for SolrDocument:Class (NoMethodError)
jcoyne commented 4 years ago

I was able to get around the problem with attribute by changing up the load order:

Blacklight::Engine.config.eager_load_paths = [File.join(Blacklight.root, 'app', 'models', 'concerns')] + Blacklight::Engine.config.eager_load_paths

however, then I get stuck on:

NameError: uninitialized constant ApplicationMailer