Project

General

Profile

Actions

Bug #29429

closed

Dynflow tables are tried to migrate in parallel

Added by Anonymous about 4 years ago. Updated almost 4 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
DB migrations
Target version:
-
Fixed in Releases:
Found in Releases:

Description

Suspision: dynflow tries to migrate the tables when it boots up. Maybe dynflow tries to migrate the db several times at once from different puma workers

Examples:

  • CentOS 7:
    /opt/theforeman/tfm/root/usr/share/gems/gems/sequel-5.7.1/lib/sequel/adapters/postgres.rb:146:in `async_exec': PG::UniqueViolation: ERROR:  duplicate key value violates unique constraint "pg_type_typname_nsp_index" (Sequel::UniqueConstraintViolation)
    DETAIL:  Key (typname, typnamespace)=(dynflow_schema_info, 2200) already exists.
    
  • Ubuntu 18.04:
    dynflow-sidekiq@orchestrator[8451]: More than 1 row in migrator table
    dynflow-sidekiq@orchestrator[8451]: /usr/share/foreman/vendor/ruby/2.5.0/gems/sequel-5.30.0/lib/sequel/extensions/migration.rb:620:in `schema_dataset'
    dynflow-sidekiq@orchestrator[8451]: /usr/share/foreman/vendor/ruby/2.5.0/gems/sequel-5.30.0/lib/sequel/extensions/migration.rb:455:in `initialize'
    dynflow-sidekiq@orchestrator[8451]: /usr/share/foreman/vendor/ruby/2.5.0/gems/sequel-5.30.0/lib/sequel/extensions/migration.rb:519:in `initialize'
    dynflow-sidekiq@orchestrator[8451]: /usr/share/foreman/vendor/ruby/2.5.0/gems/sequel-5.30.0/lib/sequel/extensions/migration.rb:402:in `new'
    dynflow-sidekiq@orchestrator[8451]: /usr/share/foreman/vendor/ruby/2.5.0/gems/sequel-5.30.0/lib/sequel/extensions/migration.rb:402:in `run'
    dynflow-sidekiq@orchestrator[8451]: /usr/share/foreman/vendor/ruby/2.5.0/gems/dynflow-1.4.3/lib/dynflow/persistence_adapters/sequel.rb:263:in `migrate_db'
    
Actions #1

Updated by Ewoud Kohl van Wijngaarden almost 4 years ago

One solution is to create rake tasks to do this and let the installer handle it. For the regular DB it uses two tasks (db:migrate and db:abort_if_pending_migrations) to indicate whether a migration is needed and to actually migrate. This provides idempotency.

Actions #2

Updated by The Foreman Bot almost 4 years ago

  • Assignee set to Adam Ruzicka
  • Status changed from New to Ready For Testing
  • Pull request https://github.com/theforeman/foreman/pull/7593 added
Actions #3

Updated by Adam Ruzicka almost 4 years ago

  • Category deleted (DB migrations)
  • Pull request https://github.com/Dynflow/dynflow/pull/353 added
Actions #4

Updated by The Foreman Bot almost 4 years ago

  • Fixed in Releases 2.2.0 added
Actions #5

Updated by Adam Ruzicka almost 4 years ago

  • Status changed from Ready For Testing to Closed
Actions #6

Updated by Tomer Brisker almost 4 years ago

  • Fixed in Releases 2.1.0 added
  • Fixed in Releases deleted (2.2.0)
Actions #7

Updated by Amit Upadhye almost 4 years ago

  • Category set to DB migrations
Actions

Also available in: Atom PDF