Smoke Tests for Pivotal Spring Cloud Services

The Spring Cloud Services tile runs a set of smoke tests to verify proper operation of its services after an installation or upgrade. See below for information about the smoke tests.

Smoke Tests BOSH Errand

The smoke tests are run within the “Smoke Tests” post-deploy BOSH lifecycle errand. By default, this errand is set to “On”, and will be run on every installation or upgrade of the Spring Cloud Services tile. You can view the post-deploy errands by visiting the Errands tab of the Spring Cloud Services tile settings.

Post deploy errands

Smoke Test Steps

The smoke tests are run in the “Smoke Tests” BOSH errand. They follow the steps below:

  1. Target the Cloud Foundry API of the Pivotal Cloud Foundry foundation.

  2. Authenticate the test Cloud Foundry user.

  3. Target the Spring Cloud Services broker org, then target the smoke test space, creating the space if it does not exist.

  4. Delete any previously-existing test service keys and service instances.

  5. For each service, in the order of Service Registry, Config Server, Circuit Breaker Dashboard, run the smoke tests:

    1. Create an instance of the service.
    2. Wait for the service instance to be provisioned.
    3. Create a service key for the service instance (this approximates the binding of an app to the service instance).
    4. Delete the service key.
    5. Delete the service instance.


If a step in the smoke tests fails or encounters an error, the failure or error message will be logged in the smoke test output. See below for troubleshooting information about some potential failures encountered by the smoke tests.

Timeouts On Microsoft Azure

In a PCF foundation on Microsoft Azure, idle timeout settings may lead to network connections being closed without warning to the Spring Cloud Services service broker, causing the service broker’s operations to time out. The smoke tests give a log message similar to the following:

2017-10-04T09:55:57.28-0400 [APP/PROC/WEB/0]OUT 2017-10-04 13:55:57.285  INFO 19 ---
    [cTaskExecutor-3] o.apache.http.impl.execchain.RetryExec   : I/O exception
    ( caught when processing request to {s}-> Connection timed out (Read failed)

Check the idle timeout settings for any Azure resource with a public IP address, particularly all Azure Load Balancers (see Configure TCP idle timeout settings for Azure Load Balancer in the Microsoft Azure documentation). The default idle timeout setting is 4 minutes. Change this to 30 minutes (see the Azure Networking Connection Idle for more than Four minutes article in the Pivotal Knowledge Base.

Application Push Timeouts

Deployment of backing apps for service instances may time out. The smoke tests give a log message similar to the following:

+ echo 'Timed out waiting for service instance to provision: circuit-breaker' 
Timed out waiting for service instance to provision: circuit-breaker

Check the setting of the Spring Cloud Services “App push timeout” tile configuration option. The default setting is 4 minutes. Change this to a value greater than the number of minutes required to provision a Spring Cloud Services service instance. For example, if you see that the smoke tests are requiring 7 minutes to provision a service instance, change this setting to 8 minutes.