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

-- 
upstart-devel mailing list
upstart-devel@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/upstart-devel

Reply via email to