Since the re-exec makes the memory drop down, this sounds like an issue similar to bug 1235649 - a rogue client is connecting to upstart but without using a main loop, or not registering the required NIH main loop callbacks to allow libdbus linked into Upstart to flush the messages it is attempting to send to the client.
If so, fwics this is not a bug with Upstart, but a limitation of D-Bus not allowing the D-Bus server to determine if the client is "badly behaved" and just discard any D-Bus replies the server is expected to send to the client. The only correct behaviour for D-Bus if it cannot know if the client is badly behaved is to keep caching more and more reply messages until the client attempts to receive these reply messages.
Since the re-exec makes the memory drop down, this sounds like an issue similar to bug 1235649 - a rogue client is connecting to upstart but without using a main loop, or not registering the required NIH main loop callbacks to allow libdbus linked into Upstart to flush the messages it is attempting to send to the client.
See: https:/ /bugs.launchpad .net/ubuntu/ +source/ upstart/ +bug/1235649/ comments/ 48
If so, fwics this is not a bug with Upstart, but a limitation of D-Bus not allowing the D-Bus server to determine if the client is "badly behaved" and just discard any D-Bus replies the server is expected to send to the client. The only correct behaviour for D-Bus if it cannot know if the client is badly behaved is to keep caching more and more reply messages until the client attempts to receive these reply messages.