1

We are trying to migrate an application written on REE from cloud provider A to cloud provider B. The application code, VM specs and operating systems are the same. The basic difference is that cloud provider A uses Xen and paravirtualization while cloud provider B uses KVM and full virtualization. Oh yes and ulimit -a is similar on both setups.

However on cloud provider B we get very often errors like:

Message from application: An error occurred while starting the web application: it did not write a startup response in time. Please read this article for more information about this problem

Setup on provider A has real load and never had this kind of error. Setup on provider B crashes like this with one user at something like 18% of the time.

I've read the document but its solutions do not seem to apply in our case (we spawn directly and not smart due to connecting to Postgres), or if they do I hope people here can point out how.

Yes, I know that the better path is to move from REE upwards, and this is in the works, but changing the provider is now more pressing.

UPDATE:

According to the document possible causes are:

  • Stdout redirection. This cannot be the case for in setup A it is not happening. I also checked whether the startup script redirects any file descriptors. It does not.

  • Early termination in bash. I have disabled Phusion from reading .bashrc and the like to avoid this

  • Server too busy. The server is new, not in production and tested by two people. So it is not busy.

  • Application startup freeze, because of a loop or something or requesting something from NFS or S3. The applications is not talking to S3 (or other similar service) and not to NFS. If this is the case of an infinite loop I have to wonder why this is not happening on the current production setup (in place for 2+ years). Both setups are running the same codebase with the same data.

UPDATE 2 - a more complete log message

[ 2014-08-30 01:30:15.3001 10515/7f654de0b700 Pool2/Implementation.cpp:287 ]: Could not spawn process for application /workspace/app/app: An error occurred while starting the web application: it did not write a startup response in time. Error ID: c8940e97 Error details saved to: /tmp/passenger-error-Z0k9GY.html Message from application: An error occurred while starting the web application: it did not write a startup response in time. Please read this article for more information about this problem.

Raw process output here (html output of the server settings basically)

[ 2014-08-30 01:30:15.3091 10515/7f654e84d700 agents/HelperAgent/RequestHandler.h:2306 ]: [Client 27] Cannot checkout session because a spawning error occurred. The identifier of the error is c8940e97. Please see earlier logs for details about the error.

5
  • 1
    Please show us everything you have done with respect to the Passenger debugging document. Including the things that didn't work. Aug 30, 2014 at 9:40
  • 1
    What else is logged when this happens? What is your spawn method? Aug 30, 2014 at 10:03
  • If all goes well, logging is normal. If is does not spawn in time, what is logged is what I show. I have included a more complete log. The html file in /tmp contains the same information. Spawning is direct because we use postgres.
    – adamo
    Aug 30, 2014 at 17:05
  • OK, so what was in the file it referenced? Aug 30, 2014 at 17:07
  • No, in /tmp/passenger-error-Z0k9GY.html the same error message is dumped. Keep in mind that I have not edited any configuration files or source code. I have copied them over. It is just that 1 in 4 or 5 forks fails.
    – adamo
    Aug 30, 2014 at 18:08

0

You must log in to answer this question.

Browse other questions tagged .