Skip to content

Can't migrate the DB after #6947 #7487

@mrcasals

Description

@mrcasals

Describe the bug
The migration added in #6947 fails with this error using production data:

Stacktrace ``` ActiveSupport::MessageVerifier::InvalidSignature: ActiveSupport::MessageVerifier::InvalidSignature /Users/marc/.asdf/installs/ruby/2.7.2/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.5/lib/active_support/message_verifier.rb:176:in `verify' /Users/marc/.asdf/installs/ruby/2.7.2/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.5/lib/active_support/message_encryptor.rb:157:in `decrypt_and_verify' /Users/marc/.asdf/installs/ruby/2.7.2/lib/ruby/gems/2.7.0/gems/activesupport-5.2.4.5/lib/active_support/messages/rotator.rb:21:in `decrypt_and_verify' /Users/marc/.asdf/installs/ruby/2.7.2/lib/ruby/gems/2.7.0/gems/decidim-core-0.24.0.rc1/lib/decidim/attribute_encryptor.rb:10:in `decrypt' /Users/marc/.asdf/installs/ruby/2.7.2/lib/ruby/gems/2.7.0/gems/decidim-core-0.24.0.rc1/lib/decidim/record_encryptor.rb:105:in `decrypt_value' /Users/marc/.asdf/installs/ruby/2.7.2/lib/ruby/gems/2.7.0/gems/decidim-core-0.24.0.rc1/lib/decidim/record_encryptor.rb:119:in `block in decrypt_hash_values' /Users/marc/.asdf/installs/ruby/2.7.2/lib/ruby/gems/2.7.0/gems/decidim-core-0.24.0.rc1/lib/decidim/record_encryptor.rb:119:in `transform_values' /Users/marc/.asdf/installs/ruby/2.7.2/lib/ruby/gems/2.7.0/gems/decidim-core-0.24.0.rc1/lib/decidim/record_encryptor.rb:119:in `decrypt_hash_values' /Users/marc/.asdf/installs/ruby/2.7.2/lib/ruby/gems/2.7.0/gems/decidim-core-0.24.0.rc1/lib/decidim/record_encryptor.rb:69:in `verification_metadata' /Users/marc/code/decidim-apps/metadecidim/db/migrate/20210301101419_encrypt_authorization_metadatas.decidim.rb:11:in `block in up' /Users/marc/.asdf/installs/ruby/2.7.2/lib/ruby/gems/2.7.0/gems/activerecord-5.2.4.5/lib/active_record/relation/batches.rb:70:in `block (2 levels) in find_each' /Users/marc/.asdf/installs/ruby/2.7.2/lib/ruby/gems/2.7.0/gems/activerecord-5.2.4.5/lib/active_record/relation/batches.rb:70:in `each' /Users/marc/.asdf/installs/ruby/2.7.2/lib/ruby/gems/2.7.0/gems/activerecord-5.2.4.5/lib/active_record/relation/batches.rb:70:in `block in find_each' /Users/marc/.asdf/installs/ruby/2.7.2/lib/ruby/gems/2.7.0/gems/activerecord-5.2.4.5/lib/active_record/relation/batches.rb:136:in `block in find_in_batches' /Users/marc/.asdf/installs/ruby/2.7.2/lib/ruby/gems/2.7.0/gems/activerecord-5.2.4.5/lib/active_record/relation/batches.rb:238:in `block in in_batches' /Users/marc/.asdf/installs/ruby/2.7.2/lib/ruby/gems/2.7.0/gems/activerecord-5.2.4.5/lib/active_record/relation/batches.rb:222:in `loop' /Users/marc/.asdf/installs/ruby/2.7.2/lib/ruby/gems/2.7.0/gems/activerecord-5.2.4.5/lib/active_record/relation/batches.rb:222:in `in_batches' /Users/marc/.asdf/installs/ruby/2.7.2/lib/ruby/gems/2.7.0/gems/activerecord-5.2.4.5/lib/active_record/relation/batches.rb:135:in `find_in_batches' /Users/marc/.asdf/installs/ruby/2.7.2/lib/ruby/gems/2.7.0/gems/activerecord-5.2.4.5/lib/active_record/relation/batches.rb:69:in `find_each' /Users/marc/.asdf/installs/ruby/2.7.2/lib/ruby/gems/2.7.0/gems/activerecord-5.2.4.5/lib/active_record/querying.rb:11:in `find_each' /Users/marc/code/decidim-apps/metadecidim/db/migrate/20210301101419_encrypt_authorization_metadatas.decidim.rb:6:in `up' /Users/marc/.asdf/installs/ruby/2.7.2/lib/ruby/gems/2.7.0/gems/activerecord-5.2.4.5/lib/active_record/migration.rb:817:in `exec_migration' /Users/marc/.asdf/installs/ruby/2.7.2/lib/ruby/gems/2.7.0/gems/activerecord-5.2.4.5/lib/active_record/migration.rb:798:in `block (2 levels) in migrate' /Users/marc/.asdf/installs/ruby/2.7.2/lib/ruby/2.7.0/benchmark.rb:293:in `measure' /Users/marc/.asdf/installs/ruby/2.7.2/lib/ruby/gems/2.7.0/gems/activerecord-5.2.4.5/lib/active_record/migration.rb:797:in `block in migrate' /Users/marc/.asdf/installs/ruby/2.7.2/lib/ruby/gems/2.7.0/gems/activerecord-5.2.4.5/lib/active_record/connection_adapters/abstract/connection_pool.rb:416:in `with_connection' /Users/marc/.asdf/installs/ruby/2.7.2/lib/ruby/gems/2.7.0/gems/activerecord-5.2.4.5/lib/active_record/migration.rb:796:in `migrate' /Users/marc/.asdf/installs/ruby/2.7.2/lib/ruby/gems/2.7.0/gems/activerecord-5.2.4.5/lib/active_record/migration.rb:977:in `migrate' /Users/marc/.asdf/installs/ruby/2.7.2/lib/ruby/gems/2.7.0/gems/activerecord-5.2.4.5/lib/active_record/migration.rb:1292:in `block in execute_migration_in_transaction' /Users/marc/.asdf/installs/ruby/2.7.2/lib/ruby/gems/2.7.0/gems/activerecord-5.2.4.5/lib/active_record/migration.rb:1343:in `block in ddl_transaction' ... ```

I've tried both using the development secret key base for the app and the one set in production, and both attempts fail with this error.

The errored line is this one:

verification_metadata: auth.verification_metadata

It seems to be failing for postal_code verifications/authorizations: only those that have a value in the verification_metadata fail.

To Reproduce
Steps to reproduce the behavior:

  1. Download the production DB from an application.
  2. Update to Decidim v0.24.0.rc1
  3. Run migrations
  4. See the migration fail

Expected behavior
Migration should pass correctly.

Extra data (please complete the following information):

  • Decidim Version: v0.24.0.rc1
  • Decidim installation: Metadecidim

Additional context
None

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