Response.write issue on bluemix
Gayathri Raghavendra prasad <graghav@...>
Hello,
I wrote a simple app which writes continuous chunks of data using response.write. The code is below. This works fine when I run it locally but the output never shows when the app runs on bluemix. The CF version on Bluemix : CF210.2 . Will appreciate any help on why this behavior. var app = require('express')(), http = require('http'); app.get('/', function(req, res){ var timer = setInterval(function () { res.write('Hellooo\n\n') res.write('Hiii\n\n') }, 2000) res.on('close', function () { clearInterval(timer) }) }); http.createServer(app).listen(process.env.VCAP_APP_PORT || '2000', function(){ console.log('Express server listening on port '+(process.env.VCAP_APP_PORT || '2000')); }); Thanks, Gayathri |
|
CF CLI Version 6.12.1
Greg Oehmen
The CF CLI team released version 6.12.1 on 7/6/2015. Release notes,
download instructions and binaries are available at: https://github.com/cloudfoundry/cli/releases Highlights of this release include: Plugin API - https://github.com/cloudfoundry/cli/blob/master/plugin_examples/DOC.md Full Support for Service keys / Async Service Operations - http://docs.cloudfoundry.org/services/asynchronous-operations.html Full Support for Arbitrary Parameters for Service Instance Provisioning - https://docs.google.com/document/d/1QYHH3T4Dy1tjLj-FrkrVhgfgCzQCyIlTCIPBe9RMFAs/edit General UX Refinements - Allow `cf app` to display buildpack - Add Buildpack to `cf create-app-manifest` - Added support for ā--no-hostnameā attribute in `cf create-app-manifest` command - Removed āas adminā.. clause from create-user since it is confusing - Added fields to CLI MSI installer to show app/publisher name in windows - Removed Windows incompatible language test - Enabled full word āyesā for confirmation when lang is not en_US - Enabled file reference containing JSON when creating a service instance - Support for godeps newest noaa package - new noaa.Close() method - Support for loggregator/Noaa endpoint Changes - Fixed bug: CLI upload fails at 2nd push with `EmptyDirError` - Fixed bug: index out of range panic when getting stats for Diego app while Diego stats endpoint is down - Fixed bug: do not create zip when no file to upload during cf push - Fixed bug: cf start uses old loggregator to tail logs, instead of noaa Improvements to text output/error messaging - Fixed `cf push -p` help verbiage - Improved restage tip to include name of app - Rewrote cf update-service help text error to be more descriptive - Highlighted restage command in uups tip - Updated tip for updating UPSIs - UPSIs now propagate their credentials on update, so no need to unbind and rebind them. - Added error handling for when diego /instances is up but /noaa is down. Pull Requests #470 <https://github.com/cloudfoundry/cli/pull/470> - Fix flaky test for go 1.4 where map iteration order is randomized. #366 <https://github.com/cloudfoundry/cli/pull/366> -Fixed error message when there is a mismatch in the order of arguments for create-buildpack Additions to the CF-Community Plugin Repo: cf-download - v1.0.0 Plugin for downloading your application contents after staging Scaleover - v.0.1.0 Roll traffic from one app to another by scaling over time Diego-SSH - v.0.1.2 Access Diego containers with SSH Greg Oehmen Cloud Foundry Product Manager |
|
Deprecating cloudfoundry/errors repo
Dan Wendorf
Hi Cloud Foundry,
The Cloud Controller NG repo has errors as a submodule under the assumption that other teams/projects may wish to share our error yml files. The CC team would like to deprecate that repository and fold it into CC directly. If we do this, it may affect any teams that are using cloudfoundry/errors. Are you one of those teams? Please let us know if you have any use cases for the errors repository before we deprecate it sometime in the next week. Thanks, Dan Wendorf & Liz Dahlstrom and the Cloud Controller team |
|
CAB call for July 2015 - moved to 7/15 @ 8a PDT
Michael Maximilien
Hi, all,
After conferring with James and Chip, we've agreed to move the call to next week Wednesday @ same time (8a PDT). This helps folks who have extended their July 4th holiday in U.S. and hopefully is not inconvenient to others. Finally, reminders: 1. Note the call information is relatively new (same as last time). Please take note: USA 888-426-6840; 215-861-6239 | Participant code: 1985291 Other countries: http://goo.gl/RnNfc1 2. Please add to the agenda of you have something to discuss. I will send reminders again early next week. Agenda: https://docs.google.com/document/d/1SCOlAquyUmNM-AQnekCOXiwhLs6gveTxAcduvDcW_xI/edit 3. If you own any of the recurring meetings please update with above. Thanks much. Best, dr.max ibm cloud labs silicon valley, ca dr.max ibm cloud labs silicon valley, ca Sent from my iPhone |
|
Re: cf restage and downtime
Mike Youngstrom <youngm@...>
Good to hear. Thanks Dieu!
toggle quoted message
Show quoted text
On Mon, Jul 6, 2015 at 11:44 PM, Dieu Cao <dcao(a)pivotal.io> wrote:
Yes, we think that with the initial scope of work for the v3 cc api that |
|
Did anybody deploy a wiki as app to CF?
Stephan Weber
Hi,
Did anybody deploy a wiki as app to CF? Which one? Can you point me to a āhow-toā? Best regards, Stephan |
|
Re: cf restage and downtime
Dieu Cao <dcao@...>
Yes, we think that with the initial scope of work for the v3 cc api that
toggle quoted message
Show quoted text
we'll have the primitives to be able to orchestrate a rolling deploy. In v3, we've already separated out the staging step so that a new package can be uploaded and staged without affecting the running app. -Dieu On Mon, Jul 6, 2015 at 9:00 PM, Mike Youngstrom <youngm(a)gmail.com> wrote:
At one point Diego was slated to look at support for rolling |
|
Re: cf restage and downtime
Mike Youngstrom <youngm@...>
At one point Diego was slated to look at support for rolling
toggle quoted message
Show quoted text
restart/restage. Is that still being considered in Diego's roadmap? Also, if there are CC API changes involved it would be nice to keep those in mind as the V3 API evolves. Mike On Mon, Jul 6, 2015 at 1:09 PM, Dieu Cao <dcao(a)pivotal.io> wrote:
Hi Peter, |
|
Re: revrse proxy in CF
Sumanth Yamala
Thanks Chris. Will keep you posted on how it goes.
Sumanth From: cf-dev-bounces(a)lists.cloudfoundry.org [mailto:cf-dev-bounces(a)lists.cloudfoundry.org] On Behalf Of Christopher Piraino Sent: Monday, July 06, 2015 8:16 PM To: Discussions about Cloud Foundry projects and the system overall. Subject: Re: [cf-dev] revrse proxy in CF Hi Sumanth, We recently added support for "Context Path Routing"<https://docs.google.com/document/d/1H_adSiY7wGR85av9YfxxPRylSO8Q8U0ANJJTg6wpYRQ> in both the GoRouter and CC API<http://apidocs.cloudfoundry.org/212/routes/creating_a_route.html>. I do not believe the cf CLI has implemented this feature yet. This feature was added to address this exact use-case, we would love to receive feedback on it. Note that there is a current bug related to the use of context paths and session affinity<https://www.pivotaltracker.com/story/show/98068176> that we have in our backlog. Let me know if that helps! Best, Chris Piraino, CF Routing Team On Mon, Jul 6, 2015 at 2:41 PM, Sumanth Yamala <Sumanth.Yamala(a)sas.com<mailto:Sumanth.Yamala(a)sas.com>> wrote: The main goal is to have a mapping from a top level url like abc.com/app1<http://abc.com/app1> abc.com/app2<http://abc.com/app2> getting mapped to the actual routes given by cf to the respective apps. So I was thinking of adding a reverse proxy in front of the router, similar to what you have done. Can this be accomplished with the go router or do we need a reverse proxy? Thanks Sumanth From: cf-dev-bounces(a)lists.cloudfoundry.org<mailto:cf-dev-bounces(a)lists.cloudfoundry.org> [mailto:cf-dev-bounces(a)lists.cloudfoundry.org<mailto:cf-dev-bounces(a)lists.cloudfoundry.org>] On Behalf Of John Wong Sent: Monday, July 06, 2015 4:32 PM To: Discussions about Cloud Foundry projects and the system overall. Subject: Re: [cf-dev] revrse proxy in CF What is the goal of your reversed proxy? Did you mean load balance of multiple instances of an app (cf push APPNAME -i 3 ==== having 3 instances of APPNAME)? Gorouter knows how to dispatch to app 1 or app2, for as long as cf is setup properly and that there is a url mapping. Where I work we also configure Nginx to handle the incoming traffic and then proxy to gorouter. On Mon, Jul 6, 2015 at 4:23 PM, Sumanth Yamala <Sumanth.Yamala(a)sas.com<mailto:Sumanth.Yamala(a)sas.com>> wrote: Hi, In an environment with multiple micro services being deployed in CF. Does the āgo routerā have the functionality of reverse proxy or should I configure httpd to sit in front of the go router. Thanks, Sumanth _______________________________________________ cf-dev mailing list cf-dev(a)lists.cloudfoundry.org<mailto:cf-dev(a)lists.cloudfoundry.org> https://lists.cloudfoundry.org/mailman/listinfo/cf-dev _______________________________________________ cf-dev mailing list cf-dev(a)lists.cloudfoundry.org<mailto:cf-dev(a)lists.cloudfoundry.org> https://lists.cloudfoundry.org/mailman/listinfo/cf-dev |
|
Re: revrse proxy in CF
Christopher Piraino <cpiraino@...>
Hi Sumanth,
We recently added support for "Context Path Routing" <https://docs.google.com/document/d/1H_adSiY7wGR85av9YfxxPRylSO8Q8U0ANJJTg6wpYRQ> in both the GoRouter and CC API <http://apidocs.cloudfoundry.org/212/routes/creating_a_route.html>. I do not believe the cf CLI has implemented this feature yet. This feature was added to address this exact use-case, we would love to receive feedback on it. Note that there is a current bug related to the use of context paths and session affinity <https://www.pivotaltracker.com/story/show/98068176> that we have in our backlog. Let me know if that helps! Best, Chris Piraino, CF Routing Team On Mon, Jul 6, 2015 at 2:41 PM, Sumanth Yamala <Sumanth.Yamala(a)sas.com> wrote: The main goal is to have a mapping from a top level url like |
|
Re: revrse proxy in CF
Sumanth Yamala
The main goal is to have a mapping from a top level url like abc.com/app1 abc.com/app2 getting mapped to the actual routes given by cf to the respective apps. So I was thinking of adding a reverse proxy in front of the router, similar to what you have done. Can this be accomplished with the go router or do we need a reverse proxy?
Thanks Sumanth From: cf-dev-bounces(a)lists.cloudfoundry.org [mailto:cf-dev-bounces(a)lists.cloudfoundry.org] On Behalf Of John Wong Sent: Monday, July 06, 2015 4:32 PM To: Discussions about Cloud Foundry projects and the system overall. Subject: Re: [cf-dev] revrse proxy in CF What is the goal of your reversed proxy? Did you mean load balance of multiple instances of an app (cf push APPNAME -i 3 ==== having 3 instances of APPNAME)? Gorouter knows how to dispatch to app 1 or app2, for as long as cf is setup properly and that there is a url mapping. Where I work we also configure Nginx to handle the incoming traffic and then proxy to gorouter. On Mon, Jul 6, 2015 at 4:23 PM, Sumanth Yamala <Sumanth.Yamala(a)sas.com<mailto:Sumanth.Yamala(a)sas.com>> wrote: Hi, In an environment with multiple micro services being deployed in CF. Does the āgo routerā have the functionality of reverse proxy or should I configure httpd to sit in front of the go router. Thanks, Sumanth _______________________________________________ cf-dev mailing list cf-dev(a)lists.cloudfoundry.org<mailto:cf-dev(a)lists.cloudfoundry.org> https://lists.cloudfoundry.org/mailman/listinfo/cf-dev |
|
Re: revrse proxy in CF
John Wong
What is the goal of your reversed proxy? Did you mean load balance of
multiple instances of an app (cf push APPNAME -i 3 ==== having 3 instances of APPNAME)? Gorouter knows how to dispatch to app 1 or app2, for as long as cf is setup properly and that there is a url mapping. Where I work we also configure Nginx to handle the incoming traffic and then proxy to gorouter. On Mon, Jul 6, 2015 at 4:23 PM, Sumanth Yamala <Sumanth.Yamala(a)sas.com> wrote: Hi, |
|
revrse proxy in CF
Sumanth Yamala
Hi,
In an environment with multiple micro services being deployed in CF. Does the "go router" have the functionality of reverse proxy or should I configure httpd to sit in front of the go router. Thanks, Sumanth |
|
Re: cf restage and downtime
Dieu Cao <dcao@...>
Hi Peter,
toggle quoted message
Show quoted text
Actually `cf restage` does cause down time. It will stop existing instances, stage the new app bits with the buildpack, and start new instances. It's possible that your app may start quickly enough that you aren't seeing down time. It's recommended, that for now, you should use a blue-green deployment strategy to ensure there is no down time to your users. If you just need your app to pick up environment variables that aren't required during staging, you could also just restart your app instead of restaging with each change. -Dieu On Fri, Jul 3, 2015 at 9:17 AM, Peter Dotchev <dotchev(a)gmail.com> wrote:
Hello, |
|
Re: Loggregator Runtime error: invalid memory address or nil pointer dereference
Erik Jasiak <ejasiak@...>
Hi again Gianluca,
toggle quoted message
Show quoted text
To follow up from the previous email - we have added this to our investigation into a possible handshake problem between TC and our library; we'll be investigating either way. Thank you for the issue notification! Erik On Wed, Jul 1, 2015 at 8:00 AM, Gianluca Volpe <gvolpe1968(a)gmail.com> wrote:
hi |
|
Re: loggregator tc repeating error "websocket: close 1005"
Erik Jasiak <ejasiak@...>
Hi Gianluca - apologies for the delay; everyone here has been out on
toggle quoted message
Show quoted text
holiday (and/or watching the world cup.) We were originally investigating this issue as part of a separate bug - but again, apologies: that probably wasn't clear. https://www.pivotaltracker.com/story/show/97680512 We've since broken out a separate issue, that we believe is related, where we're seeing a failed interchange between a TC and a client - https://www.pivotaltracker.com/story/show/98465742 Finally, it looks like you added a separate (but possibly related) issue over the weekend: https://www.pivotaltracker.com/story/show/98353520 All in all, we think we have a bad handshake, and are actively digging into it. If you happen to have any more info feel free to follow up; again apologies for the delay in reply, and thank you for digging into this! Much appreciated, Erik On Fri, Jul 3, 2015 at 3:21 AM, Gianluca Volpe <gvolpe1968(a)gmail.com> wrote:
hi Erik |
|
Deploying diego on openstack
Pramod Mandagere
Hi All,
All the documentation and github code (manifest stubs) deal with deploying diego with bosh-lite. Are there any pointer/docs for generating an openstack manifest for diego deployment using microbosh? If some one has an example deployment, can u post a sample manifest, Regards, |
|
Re: SSH access to CF app instances on Diego
Following up on James's description of the "papertrail" ssh audit traces
toggle quoted message
Show quoted text
that the diego-ssh support is adding. This is very useful to have these traces. Can you confirm these traces are provided through loggregator (and don't appear in the cc events) ? I'm however wondering how reliable can the loggregator-based logs be (as loggregator is lossy and not designed to support reliable transport of logs). While I understand there have been recent efforts to reduce the lossy rate of loggregator, I'm wondering how easy it would be for a CF user to cover its tracks (i.e. its "diego ssh" log entries), e.g. simply flooding the loggregator with user traffic (having RTR and diego compete for throughput into loggregator for a given app). Thanks, Guillaume. On Thu, Jul 2, 2015 at 10:18 PM, James Myers <jmyers(a)pivotal.io> wrote:
|
|
Re: SSH access to CF app instances on Diego
Hi,
toggle quoted message
Show quoted text
please find my feedback to this thread *short version:* 1- need preserve good CF experience with HTTP only (direct SSH flow is still blocked and a pain in many organisations) => +1 to preserve "cf files" or fine tune diego plug to have ssh over HTTP to work out of the box 2- default "recycle tainted containers by default" policy seems good to me 3- needs to be completed with more control of the recycling policy (UX such as "quarantine" or GAE "lock/unlock" ) 4- development use-cases need to be better supported (dev/prod parity) not sure ssh/scp is the right path though *long version:* *1- cf files and ssh over HTTP* As previously mentionned into [1], CF exposing apis over HTTP api made a great job to be easily consummed through HTTP proxies that some companies still use, making CF experience seemless to consumme public paas, or private paas among corporate entities. It seems important to me to preserve good CF experience with HTTP only. If SSH interactive access, scp and port forwarding become the mainstream solution to operate and troubleshoot apps (supporting "cf files", replacement for the previous DEBUG and CONSOLE ports), it will be useful for users behind such firewalls to be able to configure diego ssh plugin to use HTTP/SOCKS proxies to reach public CF instances. As the diego ssh cli plugin supports using the regular local host ssh binaries, this may potentially be done by tweaking the .ssh config file to add flags associated to host ssh.${domain} to go through proxies (possibly double tunnels as described into [2]). However, for new users in such network context, especially on windows operating system, the set up work before using a CF public instance starts to add up? *2- default "recycle tainted containers by default" seems good to me* Given that apps deployed on CF comply to 12 factor apps, there instance may be restarted at anytime (e.g. during a CF new release deployment or stemcell upgrade). So the default policy "recycle tainted containers by default" is not a surprise. *3- need to be completed with more control of the recycling policy (UX such as "quarantine" or GAE "lock/unlock" )* There are some specific use-cases where the "recycle tainted containers by default" policy would be problematic when running applications in production: An application instance is malfunctionning (e.g. hanging) and an interactive debugging is necessary. The app-ops ssh into the container and starts taking some diagnostic steps (e.g sending kill -SIGTERM signals to take thread dumps, or locally changes log levels). If ever the ssh connection breaks/timeout, the "recycle tainted containers by default, preventing the current diagnostc to complete. Another similar use case: a production application is suspected to be compromised by an attacker. App-ops need to capture evidences and understand better how the abuse was done. There isn't enough information in streamed logs, and there is a need to get into the container to inspect the ephemeral FS and the processes and memory. This may require more than one simultanenous SSH connection, and may span on multiple hours In both use-cases above, while the application is 12 factor compliant and the "recycle tainted containers by default" policy would be opted in on the corresponding space, there would be a need to transiently turn the mode off. In term of user experience, this may appear as an explicit user request to "quarantine" the tainted app instances (or the whoe app) so that CF does not attempt to restart them. Or it may appear as the google app engine "lock/unlock" a call to a new "unlock" command to a CF app instance would be necessary to get SSH access to it. CF then considers this instance as "tained"/untrusted, as it may have deviated from the pushed content, and does not act to it anymore (i.e. does not monitor its bound $PORT or root process exit, which may be handy to diagnose it as wish). When the "lock" command is requested on this instance, Cf destroys this tainted instance, and recreates a fresh new "trusted" one. *4- development use-cases need to be better supported (dev/prod parity) not sure ssh/scp is the right path though* I agree with James Myers that development use-cases should be better supported. First, CF should strive to support dev-prod parity [4]. However currently, there is not anymore a version of CF that a developper can run on his laptop (e.g. when doing offline development during commute) that would behave like prod and embed buildpacks. There used to have "CF on a single VM". Heroku or GAE have emulators. Cloud rocker [5] is close, but it still takes 10s or more to have changes made on the app be reflected into a running app. There are some legitimate use cases during development for modifying sources of the application and have those changes be taken in effect immediately. Lots of app development framework supports those development modes (even those that promote test-driven practices), and getting a fast feedback is important. Having dev-prod parity means supporting these use cases while preserving prod behavior (having the VCAP_SERVICES and VCAP_APPLICATION and the buildpack processing applied on the same stack (cflinux2)). Being able to run offline would be even better. I however believe that providing SSH/SCP access to change the file system to a running app instance may not be the appropriate response, given the FS and the app instance is still ephemeral. Who would want to modify files that could be lost at any time (e.g. a stemcell upgrade ) ? I'd rather see value in further exploring the ideas layed out by James Bayer into [5] e.g. as a form of a git repo populated with the /home/vcap/app subdir, that developers could clone, push to, and have the instance epheremal FS updated with pushed changes. This may be combined with a cloudrocker mechanism as to work with a fully offline mode when this is required. [1] https://groups.google.com/a/cloudfoundry.org/d/msg/vcap-dev/OavSBIhU_xQ/wJrT08iHfJ8J [2] http://proxytunnel.sourceforge.net/paper.php [3] https://cloud.google.com/appengine/docs/managed-vms/host-env#changing_management [4] http://12factor.net/dev-prod-parity [5] https://docs.google.com/document/d/1_C3OWS6giWx4JL_IL9YLA6jcppyQLVD-YjR0GeA8Z0s/edit#heading=h.toypuu5pxh65 On Thu, Jul 2, 2015 at 10:18 PM, James Myers <jmyers(a)pivotal.io> wrote:
I have to agree with Matt on this one. I feel that the recycling of |
|
loggregator tc repeating error "websocket: close 1005"
Gianluca Volpe <gvolpe1968@...>
hi Erik
did you have the chance to open the chore on this case? if yes, are there any news about? thx for your help Gianluca |
|