moneta-rb/moneta

postgresql test failures

Closed this issue · 1 comments

While working to update the package in Debian, I'm encountering some test failures with postgresql:

rspec './spec/moneta/adapters/sequel/adapter_sequel_spec.rb[1:5:1:1:9:11:1]' # :Sequel adapter with Postgres HStore backend without backend optimizations with each_key server store feature #values_at retrieves stored values
rspec './spec/moneta/adapters/sequel/adapter_sequel_spec.rb[1:5:1:1:9:11:2]' # :Sequel adapter with Postgres HStore backend without backend optimizations with each_key server store feature #values_at returns nil in place of missing values
rspec './spec/moneta/adapters/sequel/adapter_sequel_spec.rb[1:5:1:1:9:12:1]' # :Sequel adapter with Postgres HStore backend without backend optimizations with each_key server store feature #fetch_values retrieves stored values
rspec './spec/moneta/adapters/sequel/adapter_sequel_spec.rb[1:5:1:1:9:12:2]' # :Sequel adapter with Postgres HStore backend without backend optimizations with each_key server store feature #fetch_values returns nil in place of missing values
rspec './spec/moneta/adapters/sequel/adapter_sequel_spec.rb[1:5:1:2:9:11:1]' # :Sequel adapter with Postgres HStore backend without backend optimizations without each_key server store feature #values_at retrieves stored values
rspec './spec/moneta/adapters/sequel/adapter_sequel_spec.rb[1:5:1:2:9:11:2]' # :Sequel adapter with Postgres HStore backend without backend optimizations without each_key server store feature #values_at returns nil in place of missing values
rspec './spec/moneta/adapters/sequel/adapter_sequel_spec.rb[1:5:1:2:9:12:1]' # :Sequel adapter with Postgres HStore backend without backend optimizations without each_key server store feature #fetch_values retrieves stored values
rspec './spec/moneta/adapters/sequel/adapter_sequel_spec.rb[1:5:1:2:9:12:2]' # :Sequel adapter with Postgres HStore backend without backend optimizations without each_key server store feature #fetch_values returns nil in place of missing values
+ PG_MYTMPDIR=/dev/shm/moneta20230129-2818913-pn88ry
+ PGSQL_PORT=2343
+ pg_config --bindir
+ BINDIR=/usr/lib/postgresql/15/bin
+ export LC_ALL=C
+ export LANGUAGE=C
+ /usr/lib/postgresql/15/bin/initdb -D /dev/shm/moneta20230129-2818913-pn88ry
The files belonging to this database system will be owned by user "jerome".
This user must also own the server process.

The database cluster will be initialized with locale "C".
The default database encoding has accordingly been set to "SQL_ASCII".
The default text search configuration will be set to "english".

Data page checksums are disabled.

creating directory /dev/shm/moneta20230129-2818913-pn88ry ... ok
creating subdirectories ... ok
selecting dynamic shared memory implementation ... posix
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default time zone ... Etc/UTC
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok

initdb: warning: enabling "trust" authentication for local connections
initdb: hint: You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb.

Success. You can now start the database server using:

    /usr/lib/postgresql/15/bin/pg_ctl -D /dev/shm/moneta20230129-2818913-pn88ry -l logfile start

+ /usr/lib/postgresql/15/bin/pg_ctl -w -D /dev/shm/moneta20230129-2818913-pn88ry -o -k /dev/shm/moneta20230129-2818913-pn88ry -p 2343 -c max_connections=500 start
+ attempts=0
+ [ -e /dev/shm/moneta20230129-2818913-pn88ry/postmaster.pid ]
+ export PGHOST=/dev/shm/moneta20230129-2818913-pn88ry
+ export PGPORT=2343
+ createuser --superuser moneta
+ createdb -O moneta moneta1
+ createdb -O moneta moneta2
+ psql -c create extension hstore; moneta1
CREATE EXTENSION
Run options:
  include {:postgres=>true}
  exclude {:unsupported=>true, :broken=>true}
............................................................................................................................................................................................................................................................................................................................................................................................................................................FFFF.......................................................................................FFFF..........................................................................................................................................................................................................................................................................................................................

Failures:

  1) :Sequel adapter with Postgres HStore backend without backend optimizations with each_key server store feature #values_at retrieves stored values
     Failure/Error: expect(store.public_send(name, m.keys[1], m.keys[2], m.keys[0])).to eq [m.values[1], m.values[2], m.values[0]]

       0 successful tests, failed on:
       #<struct keys=["XnoWL/mxevkqs/wWQRdXLu", "Gb7FXgYVi3", "mCgcdqa/GncbqjB/cOeZbpjTip"], values=["hhhcq8", "yOSEPD", "RDQNdh"]>


       expected: ["yOSEPD", "RDQNdh", "hhhcq8"]
            got: []

       (compared using ==)
     Shared Example Group: :values_at called from ./spec/features/store.rb:110
     Shared Example Group: :store called from ./spec/helper.rb:298
     Shared Example Group: :each_key_server called from ./spec/moneta/adapters/sequel/helper.rb:81
     Shared Example Group: :adapter_sequel called from ./spec/moneta/adapters/sequel/adapter_sequel_spec.rb:46
     # ./spec/features/store.rb:94:in `block (4 levels) in <top (required)>'
     # /usr/share/rubygems-integration/all/gems/rantly-2.0.0/lib/rantly/property.rb:33:in `block in check'
     # /usr/share/rubygems-integration/all/gems/rantly-2.0.0/lib/rantly/generator.rb:81:in `generate'
     # /usr/share/rubygems-integration/all/gems/rantly-2.0.0/lib/rantly/property.rb:31:in `check'
     # ./spec/features/store.rb:90:in `block (3 levels) in <top (required)>'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup'

  2) :Sequel adapter with Postgres HStore backend without backend optimizations with each_key server store feature #values_at returns nil in place of missing values
     Failure/Error: expect(store.public_send(name, m.keys[1], m.keys[2], m.keys[0])).to eq [m.values[1], nil, m.values[0]]

       0 successful tests, failed on:
       #<struct keys=["TTMRDQpgzE", "uIfydIU/Vnofif", "HHOEEzs/pZzRulQTmW"], values=["dh6t4T", "REKKeT"]>


       expected: ["REKKeT", nil, "dh6t4T"]
            got: []

       (compared using ==)

       Diff:
       @@ -1 +1 @@
       -["REKKeT", nil, "dh6t4T"]
       +[]
     Shared Example Group: :values_at called from ./spec/features/store.rb:110
     Shared Example Group: :store called from ./spec/helper.rb:298
     Shared Example Group: :each_key_server called from ./spec/moneta/adapters/sequel/helper.rb:81
     Shared Example Group: :adapter_sequel called from ./spec/moneta/adapters/sequel/adapter_sequel_spec.rb:46
     # ./spec/features/store.rb:103:in `block (4 levels) in <top (required)>'
     # /usr/share/rubygems-integration/all/gems/rantly-2.0.0/lib/rantly/property.rb:33:in `block in check'
     # /usr/share/rubygems-integration/all/gems/rantly-2.0.0/lib/rantly/generator.rb:81:in `generate'
     # /usr/share/rubygems-integration/all/gems/rantly-2.0.0/lib/rantly/property.rb:31:in `check'
     # ./spec/features/store.rb:100:in `block (3 levels) in <top (required)>'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup'

    3) :Sequel adapter with Postgres HStore backend without backend optimizations with each_key server store feature #fetch_values retrieves stored values
     Failure/Error: expect(store.public_send(name, m.keys[1], m.keys[2], m.keys[0])).to eq [m.values[1], m.values[2], m.values[0]]

       0 successful tests, failed on:
       #<struct keys=["hkhBb", "RVCkf", "ARryLNV/eUQrYpk"], values=["e6xFcC", "XgX28M", nil]>


       expected: ["XgX28M", nil, "e6xFcC"]
            got: []

       (compared using ==)

       Diff:
       @@ -1 +1 @@
       -["XgX28M", nil, "e6xFcC"]
       +[]
     Shared Example Group: :values_at called from ./spec/features/store.rb:114
     Shared Example Group: :store called from ./spec/helper.rb:298
     Shared Example Group: :each_key_server called from ./spec/moneta/adapters/sequel/helper.rb:81
     Shared Example Group: :adapter_sequel called from ./spec/moneta/adapters/sequel/adapter_sequel_spec.rb:46
     # ./spec/features/store.rb:94:in `block (4 levels) in <top (required)>'
     # /usr/share/rubygems-integration/all/gems/rantly-2.0.0/lib/rantly/property.rb:33:in `block in check'
     # /usr/share/rubygems-integration/all/gems/rantly-2.0.0/lib/rantly/generator.rb:81:in `generate'
     # /usr/share/rubygems-integration/all/gems/rantly-2.0.0/lib/rantly/property.rb:31:in `check'
     # ./spec/features/store.rb:90:in `block (3 levels) in <top (required)>'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup'

  4) :Sequel adapter with Postgres HStore backend without backend optimizations with each_key server store feature #fetch_values returns nil in place of missing values
     Failure/Error: expect(store.public_send(name, m.keys[1], m.keys[2], m.keys[0])).to eq [m.values[1], nil, m.values[0]]

       0 successful tests, failed on:
       #<struct keys=["h79tec", "Ub4Vb8", "LQNOe/GRqYRSJ/ywPIkhoA"], values=[nil, "0hTvED"]>


       expected: ["0hTvED", nil, nil]
            got: []

       (compared using ==)

       Diff:
       @@ -1 +1 @@
       -["0hTvED", nil, nil]
       +[]
     Shared Example Group: :values_at called from ./spec/features/store.rb:114
     Shared Example Group: :store called from ./spec/helper.rb:298
     Shared Example Group: :each_key_server called from ./spec/moneta/adapters/sequel/helper.rb:81
     Shared Example Group: :adapter_sequel called from ./spec/moneta/adapters/sequel/adapter_sequel_spec.rb:46
     # ./spec/features/store.rb:103:in `block (4 levels) in <top (required)>'
     # /usr/share/rubygems-integration/all/gems/rantly-2.0.0/lib/rantly/property.rb:33:in `block in check'
     # /usr/share/rubygems-integration/all/gems/rantly-2.0.0/lib/rantly/generator.rb:81:in `generate'
     # /usr/share/rubygems-integration/all/gems/rantly-2.0.0/lib/rantly/property.rb:31:in `check'
     # ./spec/features/store.rb:100:in `block (3 levels) in <top (required)>'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup'

  5) :Sequel adapter with Postgres HStore backend without backend optimizations without each_key server store feature #values_at retrieves stored values
     Failure/Error: expect(store.public_send(name, m.keys[1], m.keys[2], m.keys[0])).to eq [m.values[1], m.values[2], m.values[0]]

       0 successful tests, failed on:
       #<struct keys=["lyoxvfCvVS/LmCDoo", "wkqUlr", "xaLaACnw/kPfozF"], values=["8NTB9s", "lEHLuY", "TLvaA7"]>


       expected: ["lEHLuY", "TLvaA7", "8NTB9s"]
            got: []

       (compared using ==)
     Shared Example Group: :values_at called from ./spec/features/store.rb:110
     Shared Example Group: :store called from ./spec/helper.rb:298
     Shared Example Group: :each_key_server called from ./spec/moneta/adapters/sequel/helper.rb:81
     Shared Example Group: :adapter_sequel called from ./spec/moneta/adapters/sequel/adapter_sequel_spec.rb:46
     # ./spec/features/store.rb:94:in `block (4 levels) in <top (required)>'
     # /usr/share/rubygems-integration/all/gems/rantly-2.0.0/lib/rantly/property.rb:33:in `block in check'
     # /usr/share/rubygems-integration/all/gems/rantly-2.0.0/lib/rantly/generator.rb:81:in `generate'
     # /usr/share/rubygems-integration/all/gems/rantly-2.0.0/lib/rantly/property.rb:31:in `check'
     # ./spec/features/store.rb:90:in `block (3 levels) in <top (required)>'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup'

  6) :Sequel adapter with Postgres HStore backend without backend optimizations without each_key server store feature #values_at returns nil in place of missing values
     Failure/Error: expect(store.public_send(name, m.keys[1], m.keys[2], m.keys[0])).to eq [m.values[1], nil, m.values[0]]

       0 successful tests, failed on:
       #<struct keys=["oPlpsjB/bnRFTlaAn/cFlMOqM", "BdpwWPPg/gnsdpT", "yxxnC"], values=["bi5Lvv", "mKbVxu"]>


       expected: ["mKbVxu", nil, "bi5Lvv"]
            got: []

       (compared using ==)

       Diff:
       @@ -1 +1 @@
       -["mKbVxu", nil, "bi5Lvv"]
       +[]
     Shared Example Group: :values_at called from ./spec/features/store.rb:110
     Shared Example Group: :store called from ./spec/helper.rb:298
     Shared Example Group: :each_key_server called from ./spec/moneta/adapters/sequel/helper.rb:81
     Shared Example Group: :adapter_sequel called from ./spec/moneta/adapters/sequel/adapter_sequel_spec.rb:46
     # ./spec/features/store.rb:103:in `block (4 levels) in <top (required)>'
     # /usr/share/rubygems-integration/all/gems/rantly-2.0.0/lib/rantly/property.rb:33:in `block in check'
     # /usr/share/rubygems-integration/all/gems/rantly-2.0.0/lib/rantly/generator.rb:81:in `generate'
     # /usr/share/rubygems-integration/all/gems/rantly-2.0.0/lib/rantly/property.rb:31:in `check'
     # ./spec/features/store.rb:100:in `block (3 levels) in <top (required)>'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup'
  7) :Sequel adapter with Postgres HStore backend without backend optimizations without each_key server store feature #fetch_values retrieves stored values
     Failure/Error: expect(store.public_send(name, m.keys[1], m.keys[2], m.keys[0])).to eq [m.values[1], m.values[2], m.values[0]]

       0 successful tests, failed on:
       #<struct keys=["eQILAM7uq", "V1NuhZEH", "oifFw"], values=["HaMshD", "A7rHfJ", nil]>


       expected: ["A7rHfJ", nil, "HaMshD"]
            got: []

       (compared using ==)

       Diff:
       @@ -1 +1 @@
       -["A7rHfJ", nil, "HaMshD"]
       +[]
     Shared Example Group: :values_at called from ./spec/features/store.rb:114
     Shared Example Group: :store called from ./spec/helper.rb:298
     Shared Example Group: :each_key_server called from ./spec/moneta/adapters/sequel/helper.rb:81
     Shared Example Group: :adapter_sequel called from ./spec/moneta/adapters/sequel/adapter_sequel_spec.rb:46
     # ./spec/features/store.rb:94:in `block (4 levels) in <top (required)>'
     # /usr/share/rubygems-integration/all/gems/rantly-2.0.0/lib/rantly/property.rb:33:in `block in check'
     # /usr/share/rubygems-integration/all/gems/rantly-2.0.0/lib/rantly/generator.rb:81:in `generate'
     # /usr/share/rubygems-integration/all/gems/rantly-2.0.0/lib/rantly/property.rb:31:in `check'
     # ./spec/features/store.rb:90:in `block (3 levels) in <top (required)>'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup'

  8) :Sequel adapter with Postgres HStore backend without backend optimizations without each_key server store feature #fetch_values returns nil in place of missing values
     Failure/Error: expect(store.public_send(name, m.keys[1], m.keys[2], m.keys[0])).to eq [m.values[1], nil, m.values[0]]

       0 successful tests, failed on:
       #<struct keys=["jS5AMKyNA", "yIFeBtWsRw", "kDewPaLfNN/ChXHSw/cIvkd"], values=["1zHCFJ", nil]>


       expected: [nil, nil, "1zHCFJ"]
            got: []

       (compared using ==)

       Diff:
       @@ -1 +1 @@
       -[nil, nil, "1zHCFJ"]
       +[]
     Shared Example Group: :values_at called from ./spec/features/store.rb:114
     Shared Example Group: :store called from ./spec/helper.rb:298
     Shared Example Group: :each_key_server called from ./spec/moneta/adapters/sequel/helper.rb:81
     Shared Example Group: :adapter_sequel called from ./spec/moneta/adapters/sequel/adapter_sequel_spec.rb:46
     # ./spec/features/store.rb:103:in `block (4 levels) in <top (required)>'
     # /usr/share/rubygems-integration/all/gems/rantly-2.0.0/lib/rantly/property.rb:33:in `block in check'
     # /usr/share/rubygems-integration/all/gems/rantly-2.0.0/lib/rantly/generator.rb:81:in `generate'
     # /usr/share/rubygems-integration/all/gems/rantly-2.0.0/lib/rantly/property.rb:31:in `check'
     # ./spec/features/store.rb:100:in `block (3 levels) in <top (required)>'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:124:in `block in run'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `loop'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:110:in `run'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec_ext/rspec_ext.rb:12:in `run_with_retry'
     # /usr/share/rubygems-integration/all/gems/rspec-retry-0.6.2/lib/rspec/retry.rb:37:in `block (2 levels) in setup'

Finished in 1 minute 57.63 seconds (files took 3.22 seconds to load)
837 examples, 8 failures

Failed examples:

rspec './spec/moneta/adapters/sequel/adapter_sequel_spec.rb[1:5:1:1:9:11:1]' # :Sequel adapter with Postgres HStore backend without backend optimizations with each_key server store feature #values_at retrieves stored values
rspec './spec/moneta/adapters/sequel/adapter_sequel_spec.rb[1:5:1:1:9:11:2]' # :Sequel adapter with Postgres HStore backend without backend optimizations with each_key server store feature #values_at returns nil in place of missing values
rspec './spec/moneta/adapters/sequel/adapter_sequel_spec.rb[1:5:1:1:9:12:1]' # :Sequel adapter with Postgres HStore backend without backend optimizations with each_key server store feature #fetch_values retrieves stored values
rspec './spec/moneta/adapters/sequel/adapter_sequel_spec.rb[1:5:1:1:9:12:2]' # :Sequel adapter with Postgres HStore backend without backend optimizations with each_key server store feature #fetch_values returns nil in place of missing values
rspec './spec/moneta/adapters/sequel/adapter_sequel_spec.rb[1:5:1:2:9:11:1]' # :Sequel adapter with Postgres HStore backend without backend optimizations without each_key server store feature #values_at retrieves stored values
rspec './spec/moneta/adapters/sequel/adapter_sequel_spec.rb[1:5:1:2:9:11:2]' # :Sequel adapter with Postgres HStore backend without backend optimizations without each_key server store feature #values_at returns nil in place of missing values
rspec './spec/moneta/adapters/sequel/adapter_sequel_spec.rb[1:5:1:2:9:12:1]' # :Sequel adapter with Postgres HStore backend without backend optimizations without each_key server store feature #fetch_values retrieves stored values
rspec './spec/moneta/adapters/sequel/adapter_sequel_spec.rb[1:5:1:2:9:12:2]' # :Sequel adapter with Postgres HStore backend without backend optimizations without each_key server store feature #fetch_values returns nil in place of missing values

The test is running with:

  • ruby 3.1
  • ruby-sequel 5.63.0
  • ruby-pg 1.4.5
  • postgresql 15.1
  • moneta 1.5.2

Let me know if you need further details.

Thanks for the report - sorry it took a while to make a fix.