[Systems] turtlejs server acting up

Bernie Innocenti bernie at codewiz.org
Sun Apr 5 18:06:30 EDT 2015


Hey Tincho!

Sam noticed an sh process eating CPU on sunjammer for days:


http://munin.sugarlabs.org/static/dynazoom.html?cgiurl_graph=/munin-cgi/munin-cgi-graph&plugin_name=sugarlabs.org/sunjammer.sugarlabs.org/cpu&size_x=800&size_y=400&start_epoch=1393709726&stop_epoch=1428269726

I looked into it and found that it was part of turtlejs. The process was
repeatedly statting /var/mail/www-data:

wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WSTOPPED, NULL) = 1959
ioctl(10, TIOCSPGRP, [25587])           = -1 ENOTTY (Inappropriate ioctl
for device)
write(2, "sh: ", 4)                     = -1 EIO (Input/output error)
write(2, "Cannot set tty process group (In"..., 61) = -1 EIO
(Input/output error)
write(2, "\n", 1)                       = -1 EIO (Input/output error)
wait4(-1, 0x7fff8b9a2c6c, WNOHANG|WSTOPPED, NULL) = -1 ECHILD (No child
processes)
write(2, "[1] + Done                      "..., 100) = -1 EIO
(Input/output error)
write(2, "\n", 1)                       = -1 EIO (Input/output error)
stat("/var/mail/www-data", 0x7fff8b9a2c20) = -1 ENOENT (No such file or
directory)
pipe([3, 4])                            = 0
clone(child_stack=0,
flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,
child_tidptr=0x7f66c56069d0) = 1960
close(4)                                = 0
read(3, "\\[\33[1;31m\\]2!\\[\33[0m\\]\n", 128) = 22
read(3, "", 128)                        = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
close(3)                                = 0


After some experimentation, I ended up restarting it with the
initscript. However:

1. It might happen again. Any idea how to fix this?

2. '/etc/init.d/turtlejs stop' doesn't do anything, and there was no pid
file

3. Can we make Apache spawn and manage a single Python interpreter per
connection? Long-lived servers have the nasty tendency to leak memory,
get stuck or crash. Not to mention the security and scalability
implications o sharing a single process among multiple users. With WSGI
+ FCGI, Apache should be able to start your app on demand and efficiently.

-- 
 _ // Bernie Innocenti
 \X/  http://codewiz.org



More information about the Systems mailing list