Skip to content

Conversation

@saliceti
Copy link
Contributor

Fix https://github.com/cloudfoundry/diego-ssh/issues/31 and same problem on ssh-proxy.
Related to an issue encountered on concourse: http://concourse.ci/downloads.html#v270

The problem can be reproduced by uploading data via cf ssh. Example:

dd if=/dev/zero bs=1024k count=5000 | pv | ./cf ssh <app-name> -c "cat > /dev/null"

Without this patch the transfer stops at 2GB.

With the patch the upload can finish. However, it fails at 2GB with recent cf cli versions, see: cloudfoundry/cli#1098

@cf-gitbot
Copy link

We have created an issue in Pivotal Tracker to manage this:

https://www.pivotaltracker.com/story/show/142145463

The labels on this github issue will be updated when the story is started.

@cfdreddbot
Copy link

Hey saliceti!

Thanks for submitting this pull request! I'm here to inform the recipients of the pull request that you and the commit authors have already signed the CLA.

@emalm
Copy link
Contributor

emalm commented Mar 22, 2017

Thanks, @saliceti. Prioritizing for the Diego team to evaluate and pull in.

Best,
Eric, CF Diego PM

@dcarley
Copy link

dcarley commented Mar 24, 2017

We have implemented an acceptance test in our own codebase to prevent regressions of this issue:

Do you think this belongs in CATS once the issue is fixed in Diego and CLI?

@emalm
Copy link
Contributor

emalm commented Mar 24, 2017

Thanks, @dcarley! @dsabeti and the CF Release Integration team hold domain over the CATs, so I'll let them weigh in on whether it would be valuable to have a regression test in that suite for this behavior.

Best,
Eric

bdshroyer pushed a commit that referenced this pull request Mar 27, 2017
[finishes #142522481]

Submodule src/github.com/onsi/ginkgo c3a655f..67b9df7:
  > Remove the spec_iterator.test binary (#336)
  > Shared queue implementation for parallel tests
  > Revert "Don't colorize output by default if not writing to a TTY (#328)" (#331)
  > Don't colorize output by default if not writing to a TTY (#328)
  > Use SVG badge for build status (#330)
  > Add the ability to use ./... to recursively test directories (#319)
  > Include captured output from failed tests into JUnit (#318)
  > Aggregate flaked specs (#316)
  > Add colours for Windows in suite-runner & watch (#312)
  > Fix tests for single node machine (#311)
  > Add ability to specify a custom bootstrap file (#302)
  > Revert "remove -i in invocations of go test.  fixes #305"
  > Update .travis.yml
  > fix imports for generate command (#279)
  > Merge branch 'koron-windows-colorise'
  > remove -i in invocations of go test.  fixes #305
  > remove unnecessary variable
  > backfill GinkgoRandomSeed test
  > Expose the random seed via GinkgoRandomSeed() (#293)
  > Include flake count in test summary (#291)
  > #287 Ensure Logf/Skipf insert newline characters (#288)
  > Add package path prefix to compilation output path only if missing (#284)
  > Redo flags again, add a bunch of pass-throughs. (#282)
  > Spelling fix (#283)
  > Covermode flag (and reworked pass-through flags passing) (#281)
  > Make JUnit reporter include failure location in message. (#262)
  > remove 1.4 from travis.yml
  > Add gcflags option (#276)
  > Revert "Use the go1.5 build tag to handle vendor exceptions" (#274)
  > Merge pull request #272 from fsouza/fix-vendor
  > Add flaky test mitigation (#261)
  > Allow units and precision in benchmark (#266)
  > Add Solaris support (#264)
  > Merge pull request #259 from kwadrat/master
  > Merge branch 'apvail-spell-fix'
  > Fix go16 vendor
  > Merge pull request #250 from james-lawrence/master
  > Merge pull request #228 from jayunit100/RegexFileNameFiltering
  > Fix test flakiness
Submodule src/github.com/onsi/gomega c463cd2..334b8f4:
  > Merge pull request #206 from xoebus/patch-1
  > Merge pull request #205 from onsi/revert-201-json_formatting
  > Merge pull request #201 from madamkiwi/json_formatting
  > Merge pull request #199 from kevgo/patch-1
@saliceti
Copy link
Contributor Author

@dsabeti: to add to @dcarley's point, our tenants rely on SSH to import data into their SQL backend service, as documented here: https://docs.cloud.service.gov.uk/#creating-tcp-tunnels-with-ssh

@dsabeti
Copy link
Contributor

dsabeti commented Mar 27, 2017

@dcarley @saliceti, I keep wavering back and forth on whether to ask for y'all to PR this update. In general, I don't like the idea of adding a regression test to CATs, as it's meant to illustrate and test features and happy-path workflows.

I'll bring this up with @anEXPer and get back to you. In the mean time, another thing it consider is weather there's a lower-level place to put this test. For example, could this be tested in the SSH Proxy codebase rather than in CATs?

@dcarley
Copy link

dcarley commented Mar 28, 2017

I think CATS is probably the right place. We've seen that our users expect to be able to use cf ssh to transfer data in to and out of CF services that are bound to apps, which seems like a happy path behaviour. A low-level test wouldn't have told us that the end user functionality didn't work across the 3 separate components (daemon, proxy, and CLI).

@caod123
Copy link
Contributor

caod123 commented Mar 28, 2017

@dcarley @saliceti We attempted to pull in this change and verify that it in fact fixes the diego-ssh issue; however, we're running into packaging issues with crypto master (which this PR is attempting to merge in):

# golang.org/x/crypto/curve25519
../../../packages/ssh_proxy/src/golang.org/x/crypto/curve25519/freeze_amd64.s:11: #include: open /var/vcap/data/packages/golang/37065d7bd5d4c91bf9f8d8c871f4859193808516/pkg/include/const_amd64.h: no such file or directory

We found the commit that did fix it though and that appears to work fine: https://go.googlesource.com/crypto/+/641ab6b32049cabca26c30bf27baaae445bf4175

If you'd like to update your PR to pull in that commit instead, we can probably process it.

@caod123
Copy link
Contributor

caod123 commented Mar 28, 2017

Actually we'll just update our packaging spec to include .h files as well. This appears to be the first .h file we've included from a package so we never actually packaged them as well.

@caod123
Copy link
Contributor

caod123 commented Mar 28, 2017

@dcarley @saliceti We just pushed an update to ./scripts/sync-package-specs to package .h files as well. Could you rebase your PR and run ./scripts/sync-package-specs and include the updated package spec changes in this PR as well?

@caod123
Copy link
Contributor

caod123 commented Mar 28, 2017

Actually we'll just go ahead and do that to get this pulled in.

@dcarley
Copy link

dcarley commented Mar 28, 2017

I was about to, but might be easier for you to co-ordinate it, thanks 👍

@dsabeti
Copy link
Contributor

dsabeti commented Apr 3, 2017

Hey @dcarley, I wanted to wrap up your question about contributing your test to CATs. Thanks for writing this test and for thinking about contributing it upstream.

For now, we want to hold off on including this test in CATs, but we have a plan to include it in the future. CATs has become incredibly crufty, and at some point soon, we'd like to reevaluate all the tests we have in CATs and reorganize them into a series of suites whose responsibilities are clearer. One such test suite will likely manage edge cases, and this test suite will likely fit in there.

Feel free to follow up with me if you have any questions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants