[ ] NoMethodError: undefined method `course' for nil:NilClass …c.mooc.fi/hy/app/controllers/submissions_controller.rb: 258:in `get_course_and_exercise'…c.mooc.fi/hy/app/controllers/submissions_controller.rb: 238:in `block in course_transaction'…c.mooc.fi/hy/app/controllers/submissions_controller.rb: 237:in `course_transaction'<truncated 68 additional frames>…uby/phusion_passenger/rack/thread_handler_extension.rb: 97:in `process_request'…by/phusion_passenger/request_handler/thread_handler.rb: 149:in `accept_and_process_next_request'…by/phusion_passenger/request_handler/thread_handler.rb: 110:in `main_loop'…/ruby/vendor_ruby/phusion_passenger/request_handler.rb: 415:in `block (3 levels) in start_threads' /usr/lib/ruby/vendor_ruby/phusion_passenger/utils.rb: 113:in `block in create_thread_and_abort_on_exception'
[x] [2021-02-03T13:36:43.772170 #18689] ERROR -- : UncomputedUnlockComputorTask exception: PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_unlocks_on_user_id_and_course_id_and_exercise_name" DETAIL: Key (user_id, course_id, exercise_name)=(7662, 778, osa03-13_sanalaatikko) already exists. /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-2.3.0/lib/patches/db/pg.rb:69:in `exec_params' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-2.3.0/lib/patches/db/pg.rb:69:in `exec_params' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/connection_adapters/postgresql_adapter.rb:678:in `block (2 levels) in exec_no_cache' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.1/lib/active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.1/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.1/lib/active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/connection_adapters/postgresql_adapter.rb:677:in `block in exec_no_cache' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/connection_adapters/abstract_adapter.rb:697:in `block (2 levels) in log' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/connection_adapters/abstract_adapter.rb:696:in `block in log' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.1/lib/active_support/notifications/instrumenter.rb:24:in `instrument' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/connection_adapters/abstract_adapter.rb:688:in `log' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/connection_adapters/postgresql_adapter.rb:676:in `exec_no_cache' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/connection_adapters/postgresql_adapter.rb:653:in `execute_and_clear' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/connection_adapters/postgresql/database_statements.rb:53:in `exec_query' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/connection_adapters/abstract/database_statements.rb:532:in `select' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/connection_adapters/abstract/database_statements.rb:69:in `select_all' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/connection_adapters/abstract/query_cache.rb:103:in `select_all' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/connection_adapters/abstract/database_statements.rb:95:in `select_rows' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/connection_adapters/abstract/database_statements.rb:89:in `select_values' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-import-1.0.7/lib/activerecord-import/adapters/postgresql_adapter.rb:29:in `insert_many' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-import-1.0.7/lib/activerecord-import/import.rb:812:in `block in import_without_validations_or_callbacks' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-import-1.0.7/lib/activerecord-import/import.rb:810:in `each' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-import-1.0.7/lib/activerecord-import/import.rb:810:in `each_slice' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-import-1.0.7/lib/activerecord-import/import.rb:810:in `import_without_validations_or_callbacks' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-import-1.0.7/lib/activerecord-import/import.rb:758:in `import_with_validations' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-import-1.0.7/lib/activerecord-import/import.rb:696:in `import_helper' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-import-1.0.7/lib/activerecord-import/import.rb:530:in `bulk_import' from /srv/www/tmc.mooc.fi/hy/app/models/unlock.rb:87:in `fast_refresh_unlocks_impl' from /srv/www/tmc.mooc.fi/hy/app/models/unlock.rb:27:in `block in refresh_unlocks' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/connection_adapters/abstract/database_statements.rb:320:in `block in transaction' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/connection_adapters/abstract/transaction.rb:310:in `block in within_new_transaction' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/connection_adapters/abstract/transaction.rb:308:in `within_new_transaction' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/connection_adapters/abstract/database_statements.rb:320:in `transaction' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/transactions.rb:209:in `transaction' from /srv/www/tmc.mooc.fi/hy/app/models/unlock.rb:24:in `refresh_unlocks' from /srv/www/tmc.mooc.fi/hy/app/background_tasks/uncomputed_unlock_computor_task.rb:14:in `block in run' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/relation/delegation.rb:88:in `each' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/relation/delegation.rb:88:in `each' from /srv/www/tmc.mooc.fi/hy/app/background_tasks/uncomputed_unlock_computor_task.rb:10:in `run' from script/background_daemon:32:in `block (3 levels) in <main>' from script/background_daemon:30:in `loop' from script/background_daemon:30:in `block (2 levels) in <main>' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.1/lib/active_support/fork_tracker.rb:10:in `block in fork' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.1/lib/active_support/fork_tracker.rb:8:in `fork' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.1/lib/active_support/fork_tracker.rb:8:in `fork' from script/background_daemon:29:in `block in <main>' from script/background_daemon:28:in `map' from script/background_daemon:28:in `<main>'
-> delete uniqueness index index_unlocks_on_user_id_and_course_id_and_exercise_name
[ ]
NoMethodError: undefined method `course' for nil:NilClass …c.mooc.fi/hy/app/controllers/submissions_controller.rb: 258:in `get_course_and_exercise'…c.mooc.fi/hy/app/controllers/submissions_controller.rb: 238:in `block in course_transaction'…c.mooc.fi/hy/app/controllers/submissions_controller.rb: 237:in `course_transaction'<truncated 68 additional frames>…uby/phusion_passenger/rack/thread_handler_extension.rb: 97:in `process_request'…by/phusion_passenger/request_handler/thread_handler.rb: 149:in `accept_and_process_next_request'…by/phusion_passenger/request_handler/thread_handler.rb: 110:in `main_loop'…/ruby/vendor_ruby/phusion_passenger/request_handler.rb: 415:in `block (3 levels) in start_threads' /usr/lib/ruby/vendor_ruby/phusion_passenger/utils.rb: 113:in `block in create_thread_and_abort_on_exception'
[x]
[2021-02-03T13:36:43.772170 #18689] ERROR -- : UncomputedUnlockComputorTask exception: PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_unlocks_on_user_id_and_course_id_and_exercise_name" DETAIL: Key (user_id, course_id, exercise_name)=(7662, 778, osa03-13_sanalaatikko) already exists. /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-2.3.0/lib/patches/db/pg.rb:69:in `exec_params' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-2.3.0/lib/patches/db/pg.rb:69:in `exec_params' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/connection_adapters/postgresql_adapter.rb:678:in `block (2 levels) in exec_no_cache' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.1/lib/active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.1/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.1/lib/active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/connection_adapters/postgresql_adapter.rb:677:in `block in exec_no_cache' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/connection_adapters/abstract_adapter.rb:697:in `block (2 levels) in log' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/connection_adapters/abstract_adapter.rb:696:in `block in log' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.1/lib/active_support/notifications/instrumenter.rb:24:in `instrument' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/connection_adapters/abstract_adapter.rb:688:in `log' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/connection_adapters/postgresql_adapter.rb:676:in `exec_no_cache' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/connection_adapters/postgresql_adapter.rb:653:in `execute_and_clear' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/connection_adapters/postgresql/database_statements.rb:53:in `exec_query' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/connection_adapters/abstract/database_statements.rb:532:in `select' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/connection_adapters/abstract/database_statements.rb:69:in `select_all' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/connection_adapters/abstract/query_cache.rb:103:in `select_all' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/connection_adapters/abstract/database_statements.rb:95:in `select_rows' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/connection_adapters/abstract/database_statements.rb:89:in `select_values' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-import-1.0.7/lib/activerecord-import/adapters/postgresql_adapter.rb:29:in `insert_many' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-import-1.0.7/lib/activerecord-import/import.rb:812:in `block in import_without_validations_or_callbacks' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-import-1.0.7/lib/activerecord-import/import.rb:810:in `each' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-import-1.0.7/lib/activerecord-import/import.rb:810:in `each_slice' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-import-1.0.7/lib/activerecord-import/import.rb:810:in `import_without_validations_or_callbacks' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-import-1.0.7/lib/activerecord-import/import.rb:758:in `import_with_validations' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-import-1.0.7/lib/activerecord-import/import.rb:696:in `import_helper' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-import-1.0.7/lib/activerecord-import/import.rb:530:in `bulk_import' from /srv/www/tmc.mooc.fi/hy/app/models/unlock.rb:87:in `fast_refresh_unlocks_impl' from /srv/www/tmc.mooc.fi/hy/app/models/unlock.rb:27:in `block in refresh_unlocks' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/connection_adapters/abstract/database_statements.rb:320:in `block in transaction' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/connection_adapters/abstract/transaction.rb:310:in `block in within_new_transaction' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.1/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/connection_adapters/abstract/transaction.rb:308:in `within_new_transaction' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/connection_adapters/abstract/database_statements.rb:320:in `transaction' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/transactions.rb:209:in `transaction' from /srv/www/tmc.mooc.fi/hy/app/models/unlock.rb:24:in `refresh_unlocks' from /srv/www/tmc.mooc.fi/hy/app/background_tasks/uncomputed_unlock_computor_task.rb:14:in `block in run' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/relation/delegation.rb:88:in `each' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activerecord-6.1.1/lib/active_record/relation/delegation.rb:88:in `each' from /srv/www/tmc.mooc.fi/hy/app/background_tasks/uncomputed_unlock_computor_task.rb:10:in `run' from script/background_daemon:32:in `block (3 levels) in <main>' from script/background_daemon:30:in `loop' from script/background_daemon:30:in `block (2 levels) in <main>' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.1/lib/active_support/fork_tracker.rb:10:in `block in fork' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.1/lib/active_support/fork_tracker.rb:8:in `fork' from /srv/www/tmc.mooc.fi/hy/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.1/lib/active_support/fork_tracker.rb:8:in `fork' from script/background_daemon:29:in `block in <main>' from script/background_daemon:28:in `map' from script/background_daemon:28:in `<main>'
-> delete uniqueness indexindex_unlocks_on_user_id_and_course_id_and_exercise_name