Giter VIP home page Giter VIP logo

publishing-e2e-tests's Introduction

GOV.UK Publishing End-to-end Tests

The Publishing End-to-end tests have been retired following RFC 128 (Continuous Deployment)

A suite of end-to-end tests for publisher user journeys. The tests are written in RSpec / Capybara and mimic the behaviour of content editors in a web browser, using headless Chrome.

Technical documentation

To see which apps are tested check the contents of the spec directory.

To view the details of all the apps involved check docker-compose.yml.

Before running the tests

If this is your first time running the E2E project make sure you have installed Docker and run:

$ bundle install

We recommend that you configure Docker to use at least 4 CPUs with 6 GB of memory, otherwise you may find the apps struggle to run well enough to pass the tests.

If it has been some time since you last worked on the E2E project it is recommended to run:

$ make clean

This will remove all your local apps (in ./apps/), clone them again and check them out to the deployed-to-production branch (in case one of the apps is on an old branch).

Running the test suite

Build and run the test suite with:

$ make -j4

Running a single test

Running make executes the following targets in order, which you can choose to run separately to speed up development: clone, pull, build, start, test and stop.

For example, to run only the tests for the specialist publisher, you need only do:

$ make -j4 clone
$ make pull build start test-specialist-publisher stop

Further documentation

Licence

MIT License

publishing-e2e-tests's People

Contributors

1pretz1 avatar adrianclay avatar barrucadu avatar benthorner avatar bilbof avatar brucebolt avatar carlosmartinez avatar cbaines avatar chrisbashton avatar davidgisbey avatar dependabot-support avatar dependabot[bot] avatar edwardkerry avatar elliotcm avatar floehopper avatar fredericfran-gds avatar issyl0 avatar karlbaker02 avatar kevindew avatar koetsier avatar michaelihejirika avatar murilodalri avatar nsabri1 avatar ollietreend avatar oscarwyatt avatar ryanmacg avatar sengi avatar sihugh avatar steventux avatar thomasleese avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

publishing-e2e-tests's Issues

Frequent errors where Travel Advice Publisher tries to communicate with Email Alert API

As we've resolved some of the frequent errors with Travel Advice Publisher another one has been revealed where it tries to communicate with Email Alert API.

We see errors like this:

    WorkerError: Sidekiq job failed in EmailAlertApiWorker.

    === Failed request details ===
    {"title"=>"Malta travel advice", "description"=>"Adipisci modi corrupti et quae. Fugiat earum tempore accusantium. Unde tenetur quaerat vel et tempora provident voluptatem. Laborum ut quas animi culpa asperiores similique quibusdam. 1509545483", "change_note"=>"Rerum optio quibusdam similique.", "subject"=>"Malta travel advice", "body"=>"      <div class=\"rss_item\" data-message-id=\"68e991a90e9a908d01845e87eaa5061de0fbc636\" style=\"margin-bottom: 2em;\">\n        <div class=\"rss_title\" style=\"font-size: 120%; margin: 0 0 0.3em; padding: 0;\">\n          <a href=\"http://www.dev.gov.uk/foreign-travel-advice/malta\" style=\"font-weight: bold; \">Malta travel advice</a>\n        </div>\n        <div class=\"rss_pub_date\" style=\"font-size: 90%; font-style: italic; color: #666666; margin: 0 0 0.3em; padding: 0;\">01-11-2017 14:11 PM GMT</div>\n        <div class=\"rss_description\" style=\"margin: 0 0 0.3em; padding: 0;\">Rerum optio quibusdam similique.</div>\n      </div>\n", "tags"=>{}, "links"=>{"countries"=>["0b04ef72-ed4f-427c-82fb-851004d9a4d9"]}, "document_type"=>"travel_advice", "email_document_supertype"=>"other", "government_document_supertype"=>"other", "content_id"=>"0b04ef72-ed4f-427c-82fb-851004d9a4d9", "public_updated_at"=>"2017-11-01T14:11:23+00:00", "publishing_app"=>"travel-advice-publisher", "base_path"=>"/foreign-travel-advice/malta"}

    === Error details ===
    getaddrinfo: Name or service not known

We should determine whether we need to create email-alert-api in e2e tests or whether we can disable this integration in TAP with an env var.

Intermittent failures for concurrent requests

We've seen some failing tests (3249, 3265) which fail with: can't add a new key into hash during iteration when the same view is rendered at the same time.

From docker log:

�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:34.799792226Z 172.18.0.6 - - [28/Dec/2017:13:14:34 UTC] "GET /manuals/e151d4e0-37af-4222-a884-2cba46e78a1e HTTP/1.1" 200 11526
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:34.817106101Z http://manuals-publisher.dev.gov.uk/manuals/new -> /manuals/e151d4e0-37af-4222-a884-2cba46e78a1e
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:34.817685298Z 172.18.0.6 - - [28/Dec/2017:13:14:34 UTC] "GET /manuals/6c19ce85-893d-4f86-a79d-cf92d3e7f95d HTTP/1.1" 200 11440
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:34.817723492Z http://manuals-publisher.dev.gov.uk/manuals/new -> /manuals/6c19ce85-893d-4f86-a79d-cf92d3e7f95d
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:35.348133557Z 172.18.0.6 - - [28/Dec/2017:13:14:34 UTC] "GET /manuals/e151d4e0-37af-4222-a884-2cba46e78a1e/sections/new HTTP/1.1" 200 18658
�[31;1mnginx-proxy_1                     |�[0m 2017-12-28T13:14:35.348278646Z �[0;33;1mnginx.1    | �[0mmanuals-publisher.dev.gov.uk 172.18.0.40 - - [28/Dec/2017:13:14:35 +0000] "GET /manuals/e151d4e0-37af-4222-a884-2cba46e78a1e/sections/new HTTP/1.1" 200 18658 "http://manuals-publisher.dev.gov.uk/manuals/e151d4e0-37af-4222-a884-2cba46e78a1e" "Mozilla/5.0 (Unknown; Linux x86_64) AppleWebKit/538.1 (KHTML, like Gecko) PhantomJS/2.1.1 Safari/538.1"
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:35.348719154Z http://manuals-publisher.dev.gov.uk/manuals/e151d4e0-37af-4222-a884-2cba46e78a1e -> /manuals/e151d4e0-37af-4222-a884-2cba46e78a1e/sections/new
�[31;1mnginx-proxy_1                     |�[0m 2017-12-28T13:14:35.733444263Z �[0;33;1mnginx.1    | �[0mmanuals-publisher.dev.gov.uk 172.18.0.40 - - [28/Dec/2017:13:14:35 +0000] "GET /manuals/6c19ce85-893d-4f86-a79d-cf92d3e7f95d/sections/new HTTP/1.1" 500 156009 "http://manuals-publisher.dev.gov.uk/manuals/6c19ce85-893d-4f86-a79d-cf92d3e7f95d" "Mozilla/5.0 (Unknown; Linux x86_64) AppleWebKit/538.1 (KHTML, like Gecko) PhantomJS/2.1.1 Safari/538.1"
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:35.734791046Z 172.18.0.6 - - [28/Dec/2017:13:14:34 UTC] "GET /manuals/6c19ce85-893d-4f86-a79d-cf92d3e7f95d/sections/new HTTP/1.1" 500 156009
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:35.734842476Z http://manuals-publisher.dev.gov.uk/manuals/6c19ce85-893d-4f86-a79d-cf92d3e7f95d -> /manuals/6c19ce85-893d-4f86-a79d-cf92d3e7f95d/sections/new
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.325900991Z Started GET "/manuals/e151d4e0-37af-4222-a884-2cba46e78a1e/sections/new" for 172.18.0.6 at 2017-12-28 13:14:34 +0000
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.325908650Z Processing by SectionsController#new as HTML
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.325915668Z   Parameters: {"manual_id"=>"e151d4e0-37af-4222-a884-2cba46e78a1e"}
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.325924545Z DEPRECATION WARNING: require_signin_permission! is deprecated and will be removed in a future version.  The signon application checks for signin permission during oauth and it is no longer optional. (called from block in make_lambda at /usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/callbacks.rb:413)
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.325933766Z Authenticating with mock_gds_sso strategy
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.325940390Z MONGODB | mongo:27017 | manuals-publisher.find | STARTED | {"find"=>"manuals_publisher_users", "filter"=>{}, "limit"=>-1, "sort"=>{"_id"=>1}}
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.325950212Z Started GET "/manuals/6c19ce85-893d-4f86-a79d-cf92d3e7f95d/sections/new" for 172.18.0.6 at 2017-12-28 13:14:34 +0000
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.325957590Z Processing by SectionsController#new as HTML
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.325964215Z   Parameters: {"manual_id"=>"6c19ce85-893d-4f86-a79d-cf92d3e7f95d"}
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.325974193Z DEPRECATION WARNING: require_signin_permission! is deprecated and will be removed in a future version.  The signon application checks for signin permission during oauth and it is no longer optional. (called from block in make_lambda at /usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/callbacks.rb:413)
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.325982743Z Authenticating with mock_gds_sso strategy
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.325996296Z MONGODB | mongo:27017 | manuals-publisher.find | STARTED | {"find"=>"manuals_publisher_users", "filter"=>{}, "limit"=>-1, "sort"=>{"_id"=>1}}
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326005880Z MONGODB | mongo:27017 | manuals-publisher.find | SUCCEEDED | 0.010720101000000001s
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326012648Z MONGODB | mongo:27017 | manuals-publisher.find | SUCCEEDED | 0.003625256s
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326028360Z MONGODB | mongo:27017 | manuals-publisher.find | STARTED | {"find"=>"manual_records", "filter"=>{"manual_id"=>"e151d4e0-37af-4222-a884-2cba46e78a1e"}, "limit"=>-1, "sort"=>{"_id"=>1}}
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326038955Z MONGODB | mongo:27017 | manuals-publisher.find | STARTED | {"find"=>"manual_records", "filter"=>{"manual_id"=>"6c19ce85-893d-4f86-a79d-cf92d3e7f95d"}, "limit"=>-1, "sort"=>{"_id"=>1}}
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326048623Z MONGODB | mongo:27017 | manuals-publisher.find | SUCCEEDED | 0.001196605s
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326055551Z MONGODB | mongo:27017 | manuals-publisher.find | SUCCEEDED | 0.00173128s
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326062109Z MONGODB | mongo:27017 | manuals-publisher.find | STARTED | {"find"=>"manual_record_editions", "filter"=>{"manual_record_id"=>BSON::ObjectId('5a44ee3ae59d4d0009347ba4')}, "limit"=>-1, "sort"=>{"version_number"=>-1}}
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326071927Z MONGODB | mongo:27017 | manuals-publisher.find | STARTED | {"find"=>"manual_record_editions", "filter"=>{"manual_record_id"=>BSON::ObjectId('5a44ee3ae59d4d0009347ba3')}, "limit"=>-1, "sort"=>{"version_number"=>-1}}
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326081442Z MONGODB | mongo:27017 | manuals-publisher.find | SUCCEEDED | 0.0010289309999999999s
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326088210Z MONGODB | mongo:27017 | manuals-publisher.find | STARTED | {"find"=>"manual_record_editions", "filter"=>{"manual_record_id"=>BSON::ObjectId('5a44ee3ae59d4d0009347ba3')}}
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326096419Z MONGODB | mongo:27017 | manuals-publisher.find | SUCCEEDED | 0.002680808s
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326103047Z MONGODB | mongo:27017 | manuals-publisher.find | STARTED | {"find"=>"manual_record_editions", "filter"=>{"manual_record_id"=>BSON::ObjectId('5a44ee3ae59d4d0009347ba4')}}
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326111283Z MONGODB | mongo:27017 | manuals-publisher.find | SUCCEEDED | 0.001585376s
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326118992Z MONGODB | mongo:27017 | manuals-publisher.find | SUCCEEDED | 0.0022324759999999997s
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326126214Z   Rendering sections/new.html.erb within layouts/application
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326132925Z   Rendering sections/new.html.erb within layouts/application
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326139810Z   Rendered shared/_form_errors.html.erb (0.8ms)
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326146414Z   Rendered shared/_form_errors.html.erb (0.1ms)
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326153142Z   Rendered shared/_govspeak_help.html.erb (1.9ms)
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326159670Z   Rendered shared/_govspeak_help.html.erb (0.1ms)
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326166197Z   Rendered sections/_form.html.erb (35.6ms)
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326172702Z   Rendered sections/_form.html.erb (29.4ms)
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326179286Z   Rendered sections/new.html.erb within layouts/application (39.7ms)
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326185864Z   Rendered sections/new.html.erb within layouts/application (37.8ms)
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326192398Z Completed 500 Internal Server Error in 196ms
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326198825Z 
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326209908Z 
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326216640Z   Rendered shared/_breadcrumbs.html.erb (0.9ms)
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326223417Z   Rendering /usr/local/bundle/gems/govuk_admin_template-6.4.0views/layouts/govuk_admin_template.html.erb
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326230316Z Sending event d633f16b26e14241941cbef858ed7e02 to Sentry
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326236887Z   Rendered /usr/local/bundle/gems/govuk_admin_template-6.4.0views/layouts/govuk_admin_template.html.erb (97.7ms)
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326243725Z Completed 200 OK in 420ms (Views: 347.1ms)
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326250225Z 
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326256430Z 
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326262653Z Raven HTTP Transport connecting to http://error-handler.dev.gov.uk
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326269167Z   
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326275455Z ActionView::Template::Error (can't add a new key into hash during iteration):
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326282230Z     1: <% content_for :head do %>
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326289214Z     2:   <%= stylesheet_link_tag "application", :media => "all" %>
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326297100Z     3:   <%= javascript_include_tag 'application' %>
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326304178Z     4:   <%= csrf_meta_tags %>
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326310933Z     5: <% end %>
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326317754Z   
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326324138Z app/views/layouts/application.html.erb:2:in `block in _app_views_layouts_application_html_erb___3810703486753751096_70281889035320'
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326331400Z app/views/layouts/application.html.erb:1:in `_app_views_layouts_application_html_erb___3810703486753751096_70281889035320'
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326338609Z app/controllers/sections_controller.rb:25:in `new'
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326345493Z Started POST "/manuals/e151d4e0-37af-4222-a884-2cba46e78a1e/sections" for 172.18.0.6 at 2017-12-28 13:14:35 +0000
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326360471Z Processing by SectionsController#create as HTML
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326369288Z   Parameters: {"utf8"=>"✓", "authenticity_token"=>"pi52WsmYDCsC7tIXMZ4KVn/iMvyBwW98qLiaLJ44O7tRXNhGquG5V9DrL0nJFVDnZior6Vwiv/9lfqnSOY9Osw==", "section"=>{"title"=>"The House of Mirth 1514466874", "summary"=>"Labore consectetur non veniam sed quaerat vero.", "body"=>"Et illum quibusdam. Dolores et et odio nesciunt. Nihil voluptatem necessitatibus non deleniti commodi.", "change_note"=>"New section added."}, "draft"=>"", "manual_id"=>"e151d4e0-37af-4222-a884-2cba46e78a1e"}
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326384836Z DEPRECATION WARNING: require_signin_permission! is deprecated and will be removed in a future version.  The signon application checks for signin permission during oauth and it is no longer optional. (called from block in make_lambda at /usr/local/bundle/gems/activesupport-5.1.4/lib/active_support/callbacks.rb:413)
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326392976Z Authenticating with mock_gds_sso strategy
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326399683Z MONGODB | mongo:27017 | manuals-publisher.find | STARTED | {"find"=>"manuals_publisher_users", "filter"=>{}, "limit"=>-1, "sort"=>{"_id"=>1}}
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326416013Z MONGODB | mongo:27017 | manuals-publisher.find | SUCCEEDED | 0.004503717s
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326423391Z MONGODB | mongo:27017 | manuals-publisher.find | STARTED | {"find"=>"manual_records", "filter"=>{"manual_id"=>"e151d4e0-37af-4222-a884-2cba46e78a1e"}, "limit"=>-1, "sort"=>{"_id"=>1}}
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326432765Z MONGODB | mongo:27017 | manuals-publisher.find | SUCCEEDED | 0.002151824s
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326439473Z MONGODB | mongo:27017 | manuals-publisher.find | STARTED | {"find"=>"manual_record_editions", "filter"=>{"manual_record_id"=>BSON::ObjectId('5a44ee3ae59d4d0009347ba3')}, "limit"=>-1, "sort"=>{"version_number"=>-1}}
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326449181Z MONGODB | mongo:27017 | manuals-publisher.find | SUCCEEDED | 0.001500657s
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326455982Z MONGODB | mongo:27017 | manuals-publisher.find | STARTED | {"find"=>"manual_record_editions", "filter"=>{"manual_record_id"=>BSON::ObjectId('5a44ee3ae59d4d0009347ba3')}}
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326464219Z MONGODB | mongo:27017 | manuals-publisher.find | SUCCEEDED | 0.001163941s
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326470917Z MONGODB | mongo:27017 | manuals-publisher.find | STARTED | {"find"=>"publication_logs", "filter"=>{"slug"=>/^guidance\/the-mirror-crackd-from-side-to-side-1514466851(\/|$)/}, "sort"=>{"created_at"=>1}}
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326480541Z MONGODB | mongo:27017 | manuals-publisher.find | SUCCEEDED | 0.001081149s
�[32mmanuals-publisher_1               |�[0m 2017-12-28T13:14:36.326489108Z MONGODB | mongo:27017 | manuals-publisher.find | STARTED | {"find"=>"manual_records", "filter"=>{"manual_id"=>"e151d4e0-37af-4222-a884-2cba46e78a1e"}, "limit"=>-1, "sort"=>{"_id"=>1}}

(note lots of stuff omitted)

I wonder if this would be resolved by switching to running the app with unicorn server instead as it seems to be a concurrency related issue. Seems kinda strange though since it's quite deep in Rails and I think WEBRick runs Rails as threads.

Docker operations timeout as part of `docker-compose kill`

Example console output:

16:57:58 ERROR: for hinge2eteststestagainstba77p3bhvw3oskbl52jigdubrdsdhd5krjrobmdmc3s4ixvgcj2a_router-api_1  UnixHTTPConnectionPool(host='localhost', port=None): Read timed out. (read timeout=60)
16:57:58 
16:57:58 ERROR: for hinge2eteststestagainstba77p3bhvw3oskbl52jigdubrdsdhd5krjrobmdmc3s4ixvgcj2a_draft-router_1  UnixHTTPConnectionPool(host='localhost', port=None): Read timed out. (read timeout=60)
16:57:58 
16:57:58 ERROR: for hinge2eteststestagainstba77p3bhvw3oskbl52jigdubrdsdhd5krjrobmdmc3s4ixvgcj2a_finder-frontend_1  UnixHTTPConnectionPool(host='localhost', port=None): Read timed out. (read timeout=60)
16:57:58 
16:57:58 ERROR: for hinge2eteststestagainstba77p3bhvw3oskbl52jigdubrdsdhd5krjrobmdmc3s4ixvgcj2a_draft-collections_1  UnixHTTPConnectionPool(host='localhost', port=None): Read timed out. (read timeout=60)
16:57:58 
16:57:58 ERROR: for hinge2eteststestagainstba77p3bhvw3oskbl52jigdubrdsdhd5krjrobmdmc3s4ixvgcj2a_content-tagger_1  UnixHTTPConnectionPool(host='localhost', port=None): Read timed out. (read timeout=60)
16:57:58 An HTTP request took too long to complete. Retry with --verbose to obtain debug information.
16:57:58 If you encounter this issue regularly because of slow network conditions, consider setting COMPOSE_HTTP_TIMEOUT to a higher value (current value: 60).
16:57:58 make: *** [kill] Error 1

When this happens as part of the teardown of Jenkins it won't fail the build but will mean the containers are in a partially reaped state.

Basic internet searching into what is going on has proved inconclusive. A deeper dive into what the docker daemon is blocking on with strace could identify the source of the slowness.

Increasing COMPOSE_HTTP_TIMEOUT could help. However, some have said that this only causes more waiting, and for docker to still timeout.

Running make stop straight after the error locally works fine without slowness which suggests docker is deadlocking. 😡

Multiple "InvalidFormatError" polluting the diet error handler logs

Rummager worker is leaving lots of errors, which are polluting the logs making it harder to see the real problems.

13:48:18 ---
13:48:18 :timestamp: 2018-02-20 13:47:33.057217684 +00:00
13:48:18 :errors:
13:48:18 - :type: GovukIndex::InvalidFormatError
13:48:18   :message: GovukIndex::InvalidFormatError
13:48:18 :context:
13:48:18   :environment: rummager-worker
13:48:18   :hostname: 
13:48:18   :url: 
13:48:18 ---

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.