Potential upstart bug with overflowing stanzas
Garrett Cooper
yanegomi at gmail.com
Wed Oct 29 00:32:46 GMT 2008
After executing this example multiple times (~10 does the trick), I've
gotten init + libdbus to become unresponsive to a large degree, where
it starts printing out "latency error messages". I've seen this occur
on QEMU/ppc and I haven't been able to replicate the issue on MIPS
(yet). I have however seen the same error message when jamming a lot
of DBUS requests to upstart using our in-house client.
Here's a testcase that seems to sort of fail (I say "sort of" because
init keeps on going, but just doesn't respond in a timely manner)
regularly after repeated iterations with QEMU:
#!/bin/sh
#
# Author: Garrett Cooper
# Description: A testcase for the author stanza which has a tendency
to overflow libdbus's
# message queue after multiple executions and
exhibits issues with low-memory
# emulators where the latency is high enough that
the dbus bindings fire back a
# error message about not being able to connect:
#
#
#
# Email: yanegomi {{__ AT spamfree __}} gmail {{DOT}} com
cd /etc/init/jobs.d
# Generate the testcase generator :P.
cat <<EOP > ba.py
fd=open("author_negative2", "w")
aaaa = ''
for i in range(300000):
aaaa += 'a';
jobfile = """console output
author %s
script
# Reference to monty python and the holy grail ;).
echo 'I feel happy!'
sleep 12345
end script
""" % aaaa
fd.write(jobfile)
fd.close()
EOP
python ba.py
initctl reload
initctl start author_negative2
sleep 1
initctl status author_negative2
ps ux | grep -q 12345
initctl stop author_negative2
rm ba.py author_negative2
More information about the upstart-devel
mailing list