zodern / meteor-up

Production Quality Meteor Deployment to Anywhere
http://meteor-up.com/
MIT License
1.27k stars 281 forks source link

Deployment error: Unhandled promise rejections are deprecated. #448

Closed jetlej closed 7 years ago

jetlej commented 7 years ago

I'm getting this error when using mup deploy:

(node:30105) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

This is my mup.js file:

module.exports = {
    servers: {
        one: {
            host: 'XXXXXXXX',
            username: 'XXXX',
            password: 'XXXXXXXX'
        }
    },

    meteor: {
        name: 'app',
        path: '../',
        servers: {
            one: {},
        },
        buildOptions: {
            serverOnly: true,
        },
        env: {
            ROOT_URL: 'XXXX.com',
            MONGO_URL: 'mongodb://localhost/meteor',
        },
        dockerImage: 'abernix/meteord:base',
        deployCheckWaitTime: 20,
        enableUploadProgressBar: false
    },

    mongo: {
        oplog: true,
        port: 27017,
        version: '3.4.1',
        servers: {
            one: {},
        },
    },
};
kratam commented 7 years ago

I have the same problem. If I run mup logs -f in another screen then it seems it stop after Starting meteor app on port:80. Already tried to increase deployCheckWaitTime to 180 without any luck.

zodern commented 7 years ago

@jetlej please post the full output when running mup deploy.

kratam commented 7 years ago

@zodern in my case it's:

Started TaskList: Start Meteor
[XXXXX] - Start Meteor
[XXXXX] - Start Meteor: SUCCESS
[XXXXX] - Verifying Deployment
[XXXXX] x Verifying Deployment: FAILED

    -----------------------------------STDERR-----------------------------------
    block-stream@0.0.9 
    | `-- which@1.2.12 
    |   `-- isexe@1.1.2 
    +-- node-pre-gyp@0.6.29 
    | +-- rc@1.1.6 
    | | +-- deep-extend@0.4.1 
    | | +-- ini@1.3.4 
    | | +-- minimist@1.2.0 
    | | `-- strip-json-comments@1.0.4 
    | +-- semver@5.2.0 
    | `-- tar-pack@3.1.4 
    |   +-- debug@2.2.0 
    |   | `-- ms@0.7.1 
    |   +-- fstream-ignore@1.0.5 
    |   +-- once@1.3.3 
    |   +-- readable-stream@2.1.5 
    |   | +-- buffer-shims@1.0.0 
    |   | +-- core-util-is@1.0.2 
    |   | +-- isarray@1.0.0 
    |   | +-- process-nextick-args@1.0.7 
    |   | +-- string_decoder@0.10.31 
    |   | `-- util-deprecate@1.0.2 
    |   `-- uid-number@0.0.6 
    +-- promise@7.1.1 
    +-- semver@4.1.0 
    +-- source-map@0.1.32 
    +-- source-map-support@0.3.2 
    +-- strip-ansi@0.3.0 
    +-- supports-color@0.2.0 
    +-- type-of@2.0.1 
    `-- underscore@1.5.2 

    npm WARN meteor-dev-bundle@0.0.0 No description
    npm WARN meteor-dev-bundle@0.0.0 No repository field.
    npm WARN meteor-dev-bundle@0.0.0 No license field.
    => Starting meteor app on port:80

    => Redeploying previous version of the app

    -----------------------------------STDOUT-----------------------------------

    To see more logs type 'mup logs --tail=50'

    ----------------------------------------------------------------------------
(node:30391) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: 
-----------------------------------STDERR-----------------------------------
block-stream@0.0.9 
| `-- which@1.2.12 
|   `-- isexe@1.1.2 
+-- node-pre-gyp@0.6.29 
| +-- rc@1.1.6 
| | +-- deep-extend@0.4.1 
| | +-- ini@1.3.4 
| | +-- minimist@1.2.0 
| | `-- strip-json-comments@1.0.4 
| +-- semver@5.2.0 
| `-- tar-pack@3.1.4 
|   +-- debug@2.2.0 
|   | `-- ms@0.7.1 
|   +-- fstream-ignore@1.0.5 
|   +-- once@1.3.3 
|   +-- readable-stream@2.1.5 
|   | +-- buffer-shims@1.0.0 
|   | +-- core-util-is@1.0.2 
|   | +-- isarray@1.0.0 
|   | +-- process-nextick-args@1.0.7 
|   | +-- string_decoder@0.10.31 
|   | `-- util-deprecate@1.0.2 
|   `-- uid-number@0.0.6 
+-- promise@7.1.1 
+-- semver@4.1.0 
+-- source-map@0.1.32 
+-- source-map-support@0.3.2 
+-- strip-ansi@0.3.0 
+-- supports-color@0.2.0 
+-- type-of@2.0.1 
`-- underscore@1.5.2 

npm WARN meteor-dev-bundle@0.0.0 No description
npm WARN meteor-dev-bundle@0.0.0 No repository field.
npm WARN meteor-dev-bundle@0.0.0 No license field.
=> Starting meteor app on port:80

=> Redeploying previous version of the app

-----------------------------------STDOUT-----------------------------------

To see more logs type 'mup logs --tail=50'

----------------------------------------------------------------------------
(node:30391) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
zodern commented 7 years ago

On the server, try running the start.sh script:

cd /opt/<app name>/config
bash start.sh

Try going to your website after 5 - 10 minutes. If it looks like the script had any errors, please post the output here.

kratam commented 7 years ago

Sorry, it was a problem with another service. From the warning I thought it might be a problem with mup. Thanks a lot!

jetlej commented 7 years ago

@zodern - Here is the full output

Building App Bundle Locally

Started TaskList: Pushing Meteor
[138.197.68.48] - Pushing Meteor App Bundle to The Server
[138.197.68.48] - Pushing Meteor App Bundle to The Server: SUCCESS
[138.197.68.48] - Pushing the Startup Script
[138.197.68.48] - Pushing the Startup Script: SUCCESS

Started TaskList: Configuring Meteor Environment Variables
[138.197.68.48] - Sending Environment Variables
[138.197.68.48] - Sending Environment Variables: SUCCESS

Started TaskList: Start Meteor
[138.197.68.48] - Start Meteor
[138.197.68.48] - Start Meteor: SUCCESS
[138.197.68.48] - Verifying Deployment
[138.197.68.48] x Verifying Deployment: FAILED

    -----------------------------------STDERR-----------------------------------
    :-- --:--:-- --:--:--     0
    curl: (52) Empty reply from server
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
    curl: (52) Empty reply from server
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
    curl: (52) Empty reply from server

    > fibers@1.0.15 install /bundle/bundle/programs/server/node_modules/fibers
    > node build.js || nodejs build.js

    `linux-x64-46` exists; testing
    /opt/meteord/run_app.sh: line 21:     8 Killed                  npm install --unsafe-perm
    -----------------------------------STDOUT-----------------------------------

    To see more logs type 'mup logs --tail=50'

    ----------------------------------------------------------------------------
(node:30105) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: 
-----------------------------------STDERR-----------------------------------
:-- --:--:-- --:--:--     0
curl: (52) Empty reply from server
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (52) Empty reply from server
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (52) Empty reply from server

> fibers@1.0.15 install /bundle/bundle/programs/server/node_modules/fibers
> node build.js || nodejs build.js

`linux-x64-46` exists; testing
/opt/meteord/run_app.sh: line 21:     8 Killed                  npm install --unsafe-perm
-----------------------------------STDOUT-----------------------------------

To see more logs type 'mup logs --tail=50'

----------------------------------------------------------------------------
(node:30105) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
zodern commented 7 years ago

Try increasing the deployCheckWaitTime to 120.

jetlej commented 7 years ago

Now I get this:

[138.197.68.48] x Start Meteor: FAILED

    -----------------------------------STDERR-----------------------------------
    Error response from daemon: No such container: spidermonkey-frontend
    Error response from daemon: No such container: spidermonkey-nginx-letsencrypt
    Error response from daemon: No such container: spidermonkey-nginx-proxy
    docker: Error response from daemon: service endpoint with name spidermonkey already exists.
    -----------------------------------STDOUT-----------------------------------
    spidermonkey
    Removed spidermonkey-frontend
    Removed spidermonkey-nginx-letsencrypt
    Removed spidermonkey-nginx-proxy
    base: Pulling from abernix/meteord
    Digest: sha256:5b44a27c1ef8f8453f69d452345a92290e290143e4bb1a6d7819f0bc38b8fd96
    Status: Image is up to date for abernix/meteord:base
    Pulled abernix/meteord:base
    046c9ab598f876522ff30bad90be3c4fa7270f500323833ffa50689a9aa98938
    ----------------------------------------------------------------------------
(node:51497) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: 
-----------------------------------STDERR-----------------------------------
Error response from daemon: No such container: spidermonkey-frontend
Error response from daemon: No such container: spidermonkey-nginx-letsencrypt
Error response from daemon: No such container: spidermonkey-nginx-proxy
docker: Error response from daemon: service endpoint with name spidermonkey already exists.
-----------------------------------STDOUT-----------------------------------
spidermonkey
Removed spidermonkey-frontend
Removed spidermonkey-nginx-letsencrypt
Removed spidermonkey-nginx-proxy
base: Pulling from abernix/meteord
Digest: sha256:5b44a27c1ef8f8453f69d452345a92290e290143e4bb1a6d7819f0bc38b8fd96
Status: Image is up to date for abernix/meteord:base
Pulled abernix/meteord:base
046c9ab598f876522ff30bad90be3c4fa7270f500323833ffa50689a9aa98938
----------------------------------------------------------------------------
(node:51497) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
zodern commented 7 years ago

Try running docker network disconnect -f spidermonkey on the server and deploying again.

jetlej commented 7 years ago

No luck :/ I disconnected spidermonkey from all docker servers and then ran mup deploy again. Same error.

zodern commented 7 years ago

Please run docker ps on the server and post the output here.

jetlej commented 7 years ago
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                        NAMES
af2d11bf311c        mongo:3.4.1         "/entrypoint.sh mo..."   24 hours ago        Up 24 hours         127.0.0.1:27017->27017/tcp   mongodb
zodern commented 7 years ago

The issue https://github.com/docker/docker/issues/20398 might be relevant.

What version of docker are you using? If it is outdated, can you update it?

What is your docker setup?

jetlej commented 7 years ago

I'm using whatever MUP installed on the server when I ran mup setup. Prior to that, it was a blank Digital Ocean droplet running Ubuntu 16.04

Apparently thats: Docker version 1.13.0, build 49bf474

zodern commented 7 years ago

I'm not sure how to fix it.

Here are some more drastic things you can try:

jetlej commented 7 years ago

I already did reset the droplet and ran mup setup :/

Do you have a recommended stack for Digital Ocean? Something other than Ubuntu perhaps?

bryanlimy commented 7 years ago

same problem here. Reverting back to MUP 1.2.1 didn't fix the problem.

bryanlimy commented 7 years ago

I just clean installed Ubuntu 16.04.01 on DigitalOcean, mup setup was fine, but when I do mup deploy, I got this instead

Started TaskList: Start Meteor
[104.131.20.212] - Start Meteor
[104.131.20.212] - Start Meteor: SUCCESS
[104.131.20.212] - Verifying Deployment
[104.131.20.212] x Verifying Deployment: FAILED

    -----------------------------------STDERR-----------------------------------
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
    curl: (56) Recv failure: Connection reset by peer
    zsh:31: = not found
    -----------------------------------STDOUT-----------------------------------
    ----------------------------------------------------------------------------

and mup logs show this

/opt/meteord/run_app.sh: line 21:     8 Killed                  npm install --unsafe-perm
jetlej commented 7 years ago

Reverting to Ubuntu 14.04 got it to work!

zodern commented 7 years ago

I'm glad you got it working. I created #462 to track supporting Ubuntu 16.

@bryanlimy did you change the default shell to zsh?

bryanlimy commented 7 years ago

@zodern yes, should I use bash instead?

zodern commented 7 years ago

Yes, for now. Could you create a new issue to support zsh?

bryanlimy commented 7 years ago

@zodern ok. I will try with bash and create new issue for zsh

jetlej commented 7 years ago

The plot thickens.

It worked for my staging server that is using local Mongo, but I'm getting the same error for the live server which uses a Compose.io mongo instance.

Basically if I include the 'mongo' field in mup.js, it works. Otherwise I get that same error.

zodern commented 7 years ago

I will try to reproduce that.

jetlej commented 7 years ago

Thank you so much for your help on this!

jetlej commented 7 years ago

So I spun out ANOTHER droplet with the exact same settings and now it's working. I have no idea what's going on.

bryanlimy commented 7 years ago

I revert back to one of my old commit and mup deploy is fine. I think my problem is with the latest version of Dogfalo/materialize Once I revert back to version v0.97.7, mup deploy is completely fine. When I use v0.98.0, it breaks everything.

djkmiles commented 7 years ago

Same behaviour running mup setup, fresh DO 16.04.1 and node v7.5.0 however recreated also using LTS completely unaffected by settings files.


(node:71554) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): TypeError: Cannot convert undefined or null to object
(node:71554) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.`
jetlej commented 7 years ago

So it seems that Ubuntu 16 is the major issue. @djkmiles - Try with 14.04 if you can

djkmiles commented 7 years ago

I tried 14.04 and got same message, then put catch/try block into lib/validate/index.js where config.meteor value is tested and got a better message with backtrace and realised it was simply failing to validate my meteor configuration. In my case there was no problem other than error trapping allowing to pinpoint error. That was all completed with 16.04.1 and node 7.5


 if (config.meteor) {
    try {
        results = (0, _meteor2.default)(config);
    }
    catch (e) {
        console.log(e);
    }
    details = (0, _utils.combineErrorDetails)(details, results);
  }
zodern commented 7 years ago

@djkmiles what was the error from the validator?

djkmiles commented 7 years ago

@zodern that output was simply a backtrace:


TypeError: Cannot convert undefined or null to object
    at Function.keys (<anonymous>)
    at serversExist (C:/Users/z-mod/dev/meteor-up/src/utils.js:35:21)
    at exports.default (/usr/local/lib/node_modules/mup/lib/validate/meteor.js:18:78)
    at validateAll (C:/Users/z-mod/dev/meteor-up/src/index.js:36:10)
    at validate (C:/Users/z-mod/dev/meteor-up/src/index.js:48:15)
    at MupAPI.validateConfig (C:/Users/z-mod/dev/meteor-up/src/mup-api.js:30:5)
    at MupAPI.getConfig (C:/Users/z-mod/dev/meteor-up/src/mup-api.js:79:12)
    at Object.setup (C:/Users/z-mod/dev/meteor-up/src/index.js:58:16)
    at C:/Users/z-mod/dev/meteor-up/src/index.js:112:2
    at process._tickCallback (internal/process/next_tick.js:103:7)
zodern commented 7 years ago

Thanks. Could you also please post your mup.js?

djkmiles commented 7 years ago

As I meant to say, the error was a key being mis-named:

 meteor: {
        name: 'project',
        path: '/path/to/project,
        server: {

Was corrected to servers: { so in my case the error was only the result of having a key mis-match on the config file.

lunatolun commented 7 years ago

@bryanlimy It is the same for me but I can't redeploy with v0.97 again after I try v0.98. I will try a fresh install soon. With v0.97 the chips and some select fields lose the design but thats not really a major issue/easy CSS copy-paste fix

lunatolun commented 7 years ago

Fresh install on Ubuntu 14.04.5 x64, Dogfalo/Materialize v0.97 works like a charm, including SSL.

jetlej commented 7 years ago

I'm getting that error again when trying to setup + deploy to a new server with Ubuntu 14.04.5 x64

Started TaskList: Start Meteor
[159.203.87.133] - Start Meteor
[159.203.87.133] x Start Meteor: FAILED

    -----------------------------------STDERR-----------------------------------
    Error response from daemon: No such container: spidermonkey
    Error response from daemon: No such container: spidermonkey-frontend
    Error response from daemon: No such container: spidermonkey-nginx-letsencrypt
    Error response from daemon: No such container: spidermonkey-nginx-proxy
    Error response from daemon: manifest for abernix/meteord:base not found
    Unable to find image 'abernix/meteord:base' locally
    docker: Error response from daemon: manifest for abernix/meteord:base not found.
    See 'docker run --help'.
    -----------------------------------STDOUT-----------------------------------
    Removed spidermonkey-frontend
    Removed spidermonkey-nginx-letsencrypt
    Removed spidermonkey-nginx-proxy
    Pulled abernix/meteord:base
    ----------------------------------------------------------------------------
zodern commented 7 years ago

Docker currently has a "Full Service Disruption" http://status.docker.com/

zodern commented 7 years ago

@jetlej it should work now.

zodern commented 7 years ago

DeprecationWarning: Unhandled promise rejections are deprecated.

In 1.2.4, you should no longer see this.