Skip to content
This repository has been archived by the owner on Jun 13, 2021. It is now read-only.

[DNM] Debug ci intermittent failure #534

Closed
wants to merge 14 commits into from

Conversation

ijc
Copy link
Contributor

@ijc ijc commented May 7, 2019

This is investigating the intermittent CI failure originally spotted in #529.

@GordonTheTurtle
Copy link

Please sign your commits following these rules:
https://github.com/moby/moby/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:

$ git clone -b "debug-ci-intermittent-fail" git@github.com:ijc/docker-app.git somewhere
$ cd somewhere
$ git rebase -i HEAD~842354610128
editor opens
change each 'pick' to 'edit'
save the file and quit
$ git commit --amend -s --no-edit
$ git rebase --continue # and repeat the amend for each commit
$ git push -f

Amending updates the existing PR. You DO NOT need to open a new one.

@ijc
Copy link
Contributor Author

ijc commented May 7, 2019

@codecov
Copy link

codecov bot commented May 7, 2019

Codecov Report

Merging #534 into master will increase coverage by 0.09%.
The diff coverage is n/a.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #534      +/-   ##
==========================================
+ Coverage   69.69%   69.79%   +0.09%     
==========================================
  Files          55       55              
  Lines        3013     3013              
==========================================
+ Hits         2100     2103       +3     
+ Misses        633      631       -2     
+ Partials      280      279       -1
Impacted Files Coverage Δ
types/parameters/parameters.go 96.82% <0%> (+4.76%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 137c8cd...32bc9cb. Read the comment docs.

@ijc ijc changed the title Debug ci intermittent failure [DNM] Debug ci intermittent failure May 7, 2019
@ijc
Copy link
Contributor Author

ijc commented May 7, 2019

Thanks @chris-crone but I intended this one just for debugging not merging, I've tagged the title now.

@ijc ijc force-pushed the debug-ci-intermittent-fail branch 4 times, most recently from e3b581b to ca537cc Compare May 7, 2019 15:32
@ijc
Copy link
Contributor Author

ijc commented May 7, 2019

ci.docker.com seems to not be exhibiting this issue any more.

But it looks like https://jenkins.dockerproject.org/job/docker/job/app/job/PR-534/8/consoleFull caught it in the act with a reasonably full set of debug:

--- FAIL: TestRender (2.43s)
    --- FAIL: TestRender/envvariables (2.43s)
        --- FAIL: TestRender/envvariables/stdout (1.27s)
            commands_test.go:71: Output of [/home/ubuntu/workspace/docker_app_PR-534-IJC46AYATBYVRHSO4SXPX7AXYKSMGRTSXPB7VYAXB7INRILONG6A/src/github.com/docker/app/docker-linux app render testdata/render/envvariables/my.dockerapp --parameters-file testdata/render/envvariables/parameters-0.yml --set myapp.command3=bam]:
                STDOUT:
                version: "3.4"
                services:
                  test:
                    command:
                    - bash
                    - -c
                    - cat bar bam
                    image: alpine:latest
                version: "3.4"
                services:
                  test:
                    command:
                    - bash
                    - -c
                    - cat bar bam
                    image: alpine:latest
                
                
                STDERR:
                Rendering "testdata/render/envvariables/my.dockerapp" using format "yaml"
                Action: &{Driver:0xc0003055c0 Action:com.docker.app.render}
                Installation: &{Claim:{Name:custom-action Revision:01DA9AQHCNAHZ31PN9RFWAVSR0 Created:2019-05-07 14:21:31.925651485 +0000 UTC m=+0.276332285 Modified:2019-05-07 14:21:31.925651485 +0000 UTC m=+0.276332285 Bundle:0xc0000af360 Result:{Message: Action:unknown Status:unknown} Parameters:map[com.docker.app.kubernetes-namespace: com.docker.app.orchestrator: com.docker.app.render-format:yaml com.docker.app.share-registry-creds:false myapp.command1:cat myapp.command2:bar myapp.command3:bam] Files:map[]} Reference:}
                START RENDER STDERR:
                cnab-run render on instance "custom-action" with formatter "yaml"
                BEGIN FORMATTED OUTPUT
                version: "3.4"
                services:
                  test:
                    command:
                    - bash
                    - -c
                    - cat bar bam
                    image: alpine:latest
                
                END FORMATTED OUTPUT
                cnab-run render on instance "custom-action" with formatter "yaml"
                BEGIN FORMATTED OUTPUT
                version: "3.4"
                services:
                  test:
                    command:
                    - bash
                    - -c
                    - cat bar bam
                    image: alpine:latest
                
                END FORMATTED OUTPUT
                
                END RENDER STDERR
                
                END

Which shows that the stdout of docker app had the content repeated and that the invocation image was either run twice or had its output duplicated, since:

cnab-run render on instance "custom-action" with formatter "yaml"
                BEGIN FORMATTED OUTPUT
                version: "3.4"
                services:
                  test:
                    command:
                    - bash
                    - -c
                    - cat bar bam
                    image: alpine:latest
                
                END FORMATTED OUTPUT

Is repeated twice within a single START RENDER STDERR:/ END RENDER STDERR pair (so docker app thinks it did not run it twice AFAICT)

@ijc ijc force-pushed the debug-ci-intermittent-fail branch 2 times, most recently from 32bc9cb to 3eedae3 Compare May 8, 2019 11:36
@codecov
Copy link

codecov bot commented May 8, 2019

Codecov Report

❗ No coverage uploaded for pull request base (master@8aacca2). Click here to learn what that means.
The diff coverage is n/a.

Impacted file tree graph

@@            Coverage Diff            @@
##             master     #534   +/-   ##
=========================================
  Coverage          ?   69.79%           
=========================================
  Files             ?       55           
  Lines             ?     3013           
  Branches          ?        0           
=========================================
  Hits              ?     2103           
  Misses            ?      631           
  Partials          ?      279

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8aacca2...8ae76d8. Read the comment docs.

@ijc ijc force-pushed the debug-ci-intermittent-fail branch 4 times, most recently from b5dc87e to bed1beb Compare May 8, 2019 15:34
@ijc
Copy link
Contributor Author

ijc commented May 8, 2019

From the logging in https://ci.docker.com/teams-dsg/job/dsg/job/app/job/PR-534/85/consoleFull I am reasonably convinced that the invocation is not printing the rendered output twice, but rather it is being duplicated somewhere further up the stack.

This is because in the block:

2019-05-08 16:22:25.854527012 +0000 UTC m=+1.099201895: START RENDER STDERR:
...
2019-05-08 16:22:25.854573641 +0000 UTC m=+1.099248499: END RENDER STDERR

(where the ... placeholder is for the output of the invocation images stderr as captured by docker app) the content is repeated twice, but crucially the timestamp is the same on both copies. I believe that if we were somehow calling the invocation image twice, or it was somehow restarting etc that the timestamps would differ on the two copies.

The repeated output is:

        2019-05-08 16:22:25.480445502 +0000 UTC m=+0.020324374: cnab-run render on instance "custom-action" with formatter "json"
        2019-05-08 16:22:25.489309613 +0000 UTC m=+0.029188480: BEGIN FORMATTED OUTPUT
        {
          "networks": {
            "back": {
              "ipam": {},
              "external": false
            },
            "front": {
              "ipam": {},
              "external": false
            }
          },
          "services": {
            "api": {
              "build": {},
              "credential_spec": {},
              "deploy": {
                "resources": {},
                "placement": {}
              },
              "image": "python:3.6",
              "networks": {
                "back": null,
                "front": {
                  "aliases": [
                    "api.example.com",
                    "example.com"
                  ]
                }
              }
            },
            "db": {
              "build": {},
              "credential_spec": {},
              "deploy": {
                "resources": {},
                "placement": {}
              },
              "image": "postgres:9.3",
              "networks": {
                "back": null
              }
            },
            "web": {
              "build": {},
              "credential_spec": {},
              "deploy": {
                "resources": {},
                "placement": {}
              },
              "image": "nginx:latest",
              "networks": {
                "front": null
              },
              "ports": [
                {
                  "mode": "ingress",
                  "target": 80,
                  "published": 8082,
                  "protocol": "tcp"
                }
              ],
              "volumes": [
                {
                  "type": "volume",
                  "source": "static",
                  "target": "/opt/data/static"
                }
              ]
            }
          },
          "version": "3.6",
          "volumes": {
            "static": {
              "name": "corp/web-static-data",
              "external": true
            }
          }
        }
        
        2019-05-08 16:22:25.489329497 +0000 UTC m=+0.029208366: END FORMATTED OUTPUT

Unfortunately while the tweaks I've made to make this happen more reliably in CI (but still not totally reliably) have helped there I still cannot reproduce this locally at all (otherwise strace would be my next port of call, actually it would have been my port of call long before this...).

@ijc ijc force-pushed the debug-ci-intermittent-fail branch 5 times, most recently from a304016 to ee8eee3 Compare May 9, 2019 12:44
@ijc
Copy link
Contributor Author

ijc commented May 9, 2019

Some more results from https://ci.docker.com/teams-dsg/job/dsg/job/app/job/PR-534/91/ where the docker-app (but not the invoc image) are run under strace. I there I see (reconstructing from the strace files manually following the goroutine around):

pid 10887:

write(5, "POST /v1.39/containers/218862fedaaf3eddc9b8a6897f002ef01cbc5b8c05ec3eab28de643c00c63fd9/attach?logs=1&stderr=1&stdout=1&stream=1 HTTP/1.1\r\nHost: \r\nUser-Agent: Docker-Client/unknown-version (linux)\r\nContent-Length: 0\r\nConnection: Upgrade\r\nContent-Type: text/plain\r\nUpgrade: tcp\r\n\r\n", 280) = 280
read(5, 0xc00020c000, 4096)             = -1 EAGAIN (Resource temporarily unavailable)

pid 10882:

read(5, "HTTP/1.1 101 UPGRADED\r\nContent-Type: application/vnd.docker.raw-stream\r\nConnection: Upgrade\r\nUpgrade: tcp\r\n\r\n", 4096) = 109

pid 10887:

read(5, "\2\0\0\0\0\0\0z2019-05-09 12:51:35.241236856 +0000 UTC m=+0.021396529: cnab-run render on instance \"custom-action\" with formatter \"yaml\"\n\1\0\0\0\0\0\0\17version: \"3.4\"\n\1\0\0\0\0\0\0\nservices:\n\1\0\0\0\0\0\0\10  test:\n\1\0\0\0\0\0\0\r    command:\n\1\0\0\0\0\0\0\v    - bash\n\1\0\0\0\0\0\0\t    - -c\n\1\0\0\0\0\0\0\22    - cat bar bam\n\1\0\0\0\0\0\0\31    image: alpine:latest\n\2\0\0\0\0\0\0O2019-05-09 12:51:35.244718411 +0000 UTC m=+0.024878076: BEGIN FORMATTED OUTPUT\n\2\0\0\0\0\0\0\17version: \"3.4\"\n\2\0\0\0\0\0\0\nservices:\n\2\0\0\0\0\0\0\10  test:\n\2\0\0\0\0\0\0\r    command:\n\2\0\0\0\0\0\0\v    - bash\n\2\0\0\0\0\0\0\t    - -c\n\2\0\0\0\0\0\0\22    - cat bar bam\n", 32777) = 530
write(1, "version: \"3.4\"\n", 15)      = 15
write(1, "services:\n", 10)             = 10
write(1, "  test:\n", 8)                = 8
write(1, "    command:\n", 13)          = 13
write(1, "    - bash\n", 11)            = 11
write(1, "    - -c\n", 9)               = 9
write(1, "    - cat bar bam\n", 18)     = 18
write(1, "    image: alpine:latest\n", 25) = 25
read(5, "\2\0\0\0\0\0\0\31    image: alpine:latest\n\2\0\0\0\0\0\0\1\n\2\0\0\0\0\0\0M2019-05-09 12:51:35.244738373 +0000 UTC m=+0.024898017: END FORMATTED OUTPUT\n", 32777) = 127
read(5, 0xc000210000, 32777)            = -1 EAGAIN (Resource temporarily unavailable)

...

read(5, "\2\0\0\0\0\0\1\2042019-05-09 12:51:35.241236856 +0000 UTC m=+0.021396529: cnab-run render on instance \"custom-action\" with formatter \"yaml\"\n2019-05-09 12:51:35.244718411 +0000 UTC m=+0.024878076: BEGIN FORMATTED OUTPUT\nversion: \"3.4\"\nservices:\n  test:\n    command:\n    - bash\n    - -c\n    - cat bar bam\n    image: alpine:latest\n\n2019-05-09 12:51:35.244738373 +0000 UTC m=+0.024898017: END FORMATTED OUTPUT\n", 32777) = 396
read(5, "\1\0\0\0\0\0\0mversion: \"3.4\"\nservices:\n  test:\n    command:\n    - bash\n    - -c\n    - cat bar bam\n    image: alpine:latest\n", 32777) = 117
write(1, "version: \"3.4\"\nservices:\n  test:\n    command:\n    - bash\n    - -c\n    - cat bar bam\n    image: alpine:latest\n", 109) = 109
read(5, 0xc000210000, 32777)            = -1 EAGAIN (Resource temporarily unavailable)

fd 5 is a socket to the daemon and the attach protocol is described at https://github.com/moby/moby/blob/master/client/container_attach.go#L10...L33, essentially \1 is stdout and \2 is stderr.

So we can see that docker-app is being given two copies of the output with \1, first it comes line by line (and is repeated to stdout==fd1 that way) and then it comes in one block (and it is repeated that way).

For comparison a successful run (done locally) looks like:

pid 23173:

write(5, "POST /v1.39/containers/bb60c01f4cd6a9597310103caed18ea5830da2c8326728db8bdf9735178c4e53/attach?logs=1&stderr=1&stdout=1&stream=1 HTTP/1.1\r\nHost: \r\nUser-Agent: Docker-Client/unknown-version (linux)\r\nContent-Len
gth: 0\r\nConnection: Upgrade\r\nContent-Type: text/plain\r\nUpgrade: tcp\r\n\r\n", 280) = 280
read(5, 0xc0004d0000, 4096)             = -1 EAGAIN (Resource temporarily unavailable)

pid 23170:

read(5, "HTTP/1.1 101 UPGRADED\r\nContent-Type: application/vnd.docker.raw-stream\r\nConnection: Upgrade\r\nUpgrade: tcp\r\n\r\n", 4096) = 109

pid 23175:

read(5, "\2\0\0\0\0\0\0z2019-05-09 13:20:48.071237516 +0000 UTC m=+0.024453547: cnab-run render on instance \"custom-action\" with formatter \"yaml\"\n", 32777) = 130
read(5, 0xc00054a000, 32777)            = -1 EAGAIN (Resource temporarily unavailable)

pid 23173:

read(5, "\2\0\0\0\0\0\1\t2019-05-09 13:20:48.076275429 +0000 UTC m=+0.029491459: BEGIN FORMATTED OUTPUT\nversion: \"3.4\"\nservices:\n  test:\n    command:\n    - bash\n    - -c\n    - cat bar bam\n    image: alpine:latest\n\n2019-05-09 13:20:48.07629754 +0000 UTC m=+0.029513546: END FORMATTED OUTPUT\n\1\0\0\0\0\0\0mversion: \"3.4\"\nservices:\n  test:\n    command:\n    - bash\n    - -c\n    - cat bar bam\n    image: alpine:latest\n", 32777) = 390
write(1, "version: \"3.4\"\nservices:\n  test:\n    command:\n    - bash\n    - -c\n    - cat bar bam\n    image: alpine:latest\n", 109) = 109
read(5, 0xc00054a000, 32777)            = -1 EAGAIN (Resource temporarily unavailable)

So it seems to get the "all one line" variant which the bad case saw second.

So the info is already duplicated before docker app sees it from the daemon.

ijc added 13 commits May 10, 2019 10:50
Separate the "file" and "stdio" case since they both error with "rendering
mismatch".

Signed-off-by: Ian Campbell <ijc@docker.com>
Improves output on failure.

Signed-off-by: Ian Campbell <ijc@docker.com>
... also in master.

Signed-off-by: Ian Campbell <ijc@docker.com>
Since it includes t.Log output etc.

Signed-off-by: Ian Campbell <ijc@docker.com>
Signed-off-by: Ian Campbell <ijc@docker.com>
So I can pickup and test known-bad binaries locally.

Signed-off-by: Ian Campbell <ijc@docker.com>
Signed-off-by: Ian Campbell <ijc@docker.com>
Trying to reproduce more reliably

Signed-off-by: Ian Campbell <ijc@docker.com>
Signed-off-by: Ian Campbell <ijc@docker.com>
Trying to see if it is printed twice vs printed once then duplicated by
something...

Signed-off-by: Ian Campbell <ijc@docker.com>
Signed-off-by: Ian Campbell <ijc@docker.com>
Signed-off-by: Ian Campbell <ijc@docker.com>
@ijc ijc force-pushed the debug-ci-intermittent-fail branch from c79ce35 to e00c2fa Compare May 10, 2019 09:51
@ijc
Copy link
Contributor Author

ijc commented May 10, 2019

Managed to capture strace of both docker-app and the cnab-run within the invocation image in https://jenkins.dockerproject.org/job/docker/job/app/job/PR-534/72/.

From the invocation image traces:

cnab-run.render.7:write(2, "2019-05-10 10:15:31.968134272 +0000 UTC m=+0.045578545: cnab-run render on instance \"custom-action\" with formatter \"yaml\"\n", 122) = 122
cnab-run.render.7:write(2, "2019-05-10 10:15:31.974418925 +0000 UTC m=+0.051863204: BEGIN FORMATTED OUTPUT\n", 79) = 79
cnab-run.render.13:write(2, "version: \"3.4\"\nservices:\n  test:\n    command:\n    - bash\n    - -c\n    - cat bar bam\n    image: alpine:latest\n\n", 110) = 110
cnab-run.render.13:write(2, "2019-05-10 10:15:31.975416038 +0000 UTC m=+0.052860297: END FORMATTED OUTPUT\n", 77) = 77
cnab-run.render.13:write(1, "version: \"3.4\"\nservices:\n  test:\n    command:\n    - bash\n    - -c\n    - cat bar bam\n    image: alpine:latest\n", 109) = 109

and:

$ grep write\( cnab-run.render.*
cnab-run.render.13:write(2, "version: \"3.4\"\nservices:\n  test:\n    command:\n    - bash\n    - -c\n    - cat bar bam\n    image: alpine:latest\n\n", 110) = 110
cnab-run.render.13:write(2, "2019-05-10 10:15:31.975416038 +0000 UTC m=+0.052860297: END FORMATTED OUTPUT\n", 77) = 77
cnab-run.render.13:write(1, "version: \"3.4\"\nservices:\n  test:\n    command:\n    - bash\n    - -c\n    - cat bar bam\n    image: alpine:latest\n", 109) = 109
cnab-run.render.7:write(2, "2019-05-10 10:15:31.968134272 +0000 UTC m=+0.045578545: cnab-run render on instance \"custom-action\" with formatter \"yaml\"\n", 122) = 122
cnab-run.render.7:write(2, "2019-05-10 10:15:31.974418925 +0000 UTC m=+0.051863204: BEGIN FORMATTED OUTPUT\n", 79) = 79
$ grep cat.bar.bam cnab-run.render.*
cnab-run.render.13:write(2, "version: \"3.4\"\nservices:\n  test:\n    command:\n    - bash\n    - -c\n    - cat bar bam\n    image: alpine:latest\n\n", 110) = 110
cnab-run.render.13:write(1, "version: \"3.4\"\nservices:\n  test:\n    command:\n    - bash\n    - -c\n    - cat bar bam\n    image: alpine:latest\n", 109) = 109

Which validates that it is only printing its output to stdout a single time (and that the stderr output is only produced once too).

However reconstructing the trace from docker-app shows:

file.12568:write(6, "POST /v1.39/containers/0a705722ef45400bd50bc219b33e0e7a321959717a4e3fb11fdb380148f08be4/attach?logs=1&stderr=1&stdout=1&stream=1 HTTP/1.1\r\nHost: \r\nUser-Agent: Docker-Client/unknown-version (linux)\r\nContent-Length: 0\r\nConnection: Upgrade\r\nContent-Type: text/plain\r\nUpgrade: tcp\r\n\r\n", 280) = 280

file.12568:read(6, "HTTP/1.1 101 UPGRADED\r\nContent-Type: application/vnd.docker.raw-stream\r\nConnection: Upgrade\r\nUpgrade: tcp\r\n\r\n", 4096) = 109

file.12566:read(6, "\2\0\0\0\0\0\0z2019-05-10 10:15:31.968134272 +0000 UTC m=+0.045578545: cnab-run render on instance \"custom-action\" with formatter \"yaml\"\n\2\0\0\0\0\0\0O2019-05-10 10:15:31.974418925 +0000 UTC m=+0.051863204: BEGIN FORMATTED OUTPUT\n\2\0\0\0\0\0\0\17version: \"3.4\"\n\2\0\0\0\0\0\0\nservices:\n\2\0\0\0\0\0\0\10  test:\n\2\0\0\0\0\0\0\r    command:\n\2\0\0\0\0\0\0\v    - bash\n\2\0\0\0\0\0\0\t    - -c\n\2\0\0\0\0\0\0\22    - cat bar bam\n\2\0\0\0\0\0\0\31    image: alpine:latest\n\2\0\0\0\0\0\0\1\n\2\0\0\0\0\0\0M2019-05-10 10:15:31.975416038 +0000 UTC m=+0.052860297: END FORMATTED OUTPUT\n\1\0\0\0\0\0\0\17version: \"3.4\"\n\1\0\0\0\0\0\0\nservices:\n\1\0\0\0\0\0\0\10  test:\n\1\0\0\0\0\0\0\r    command:\n\1\0\0\0\0\0\0\v    - bash\n\1\0\0\0\0\0\0\t    - -c\n\1\0\0\0\0\0\0\22    - cat bar bam\n\1\0\0\0\0\0\0\31    image: alpine:latest\n", 32777) = 657
file.12566:write(5, "version: \"3.4\"\n", 15)      = 15
file.12566:write(5, "services:\n", 10)             = 10
file.12566:write(5, "  test:\n", 8)                = 8
file.12566:write(5, "    command:\n", 13)          = 13
file.12566:write(5, "    - bash\n", 11)            = 11
file.12566:write(5, "    - -c\n", 9)               = 9
file.12566:write(5, "    - cat bar bam\n", 18)     = 18
file.12566:write(5, "    image: alpine:latest\n", 25) = 25

file.12566:read(6, "\1\0\0\0\0\0\0mversion: \"3.4\"\nservices:\n  test:\n    command:\n    - bash\n    - -c\n    - cat bar bam\n    image: alpine:latest\n\2\0\0\0\0\0\1\2042019-05-10 10:15:31.968134272 +0000 UTC m=+0.045578545: cnab-run render on instance \"custom-action\" with formatter \"yaml\"\n2019-05-10 10:15:31.974418925 +0000 UTC m=+0.051863204: BEGIN FORMATTED OUTPUT\nversion: \"3.4\"\nservices:\n  test:\n    command:\n    - bash\n    - -c\n    - cat bar bam\n    image: alpine:latest\n\n2019-05-10 10:15:31.975416038 +0000 UTC m=+0.052860297: END FORMATTED OUTPUT\n", 32777) = 513
file.12566:write(5, "version: \"3.4\"\nservices:\n  test:\n    command:\n    - bash\n    - -c\n    - cat bar bam\n    image: alpine:latest\n", 109) = 109

Which is clearly reading the stdout content from the connection to the daemon (which is on fd 6) twice (first time it is split on \n then the second time it is all in one line, which is what the invocation image actually wrote).

BTW, fd 5 is the output file:

file.12566:openat(AT_FDCWD, "/tmp/-693957471/actual.yaml", O_RDWR|O_CREAT|O_TRUNC|O_CLOEXEC, 0666) = 5

So it seems that something between the container's stdout/stderr and the daemon rest endpoint has not only duplicated both of them but has also apparently for the first one split it on \n somewhere along the way.

From earlier tracing of the happy case with no duplication we know that the expected one is the unsplit one, so it is the first of the two copies which is the "extra".

The actual test output for this case:

--- FAIL: TestRender/envvariables/file (3.54s)
            commands_test.go:98: Output of [strace -s 4096 -fff -o /home/ubuntu/workspace/docker_app_PR-534-IJC46AYATBYVRHSO4SXPX7AXYKSMGRTSXPB7VYAXB7INRILONG6A/src/github.com/docker/app/_build/strace078002921/file /home/ubuntu/workspace/docker_app_PR-534-IJC46AYATBYVRHSO4SXPX7AXYKSMGRTSXPB7VYAXB7INRILONG6A/src/github.com/docker/app/docker-linux app render testdata/render/envvariables/my.dockerapp --parameters-file testdata/render/envvariables/parameters-0.yml --set myapp.command3=bam --output=/tmp/-693957471/actual.yaml]:
                STDOUT:
                
                
                STDERR:
                2019-05-10 10:15:31.132875926 +0000 UTC m=+0.093232854
                Rendering "testdata/render/envvariables/my.dockerapp" using format "yaml"
                Action: &{Driver:0xc0000876e0 Action:com.docker.app.render}
                Installation: &{Claim:{Name:custom-action Revision:01DAGKV7HW3MWF6H6CPM0BG7CM Created:2019-05-10 10:15:31.132543203 +0000 UTC m=+0.092900145 Modified:2019-05-10 10:15:31.132543203 +0000 UTC m=+0.092900145 Bundle:0xc0000cb7c0 Result:{Message: Action:unknown Status:unknown} Parameters:map[com.docker.app.kubernetes-namespace: com.docker.app.orchestrator: com.docker.app.render-format:yaml com.docker.app.share-registry-creds:false myapp.command1:cat myapp.command2:bar myapp.command3:bam] Files:map[]} Reference:}
                Stracing invoc image to "/home/ubuntu/workspace/docker_app_PR-534-IJC46AYATBYVRHSO4SXPX7AXYKSMGRTSXPB7VYAXB7INRILONG6A/src/github.com/docker/app/_build/strace078002921"
                2019-05-10 10:15:34.505983334 +0000 UTC m=+3.466340242: START RENDER STDERR:
                2019-05-10 10:15:31.968134272 +0000 UTC m=+0.045578545: cnab-run render on instance "custom-action" with formatter "yaml"
                2019-05-10 10:15:31.974418925 +0000 UTC m=+0.051863204: BEGIN FORMATTED OUTPUT
                version: "3.4"
                services:
                  test:
                    command:
                    - bash
                    - -c
                    - cat bar bam
                    image: alpine:latest
                
                2019-05-10 10:15:31.975416038 +0000 UTC m=+0.052860297: END FORMATTED OUTPUT
                2019-05-10 10:15:31.968134272 +0000 UTC m=+0.045578545: cnab-run render on instance "custom-action" with formatter "yaml"
                2019-05-10 10:15:31.974418925 +0000 UTC m=+0.051863204: BEGIN FORMATTED OUTPUT
                version: "3.4"
                services:
                  test:
                    command:
                    - bash
                    - -c
                    - cat bar bam
                    image: alpine:latest
                
                2019-05-10 10:15:31.975416038 +0000 UTC m=+0.052860297: END FORMATTED OUTPUT
                
                2019-05-10 10:15:34.50629019 +0000 UTC m=+3.466647135: END RENDER STDERR
                
                END
            commands_test.go:100: Content of /tmp/-693957471/actual.yaml:
                version: "3.4"
                services:
                  test:
                    command:
                    - bash
                    - -c
                    - cat bar bam
                    image: alpine:latest
                version: "3.4"
                services:
                  test:
                    command:
                    - bash
                    - -c
                    - cat bar bam
                    image: alpine:latest
                
                END
            commands_test.go:101: failed to parse source file: /go/src/github.com/docker/app/e2e/commands_test.go: open /go/src/github.com/docker/app/e2e/commands_test.go: no such file or directory
            commands_test.go:101: assertion failed: 
                --- ←
                +++ →
                @@ -1,2 +1,10 @@
                +version: "3.4"
                +services:
                +  test:
                +    command:
                +    - bash
                +    - -c
                +    - cat bar bam
                +    image: alpine:latest
                 version: "3.4"
                 services:
                : rendering mismatch

Signed-off-by: Ian Campbell <ijc@docker.com>
@silvin-lubecki
Copy link
Contributor

The issue seems to be fixed on the CI. We don't have flaky builds anymore.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants