Skip to content

Error Reporting: FileSet imports display as successful even when FileSetAttachedEventJob fails #1074

@maxkadel

Description

@maxkadel

When we upload a FileSet via Bulkrax, if the FileSet is successfully created, the importer entry shows as successful, even when the FileSet has not been attached to the parent Work successfully via the FileSetAttachedEventJob.

Since the RelationshipJob does not handle the FileSet-Work relationship, if the relationship is not created initially, it will not be created, so it should not report in the UI as successful if it has not been attached to the parent Work.

Backtrace when there is an error performing FileSetAttachedEventJob


Error performing FileSetAttachedEventJob (Job ID: e90e1aca-d1f3-4a3a-b922-28a587d327f1) from GoodJob(default) in 3.63ms: NoMethodError (undefined method `title' for nil):
/app/samvera/hyrax-webapp/gems/hyrax/app/jobs/file_set_attached_event_job.rb:29:in `work_title'
/app/samvera/hyrax-webapp/gems/hyrax/app/jobs/file_set_attached_event_job.rb:21:in `work_link'
/app/samvera/hyrax-webapp/gems/hyrax/app/jobs/file_set_attached_event_job.rb:11:in `action'
/app/samvera/hyrax-webapp/gems/hyrax/app/jobs/event_job.rb:34:in `event'
/app/samvera/hyrax-webapp/gems/hyrax/app/jobs/content_event_job.rb:21:in `log_user_event'
/app/samvera/hyrax-webapp/gems/hyrax/app/jobs/event_job.rb:20:in `perform'
/app/samvera/hyrax-webapp/gems/hyrax/app/jobs/content_event_job.rb:10:in `perform'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activejob/lib/active_job/execution.rb:48:in `block in perform_now'
/usr/local/bundle/gems/activesupport-6.1.7.6/lib/active_support/callbacks.rb:117:in `block in run_callbacks'
/usr/local/bundle/gems/i18n-1.14.7/lib/i18n.rb:353:in `with_locale'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activejob/lib/active_job/translation.rb:9:in `block (2 levels) in <module:Translation>'
/usr/local/bundle/gems/activesupport-6.1.7.6/lib/active_support/callbacks.rb:126:in `instance_exec'
/usr/local/bundle/gems/activesupport-6.1.7.6/lib/active_support/callbacks.rb:126:in `block in run_callbacks'
/usr/local/bundle/gems/activesupport-6.1.7.6/lib/active_support/core_ext/time/zones.rb:66:in `use_zone'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activejob/lib/active_job/timezones.rb:9:in `block (2 levels) in <module:Timezones>'
/usr/local/bundle/gems/activesupport-6.1.7.6/lib/active_support/callbacks.rb:126:in `instance_exec'
/usr/local/bundle/gems/activesupport-6.1.7.6/lib/active_support/callbacks.rb:126:in `block in run_callbacks'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activejob/lib/active_job/instrumentation.rb:21:in `block in instrument'
/usr/local/bundle/gems/activesupport-6.1.7.6/lib/active_support/notifications.rb:203:in `block in instrument'
/usr/local/bundle/gems/activesupport-6.1.7.6/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
/usr/local/bundle/gems/activesupport-6.1.7.6/lib/active_support/notifications.rb:203:in `instrument'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activejob/lib/active_job/instrumentation.rb:31:in `instrument'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activejob/lib/active_job/instrumentation.rb:14:in `block (2 levels) in <module:Instrumentation>'
/usr/local/bundle/gems/activesupport-6.1.7.6/lib/active_support/callbacks.rb:126:in `instance_exec'
/usr/local/bundle/gems/activesupport-6.1.7.6/lib/active_support/callbacks.rb:126:in `block in run_callbacks'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activejob/lib/active_job/logging.rb:24:in `tag_logger'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activejob/lib/active_job/logging.rb:15:in `block (2 levels) in <module:Logging>'
/usr/local/bundle/gems/activesupport-6.1.7.6/lib/active_support/callbacks.rb:126:in `instance_exec'
/usr/local/bundle/gems/activesupport-6.1.7.6/lib/active_support/callbacks.rb:126:in `block in run_callbacks'
/usr/local/bundle/gems/activesupport-6.1.7.6/lib/active_support/callbacks.rb:137:in `run_callbacks'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activejob/lib/active_job/execution.rb:47:in `perform_now'
/app/samvera/hyrax-webapp/lib/active_job_tenant.rb:65:in `block in perform_now'
/app/samvera/hyrax-webapp/lib/active_job_tenant.rb:84:in `block in switch'
/usr/local/bundle/bundler/gems/apartment-9ad4b0ef2ee6/lib/apartment/adapters/abstract_adapter.rb:85:in `switch'
/usr/local/lib/ruby/3.3.0/forwardable.rb:240:in `switch'
/app/samvera/hyrax-webapp/lib/active_job_tenant.rb:83:in `switch'
/app/samvera/hyrax-webapp/lib/active_job_tenant.rb:64:in `perform_now'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activejob/lib/active_job/execution.rb:25:in `block in execute'
/usr/local/bundle/gems/activesupport-6.1.7.6/lib/active_support/callbacks.rb:117:in `block in run_callbacks'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activejob/lib/active_job/railtie.rb:47:in `block (4 levels) in <class:Railtie>'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activesupport/lib/active_support/execution_wrapper.rb:91:in `wrap'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activesupport/lib/active_support/reloader.rb:72:in `block in wrap'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activesupport/lib/active_support/execution_wrapper.rb:87:in `wrap'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activesupport/lib/active_support/reloader.rb:71:in `wrap'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activejob/lib/active_job/railtie.rb:46:in `block (3 levels) in <class:Railtie>'
/usr/local/bundle/gems/activesupport-6.1.7.6/lib/active_support/callbacks.rb:126:in `instance_exec'
/usr/local/bundle/gems/activesupport-6.1.7.6/lib/active_support/callbacks.rb:126:in `block in run_callbacks'
/usr/local/bundle/gems/activesupport-6.1.7.6/lib/active_support/callbacks.rb:137:in `run_callbacks'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activejob/lib/active_job/execution.rb:23:in `execute'
/usr/local/bundle/gems/good_job-2.99.0/lib/models/good_job/execution.rb:351:in `block (2 levels) in execute'
/usr/local/bundle/gems/activesupport-6.1.7.6/lib/active_support/notifications.rb:203:in `block in instrument'
/usr/local/bundle/gems/activesupport-6.1.7.6/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
/usr/local/bundle/gems/activesupport-6.1.7.6/lib/active_support/notifications.rb:203:in `instrument'
/usr/local/bundle/gems/good_job-2.99.0/lib/models/good_job/execution.rb:350:in `block in execute'
/usr/local/bundle/gems/good_job-2.99.0/lib/good_job/current_thread.rb:84:in `within'
/usr/local/bundle/gems/good_job-2.99.0/lib/models/good_job/execution.rb:345:in `execute'
/usr/local/bundle/gems/good_job-2.99.0/lib/models/good_job/execution.rb:246:in `perform'
/usr/local/bundle/gems/good_job-2.99.0/lib/models/good_job/execution.rb:162:in `block in perform_with_advisory_lock'
/usr/local/bundle/gems/good_job-2.99.0/lib/models/good_job/lockable.rb:163:in `block in with_advisory_lock'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activerecord/lib/active_record/scoping/default.rb:34:in `block in unscoped'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activerecord/lib/active_record/relation.rb:406:in `block in scoping'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activerecord/lib/active_record/relation.rb:808:in `_scoping'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activerecord/lib/active_record/relation.rb:406:in `scoping'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activerecord/lib/active_record/scoping/default.rb:34:in `unscoped'
/usr/local/bundle/gems/good_job-2.99.0/lib/models/good_job/lockable.rb:163:in `with_advisory_lock'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activerecord/lib/active_record/relation/delegation.rb:67:in `block in with_advisory_lock'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activerecord/lib/active_record/relation.rb:406:in `block in scoping'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activerecord/lib/active_record/relation.rb:808:in `_scoping'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activerecord/lib/active_record/relation.rb:406:in `scoping'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activerecord/lib/active_record/relation/delegation.rb:67:in `with_advisory_lock'
/usr/local/bundle/gems/good_job-2.99.0/lib/models/good_job/execution.rb:157:in `perform_with_advisory_lock'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activerecord/lib/active_record/relation/delegation.rb:67:in `block in perform_with_advisory_lock'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activerecord/lib/active_record/relation.rb:406:in `block in scoping'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activerecord/lib/active_record/relation.rb:808:in `_scoping'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activerecord/lib/active_record/relation.rb:406:in `scoping'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activerecord/lib/active_record/relation/delegation.rb:67:in `perform_with_advisory_lock'
/usr/local/bundle/gems/good_job-2.99.0/lib/good_job/job_performer.rb:27:in `next'
/usr/local/bundle/gems/good_job-2.99.0/lib/good_job/scheduler.rb:270:in `block (2 levels) in create_task'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activesupport/lib/active_support/execution_wrapper.rb:91:in `wrap'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activesupport/lib/active_support/reloader.rb:72:in `block in wrap'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activesupport/lib/active_support/execution_wrapper.rb:91:in `wrap'
/usr/local/bundle/bundler/gems/rails-d16199e50708/activesupport/lib/active_support/reloader.rb:71:in `wrap'
/usr/local/bundle/gems/good_job-2.99.0/lib/good_job/scheduler.rb:269:in `block in create_task'
/usr/local/bundle/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/executor/safe_task_executor.rb:24:in `block in execute'
/usr/local/bundle/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:48:in `block in synchronize'
/usr/local/bundle/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:48:in `synchronize'
/usr/local/bundle/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:48:in `synchronize'
/usr/local/bundle/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/executor/safe_task_executor.rb:22:in `execute'
/usr/local/bundle/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/ivar.rb:170:in `safe_execute'
/usr/local/bundle/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/scheduled_task.rb:298:in `process_task'
/usr/local/bundle/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/executor/timer_set.rb:98:in `block in ns_post_task'
/usr/local/bundle/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:359:in `run_task'
/usr/local/bundle/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:350:in `block (3 levels) in create_worker'
<internal:kernel>:187:in `loop'
/usr/local/bundle/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:341:in `block (2 levels) in create_worker'
/usr/local/bundle/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:340:in `catch'
/usr/local/bundle/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:340:in `block in create_worker'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions