moneta-rb / moneta

a unified interface to key/value stores
https://github.com/moneta-rb/moneta
MIT License
1.11k stars 87 forks source link

postgresql test failures #243

Closed jcharaoui closed 1 year ago

jcharaoui commented 1 year ago

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: # 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 ' # /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 ' # /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: # 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 ' # /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 ' # /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: # 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 ' # /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 ' # /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: # 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 ' # /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 ' # /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: # 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 ' # /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 ' # /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: # 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 ' # /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 ' # /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: # 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 ' # /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 ' # /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: # 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 ' # /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 ' # /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:

Let me know if you need further details.

asppsa commented 1 year ago

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