-
-
Notifications
You must be signed in to change notification settings - Fork 867
Description
I've been trying to use fly execute
to test out some tasks that I'm working on, connecting to a simple Concourse instance deployed on AWS via BOSH, as it suggests in the docs. However, that functionality seems to be completely broken (And I'm not sure if it's Fly or ATC or BOSH or what have you that's the problem, hence raising this against the Concourse Release).
When attempting to use the following command:
# fly -k -t https://<user>:<pass>@<blah>.elb.amazonaws.com execute -i <input>=`pwd`/ -c ci/deploy-to-aws.yml
I get the following output:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- 0:01:01 --:--:-- 02015/06/01 12:35:42 bad response when uploading bits: &{504 GATEWAY_TIMEOUT 504 HTTP/1.1 1 1 map[Content-Length:[0] Connection:[keep-alive]] 0x2087c4040 0 [] false map[] 0x2087a0410 0x20874c580}
HTTP/1.1 504 GATEWAY_TIMEOUT
Content-Length: 0
Connection: keep-alive
Which is not ideal. I've looked at AWS, and I have the Idle Timeout
set to 3600 seconds in the Elastic Load Balance configuration, and it still consistently times out after a minute.
If I fiddle with the AWS configuration slightly and talk to ATC directly, I get the following:
# fly -k -t http://<user>:<pass>@<elastic_ip>:8080 execute -i <input>=`pwd`/ -c ci/deploy-to-aws.yml
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- 0:02:06 --:--:-- 0curl: (7) Failed to connect to <eip> port 8080: Connection timed out
gunzip: invalid magic
tar: short read
exit status 1
resource script '/opt/resource/in [/tmp/build/get]' failed: exit status 1
errored
Note how there is no movement in any of the numbers, either, so I'm not even sure if it's uploading.
Having a look with cURL
, I get the following:
curl -k -v -X PUT http://<eip>:8080/api/v1/pipes/f2f65bc5-31cf-45a9-6c3b-8eb1fb4baf3f -u <user:pass> --data-binary @tmp.tgz > out
* About to connect() to <eip> port 8080 (#0)
* Trying <eip>...
* Adding handle: conn: 0x7fc81c00aa00
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x7fc81c00aa00) send_pipe: 1, recv_pipe: 0
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Connected to <eip> (<eip>) port 8080 (#0)
* Server auth using Basic with user '<user>'
> PUT /api/v1/pipes/f2f65bc5-31cf-45a9-6c3b-8eb1fb4baf3f HTTP/1.1
> Authorization: Basic <auth>
> User-Agent: curl/7.30.0
> Host: <eip>:8080
> Accept: */*
> Content-Length: 56823313
> Content-Type: application/x-www-form-urlencoded
> Expect: 100-continue
>
0 54.1M 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0< HTTP/1.1 100 Continue
} [data not shown]
22 54.1M 0 0 22 11.9M 0 6746 2:20:23 0:30:55 1:49:28 0
This time, we can see that it actually uploaded about 12M, and then stopped. Nothing else happened (running cURL
against the ELB rather than the Elastic IP also produced a 504).
A smaller file set (<12MB) uploaded OK with cURL
, but not with fly
- fly execute
still responded with the same gunzip: invalid magic
, and did not appear to actually send any data (though tcpdump + WireShark suggests it should have).
Any idea what's going on? Any configuration I'm likely to be missing?
EDIT: This seems to occur when deploying to BOSH Lite as well, using the latest concourse + garden release combination (from https://github.com/concourse/concourse/releases)