Description of problem: Recent updates of PG results in test suite failures of rubygem-pg: ~~~ Failures: 1) PG::Connection server ping returns correct response when ping connection arguments are wrong Failure/Error: expect( ping ).to eq( PG::PQPING_NO_ATTEMPT ) expected: 3 got: 2 (compared using ==) # ./spec/pg/connection_spec.rb:1104:in `block (3 levels) in <top (required)>' # ./spec/helpers.rb:31:in `block in included' Finished in 54.74 seconds (files took 0.50386 seconds to load) 375 examples, 1 failure, 1 pending ~~~ This affects F29+: https://apps.fedoraproject.org/koschei/package/rubygem-pg?collection=f29 https://apps.fedoraproject.org/koschei/package/rubygem-pg?collection=f30 Version-Release number of selected component (if applicable): How reproducible: Steps to Reproduce: 1. 2. 3. Actual results: rubygem-pg test suite fails. Expected results: rubygem-pg test suite passes. Additional info: This the calls-stack: https://bitbucket.org/ged/ruby-pg/annotate/0fd7bb2494e8cc11c71c05f8f12deafa6b41fb37/spec/pg/connection_spec.rb?at=default&fileviewer=file-view-default#connection_spec.rb-1158 https://bitbucket.org/ged/ruby-pg/src/0fd7bb2494e8cc11c71c05f8f12deafa6b41fb37/ext/pg_connection.c?at=default&fileviewer=file-view-default#pg_connection.c-369 https://bitbucket.org/ged/ruby-pg/src/0fd7bb2494e8cc11c71c05f8f12deafa6b41fb37/lib/pg/connection.rb?at=default&fileviewer=file-view-default#connection.rb-82 The string passed into ```PQping``` is " fallback_application_name='/usr/bin/rspec' host='localhost' port='localhost' dbname='test'" which looks reasonable, although there is space at the beginning. Not sure ...
[ pokes around... ] This is a behavioral change in PQping as a consequence of upstream commit 6953daf08e6b1ef333758f6cda54de228212f12e. The given string is in fact wrong, because 'localhost' is not a valid value for "port" - that has to be a port number. However, validation of both the host name and port number have been postponed to the connection phase as a consequence of the fact that they're now allowed to be lists. That means that instead of getting a "no attempt" result, you get a "no response" result; "no attempt" is only returned if initial parsing of the string fails. I don't think this is a bug exactly; it's a matter of the test exercising an unspecified corner case and expecting a particular error code rather than some other error code. If you want something that will provoke PQPING_NO_ATTEMPT reliably, I'd suggest using a connection string that's syntactically malformed or attempts to set an unrecognized parameter name.
Thx for looking into it. The test is intentionally testing the wrong parameters submitted: ~~~ it "returns correct response when ping connection arguments are wrong" do ping = described_class.ping('localhost', 'localhost', nil, nil, :test, nil, nil) expect( ping ).to eq( PG::PQPING_NO_ATTEMPT ) end ~~~ If the PG change is intentional, then the rubygem-pg should probably change the test case somehow. Just FYI, this is the commit which introduced the test case: https://bitbucket.org/ged/ruby-pg/commits/fec045ed060d07dfd42cb7b1638d99eb973428af It does not look they would test any specific user issue.
Lets see what rubygem-pg upstream thinks about it: https://bitbucket.org/ged/ruby-pg/issues/287/pg-connection-server-ping-returns-correct
It was resolved by rubygem-pg upstream.
rubygem-pg-1.0.0-3.fc29 has been submitted as an update to Fedora 29. https://bodhi.fedoraproject.org/updates/FEDORA-2019-ee30eb9dae
rubygem-pg-1.0.0-3.fc28 has been submitted as an update to Fedora 28. https://bodhi.fedoraproject.org/updates/FEDORA-2019-d344ca380e
rubygem-pg-1.0.0-3.fc29 has been pushed to the Fedora 29 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2019-ee30eb9dae
rubygem-pg-1.0.0-3.fc28 has been pushed to the Fedora 28 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2019-d344ca380e
rubygem-pg-1.0.0-3.fc28 has been pushed to the Fedora 28 stable repository. If problems still persist, please make note of it in this bug report.
rubygem-pg-1.0.0-3.fc29 has been pushed to the Fedora 29 stable repository. If problems still persist, please make note of it in this bug report.