First attempt at tutorial app crashes on execution

Hi following tutorial and on a clean install of centos 7 minimal with virtualmin and only configuration on server being iptables firewall setup, I have done clean install to make sure I can use meteor correctly from start however get following error when running myapp, in tutorial. /home/tomsudo/myapp/ then ran meteor command locally as suggested but it crashes as follows can someone help I just don’t understand whats wrong!!

[tomsudo@server myapp]$ meteor
[[[[[ ~/myapp ]]]]]

=> Started proxy.
=> Started MongoDB.

/home/tomsudo/.meteor/packages/meteor-  tool/.1.1.10.ki0ccv++os.linux.x86_64+web.browser+web.cordova/mt-  os.linux.x86_64/dev_bundle/lib/node_modules/fibers/future.js:245
                                            throw(ex);
                                                  ^
Error: spawn ENOMEM
at errnoException (child_process.js:1011:11)
at ChildProcess.spawn (child_process.js:958:11)
at Object.exports.spawn (child_process.js:746:9)
at [object Object]._.extend._spawn (/tools/runners/run-app.js:255:31)
at [object Object]._.extend.start (/tools/runners/run-app.js:85:22)
at [object Object]._.extend._runOnce (/tools/runners/run-app.js:716:16)
at [object Object]._.extend._fiber (/tools/runners/run-app.js:858:28)
at /tools/runners/run-app.js:396:12
[tomsudo@server myapp]$

try this SO answer http://stackoverflow.com/questions/26193654/node-js-catch-enomem-error-thrown-after-spawn, its specific to vagrant, but it might give you some starter

Hi,

Thanks for your help, don’t think its actually running out of memory,

total used free shared buff/cache available
Mem: 2048 70 594 39 1382 1862
Swap: 2048 165 1883
[tomsudo@server ~]$

and swap enabled so not sure how to proceed,

similar problem reported by another user,

don’t see how it can be used 2 gig of memory plus 2 gig or swap to run a simple app with very little going on in it?

top - 09:51:09 up 5:43, 4 users, load average: 0.31, 0.17, 0.07
Tasks: 58 total, 1 running, 56 sleeping, 0 stopped, 1 zombie
%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 2097152 total, 221392 free, 62948 used, 1812812 buff/cache
KiB Swap: 2097152 total, 1920004 free, 177148 used. 1913774 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
8216 mailman 20 0 127424 5088 4188 S 0.3 0.2 0:00.90 python
17605 tomsudo 20 0 835800 37724 10788 S 0.3 1.8 0:00.83 mongod
1 root 20 0 140180 3736 2448 S 0.0 0.2 0:02.48 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd/72+
3 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khelper/727+
75 root 20 0 56128 5352 5144 S 0.0 0.3 0:00.76 systemd-jou+
88 root 20 0 40596 1200 1196 S 0.0 0.1 0:00.01 systemd-ude+
126 root 20 0 279644 3064 2780 S 0.0 0.1 0:00.24 rsyslogd
129 dbus 20 0 26380 1468 1268 S 0.0 0.1 0:00.63 dbus-daemon
131 root 20 0 34636 1480 1332 S 0.0 0.1 0:00.34 systemd-log+
139 root 20 0 22756 1288 900 S 0.0 0.1 0:00.10 crond
140 root 20 0 6376 684 680 S 0.0 0.0 0:00.00 agetty
141 root 20 0 6376 684 680 S 0.0 0.0 0:00.00 agetty
281 root 20 0 71264 320 316 S 0.0 0.0 0:00.00 saslauthd
282 root 20 0 71264 48 44 S 0.0 0.0 0:00.00 saslauthd
390 root 20 0 27128 456 452 S 0.0 0.0 0:00.00 xinetd
410 root 20 0 82460 2840 2752 S 0.0 0.1 0:00.04 sshd

And if I need more ram etc, what are specs for meteor, running 64 bit centos, 2 gb of ram, 50gb of space, 2 gb swap memory etc,

no point in randomly upgrading without any confirmed required resources,

funnily enough when I try to access forum post about required resources on meteor forums it crashes due to heavy internet traffic so it must be popular topic!

considering I plan on using many deployed web apps if meteor uses 2 slices of a VPS for only 1 elementary web app what will I need to run more than one web app on a site? a whole dedicated server? this seems to preclude any normal website users from using meteor at ALL, can someone feedback on this please,

my system resources above peak at 1.8% transiently and pretty much run at zero whole time so for ENOMEM (if its really that) is using 4 gb of RAM for tutorial app

I doubt its the size of you VPS, min for meteor is 1 core, 512mb RAM ( i currently have 3 smallish apps running a free tier EC2, for example)

Is the meteor project you are running a bog standard? So say you’re followinga tutorial, does it start with install meteor and create new app?

Hi,

Thanks for eliminating that I have found similar thing at SO,

Appreciate the feedback about minimum requirements, that seems pretty reasonable,

Yes that’s exactly right I just followed instructions and created new app then executed it when in /myapp with command # meteor

Thanks for help I’ll try link the discussion not sure how useful this is?

Meteor crashes is any file over 1.7gb in /public or /private folder

That’s why asked about the fresh app. I knew about that issue, but it seems very unlikely in your case.

I don’t have any further suggestions for you, unfortunatley. Only that ENOMEM is OS message to NodeJS, which is throwing the error and dying fatally so it can release resources. Unlikely to be the wrong message, but not obvious why it should be considering your environemnt etc.

Best of luck.

Thanks for your help, have raised it on SO and GitHub but this error has been happening since 2013 on researching it so not optimistic that meteor will fix it,

All the best

Ok,

So I have done some research and there seems to be reports of clashes between OpenVZ and nodejs, so I have reinstalled with KVM and Centos,

Good news is that now meteor RUNS! Which is great,

Only problem now is that it will not initialise more than once, would I be correct in saying that it is a service like httpd or apache that runs in background in project?

[root@centos7 myapp]# meteor run
Can't listen on port 3000. Perhaps another Meteor is running?

Running two copies of Meteor in the same application directory
will not work. If something else is using port 3000, you can
specify an alternative port with --port <port>.
[root@centos7 myapp]#

Using netstat -tulpn I can confirm that node is indeed listening on port 3000, see image, so my problem now is that I cannot access localhost:3000 in browser, or confirm that meteor is running? Any suggestions?

Thanks if anyone can advise, nearly got it working…

Right I can confirm its a clash with nodejs running on port 3000, I’ve got it running reliably using meteor --port 4000, so its def node blocking it, now just need to figure out how to change default to port 4000 and how to access localhost on my web server which is proving confusing…

Thanks

How are you killling it?

seems like the node on 3000 is the previous run of Meteor. Have you got a firewall over the port?

also don’t change the default but write a small bash script that will allow you to run ./meteor.sh 5000 or what ever using meteor --port $1

Hi,

Thanks again! Ok so following your advice I had a look at it, so I was cancelling using Ctrl+C to exit meteor run, which is fine except I think you’re right node was still running on 3000 for some reason, must have been some error…

So I did # kill -9 28663
28663 = PID No,

This stopped it and can now run meteor on port 3000 with only the # meteor command, great stuff,

Just need to figure out how to point my browser successfully to port on my server now…

Tried opening port in iptables but hasn’t made any difference, tried two different browsers with http://(myipaddress):3000 and its just timing out in browser, I’ve searched web but all guides are for people who are running home test servers not dev servers, this is probably the easiest part of the problem so hopefully will find it with a little more googling.

Thanks for your help its been invaluable!

you will need ROOT_URL

Thank you,

Was successful in getting meteor running at my url and port 3000, with root_url, interestingly node keeps taking over port when I end meteor process and ‘listening’ so not sure why? Have to keep killing node process after shutting down meteor with ctrl+c,

Also still can’t access that port from my browser, tried opening it explicitly in iptables but no use so will keep googling and eventually will make a breakthrough, not quite as easy as it describes in the tutorial this…

meteor runs on node.js on 3000, when you shut it down it should kill the node process… investigate why its not

also what tutorial are you following?

your experience is not normal for Meteor first time…

Sure I understand just don’t know why it keeps running after breaking out of process, will investigate further,

The tutorial is the one from the website, I’m almost at 3rd sentence,

https://www.meteor.com/tutorials/blaze/creating-an-app

So I gather, once I get it up in browser I can start lessons but till then am just stuck trying to get it working, don’t know why its so difficult it looks pretty straightforward…

are you using firewalld ?

$ sudo firewall-cmd --zone=public --add-port=3000/tcp --permanent
$ sudo firewall-cmd --reload
1 Like

Hi,

Ha I feel very stupid now yes I am but didn’t know RHEL had included that protection, instead of iptables, as an upgrade from iptables, it looks like ufw…Brilliant and easy to use…

so followed your advice and success!! in action,

see image below…

Can’t thank you enough for your advice and help really do appreciate it!

1 Like

I am right now learning Meteor js and also uploading tutorial for that on this channel :
Meteor js

Learn with me and solve the queries, it would be great!

It is good if you are beginner and if you are a developer you can comment your suggestions.:slight_smile:

Thanks.