-
-
Notifications
You must be signed in to change notification settings - Fork 354
Closed
Labels
bugIndicates an unexpected problem or unintended behaviorIndicates an unexpected problem or unintended behavior
Description
Issue Classification
- Feature request
- [ x] Bug report
Bug Report
Software versions
- OS: Alpine Linux 3.11 (Docker image)
- Consumer Pact library: @pact-foundation/pact 9.11.0, @pact-foundation/pact-node 10.9.4
- Provider Pact library: @pact-foundation/pact 9.14.0
- Node Version: 12.19.0
Issue Checklist
Confirm the following:
- [x ] I have upgraded to the latest
- I have created a reproducable git repository (see below) to illuminate the problem
- [x ] I have the read the FAQs in the Readme
- [x ] I have triple checked, that there are no unhandled promises in my code
- [x ] I have set my log level to debug and attached a log file showing the complete request/response cycle
Expected behaviour
Verify 52 interactions and publish the results
Actual behaviour
Verify 52 interactions and receive an error at the publish step
Steps to reproduce
Unfortunately, my source code is closed source.
In our CI 'Contract Test' step, our provider verifies two consumer contracts, one of ~7 interactions, and then one of ~50 interactions. The smaller one is verified and published successfully, then the larger one is verified and the fails on publication.
Are there any known capability limits to the publish step as this time?
Relevant log files
For the latest version of @pact-foundation/pact:
15:47:03 | DEBUG: Setting up provider state 'redacted' using provider state set up URL http://localhost:42437/_pactSetup
15:47:03 |
15:47:03 | I, [2021-01-19T20:47:02.311870 #41] INFO -- request: POST http://localhost:42437/_pactSetup
15:47:03 |
15:47:03 | D, [2021-01-19T20:47:02.311977 #41] DEBUG -- request: User-Agent: "Faraday v0.17.3"
15:47:03 | Content-Type: "application/json"
15:47:03 |
15:47:03 | I, [2021-01-19T20:47:02.655719 #41] INFO -- response: Status 200
15:47:03 |
15:47:03 | D, [2021-01-19T20:47:02.655825 #41] DEBUG -- response: x-powered-by: "Express"
15:47:03 | content-type: "text/plain; charset=utf-8"
15:47:03 | content-length: "2"
15:47:03 | etag: "W/\"2-nOO9QiTIwXgNtWtBJezz8kv3SLc\""
15:47:03 | date: "Tue, 19 Jan 2021 20:47:02 GMT"
15:47:03 | connection: "close"
15:47:03 |
15:47:03 | has status code 409
15:47:03 |
15:47:03 | has a matching body
15:47:03 |
15:47:03 | includes headers
15:47:03 |
15:47:03 | "Content-Type" which equals "application/json; charset=utf-8"
15:47:03 |
15:47:03 |
15:47:03 | 52 interactions, 0 failures
15:47:03 |
15:47:03 | /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/pact-1.51.1/lib/pact/provider/verification_results/publish.rb:103:in `publish_verification_results': Error returned from verification results publication 500 (Pact::Provider::VerificationResults::PublicationError)
15:47:03 | from /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/pact-1.51.1/lib/pact/provider/verification_results/publish.rb:35:in `call'
15:47:03 |
15:47:03 | from /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/pact-1.51.1/lib/pact/provider/verification_results/publish.rb:21:in `call'
15:47:03 | from /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/pact-1.51.1/lib/pact/provider/verification_results/publish_all.rb:22:in `block in call'
15:47:03 | from /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/pact-1.51.1/lib/pact/provider/verification_results/publish_all.rb:19:in `collect'
15:47:03 | from /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/pact-1.51.1/lib/pact/provider/verification_results/publish_all.rb:19:in `call'
15:47:03 | from /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/pact-1.51.1/lib/pact/provider/verification_results/publish_all.rb:10:in `call'
15:47:03 | from /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/pact-1.51.1/lib/pact/provider/rspec/pact_broker_formatter.rb:28:in `close'
15:47:03 | from /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.9.2/lib/rspec/core/reporter.rb:209:in `block in notify'
15:47:03 | from /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.9.2/lib/rspec/core/reporter.rb:208:in `each'
15:47:03 | from /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.9.2/lib/rspec/core/reporter.rb:208:in `notify'
15:47:03 | from /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.9.2/lib/rspec/core/reporter.rb:243:in `close'
15:47:03 | from /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.9.2/lib/rspec/core/reporter.rb:196:in `close_after'
15:47:03 | from /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.9.2/lib/rspec/core/reporter.rb:174:in `finish'
15:47:03 | from /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.9.2/lib/rspec/core/reporter.rb:76:in `report'
15:47:03 | from /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:115:in `run_specs'
15:47:03 | from /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:89:in `run'
15:47:03 | from /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/rspec-core-3.9.2/lib/rspec/core/runner.rb:71:in `run'
15:47:03 | from /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/pact-1.51.1/lib/pact/provider/pact_spec_runner.rb:88:in `run_specs'
15:47:03 | from /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/pact-1.51.1/lib/pact/provider/pact_spec_runner.rb:34:in `run'
15:47:03 | from /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/pact-1.51.1/lib/pact/cli/run_pact_verification.rb:69:in `run_with_pact_uri_object'
15:47:03 | from /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/pact-1.51.1/lib/pact/cli/run_pact_verification.rb:50:in `run_specs'
15:47:03 | from /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/pact-1.51.1/lib/pact/cli/run_pact_verification.rb:21:in `call'
15:47:03 | from /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/pact-1.51.1/lib/pact/cli/run_pact_verification.rb:13:in `call'
15:47:03 | from /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.32.1/lib/pact/provider_verifier/app.rb:171:in `verify_pact'
15:47:03 | from /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.32.1/lib/pact/provider_verifier/app.rb:43:in `block in call'
15:47:03 | from /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.32.1/lib/pact/provider_verifier/app.rb:42:in `collect'
15:47:03 | from /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.32.1/lib/pact/provider_verifier/app.rb:42:in `call'
15:47:03 | from /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.32.1/lib/pact/provider_verifier/app.rb:34:in `call'
15:47:03 | from /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.32.1/lib/pact/provider_verifier/cli/verify.rb:47:in `verify'
15:47:03 | from /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/thor-0.20.3/lib/thor/command.rb:27:in `run'
15:47:03 | from /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/thor-0.20.3/lib/thor/invocation.rb:126:in `invoke_command'
15:47:03 | from /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/thor-0.20.3/lib/thor.rb:387:in `dispatch'
15:47:03 | from /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/thor-0.20.3/lib/thor/base.rb:466:in `start'
15:47:03 | from /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/vendor/ruby/2.2.0/gems/pact-provider-verifier-1.32.1/lib/pact/provider_verifier/cli/custom_thor.rb:17:in `start'
15:47:03 | from /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.88.3/pact/lib/app/pact-provider-verifier.rb:33:in `<main>'
15:47:03 |
15:47:03 | INFO: Tagging version 1.1.0-lc3-6118-investigate-pact-broker-errors.116+8b3ece4 of client-compatibility as "lc3-6118-investigate-pact-broker-errors"
15:47:03 | ]
Earlier, using @pact-foundation/pact 9.11.0, I got a little better output with 'trace' logging:
52 interactions, 0 failures
Error making request - Net::ReadTimeout Net::ReadTimeout , attempt 1 of 3
Error making request - Net::ReadTimeout Net::ReadTimeout , attempt 2 of 3
Error making request - EOFError end of file reached , attempt 3 of 3
/usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.85.0/pact/lib/vendor/ruby/2.2.0/gems/pact-1.49.3/lib/pact/provider/verification_results/publish.rb:96:in `rescue in publish_verification_results': Failed to publish verification results due to: EOFError end of file reached /usr/src/app/node_modules/@pact-foundation/pact-node/standalone/linux-x64-1.85.0/pact/lib/ruby/lib/ruby/2.2.0/openssl/buffering.rb:182:in `sysread_nonblock' (Pact::Provider::VerificationResults::PublicationError)
Metadata
Metadata
Assignees
Labels
bugIndicates an unexpected problem or unintended behaviorIndicates an unexpected problem or unintended behavior