||<
><>|| == Summary == My name is James Hunt, and between 2010-10-25 and 2015-06-11, I worked for Canonical as a member of the FoundationsTeam working on [[Upstart]] and other early-boot and plumbing technologies. == Info == * https://launchpad.net/~jamesodhunt/ == Specs == * [[FoundationsTeam/Specs/MaverickFinishUpstart]] * [[FoundationsTeam/Specs/QuantalUpstartStatefulReexec]] * [[FoundationsTeam/Specs/RaringUpstartUserSessions]] == Contributions == === Utopic (18/04/2014-23/10/2014) === * Upstart * Landed cgroup support upstream. Overall, adding cgroup support was a huge project since it required the core of Upstart to be rewritten to ensure the cgroup manager (`cgmanager`) on which it now depends could not stall or block upstart. === Trusty (18/10/2013-17/04/2014) === * Upstart * Developing cgroup support (see [[http://upstart.ubuntu.com/wiki/Cgroup]]). === Saucy (01/05/2013-17/10/2013) === * Upstart * Wrote `upstart-local-bridge`. * Wrote `upstart-dbus-bridge`. * Part wrote `upstart-dconf-bridge`. * Created `libupstart` library. * Optimised Session Init shutdown (Bug Bug:1227212). * Added ability to unset inherited environment variables. * Wrote a suite of DEP-8 tests for automatic Upstart boot testing. * Created an apport hook to handle both System Init and Session Init issues. * Fixed a bug in apport that stopped core files being collected for Upstart. * Boot * Wrote lp:~jamesodhunt/ubuntu/saucy/sysvinit/log-processes-and-open-files-on-shutdown to help diagnose shutdown issues (not yet merged). * Modified `distro-info` to allow number of days until a milestone to be displayed. === Raring (19/10/2012-24/04/2013) === * Upstart * Landed Stateful re-exec feature (Upstart 1.6.1). * Wrote spec for [[FoundationsTeam/Specs/RaringUpstartUserSessions|Enhanced User Sessions]]. * Wrote `upstart-monitor` GUI/CLI tool. * Wrote `upstart-file-bridge`. * Landed Upstart 1.8. * Misc * Wrote [[https://launchpad.net/utfout|utfout]] utility (in Debian and Ubuntu archives). * Wrote [[https://launchpad.net/procenv|procenv]] utility (in Debian and Ubuntu archives). === Quantal (27/04/2012-18/10/2012) === * Upstart * "stateful re-exec" feature. * Wrote spec for [[FoundationsTeam/Specs/QuantalUpstartStatefulReexec|Stateful Re-exec]]. * Code completed but not landed in Quantal since tests not finished. === Precise (20/10/2011-26/04/2012) === * Upstart * "`console log`" facility allowing job output to be logged (bug Bug:328881) * Default console value of "`log`" so all job output logged by default. (has already found some long-standing bugs in other packages since errors are now visible!) * "`initctl notify-disk-writeable`" facility to allow jobs *ending* before the disk becomes writeable to be logged (this even works for jobs which "``start on startup``"). * User job logging (totally different design to system job logging for performance and security reasons. Not yet available). * Enhanced Upstart test framework in NIH library. * [[PrecisePangolin/ReleaseNotes/TechnicalOverviewUpstart|Detailed Upstart Release Notes]] covering Oneiric->Precise and Lucid->Precise upgrades. === Oneiric (05/05/2011-13/10/2011) === * Made significant progress on: * https://blueprints.launchpad.net/ubuntu/+spec/foundations-o-upstart-for-admins/ * Bug Bug:328881: implementation of Job logging for Upstart (complicated by need to support user jobs). === Natty (25/10/2010-28/04/2011) === * Upstart * Added {{{Debug}}} stanza (not documented). * Added [[http://manpages.ubuntu.com/manpages/natty/en/man5/init.5.html|Manual]] stanza. * Added [[http://upstart.at/2011/03/11/override-files-in-ubuntu-natty|Override File support]]. * Wrote [[http://bazaar.launchpad.net/~upstart-devel/upstart/trunk/view/head:/contrib/bash_completion/upstart|Upstart bash-completion script]]. * Implemented [[http://upstart.at/2011/03/25/visualisation-of-jobs-and-events-in-ubuntu-natty/|initctl show-config]] and [[http://upstart.at/2011/03/16/checking-jobs-and-events-in-ubuntu-natty/|initctl check-config]] commands (see [[http://manpages.ubuntu.com/manpages/en/man8/initctl.8.html|man page]]. * Wrote [[http://manpages.ubuntu.com/manpages/en/man8/init-checkconf.8.html|init-checkconf(8)]]. * Wrote [[http://manpages.ubuntu.com/manpages/en/man8/initctl2dot.8.html|initctl2dot(8)]]. * Wrote comprehensive [[http://manpages.ubuntu.com/manpages/en/man7/upstart-events.html|upstart-events(7)]] manual page. * Improved unit/functional tests by adding ability to run "{{{init}}}" and "{{{initctl}}}" directly. * Co-authored the "Upstart Cookbook" (currently Draft): * http://upstart.ubuntu.com/cookbook/ * Byobu * Wrote [[http://bazaar.launchpad.net/~kirkland/byobu/trunk/view/head:/usr/lib/byobu/time_binary|/usr/lib/byobu/time_binary]]. * Wrote [[http://bazaar.launchpad.net/~kirkland/byobu/trunk/view/head:/usr/bin/byobu-ulevel|/usr/bin/byobu-ulevel]]. * Wrote [[http://bazaar.launchpad.net/~kirkland/byobu/trunk/view/head:/usr/bin/byobu-ugraph|/usr/bin/byobu-ugraph]]. * Miscellaneous * Wrote [[Plymouth]] wiki page. * Wrote [[DistributedDevelopment/Documentation/GettingTheSource|Section 0 of UDD GettingTheSource page]]. * Wrote [[http://bazaar.launchpad.net/~jamesodhunt/+junk/clone/files|clone tool]] (similar to [[http://manpages.ubuntu.com/manpages/natty/en/man1/unshare.1.html|unshare(1)]]). === Significant Bugs === * Bug Bug:876626: A nasty security bug caused by a small behavioural change (which itself had been introduced to make the boot more robust). * Bug Bug:553745: The infamous plymouth SIGSEGV bug had been open for over 2 years and took a significant amount of effort to identify the fix. With 270 duplicates, it even put launchpad under strain: if the main bug links hangs/fails (due to all those duplicates (Bug Bug:839141)), try [[https://bugs.launchpad.net/ubuntu/+source/plymouth/+bug/553745/+text|the text view]]. * Bug Bug:771372: Required taking a holistic approach and seeing the real problem, not just patching the very particular problem reported. * Bug Bug:829980: Required tracing the problem through Upstart's udev bridge, D-Bus, udev and the kernel. Identified fact that udev is not fully specified (precise format of data is not defined). * Bug Bug:912558: Worked closely with [[davewalker|Daviey]] and community members on this "Critical" bug to identify the problem (rather a bizarre one which proved difficult to track down!) and find a fix. * Bug Bug:1060249: One of those awkward "multiple failure" bugs that can be tricky to track down. [[https://bugs.launchpad.net/ubuntu/+source/debconf/+bug/1060249/comments/15|Comment #15]] explains the problem and solution succinctly. * Bug Bug:1235649: Critical Saucy release bug. Nominally appeared to be a memory leak in Upstart. But extensive debugging proved that it was not an Upstart bug. In fact, the issue was caused by a combination of a kernel bug on particular Touch hardware (Bug Bug:1234743) coupled with a bug in the way Unity was registering a D-Bus connection with Upstart coupled to libdbus caching all unprocessed client signals. == Applications == * [[JamesHunt/PPUApplication|PPU]] == Contact == * mailto:james.hunt@ubuntu.com * freenode irc: `jodh` on `#ubuntu-devel` & `#upstart` ---- CategoryHomepage