JamesHunt
3175
Comment:
|
← Revision 29 as of 2015-06-11 18:58:11 ⇥
7711
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
||<tablestyle="float:right; font-size: 0.9em; width:40%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;"><<BR>><<TableOfContents(2)>>|| |
|
Line 3: | Line 5: |
My name is James Hunt, and I work for Canonical as a member of the FoundationsTeam working on [[Upstart]] and other early-boot and plumbing technologies. | 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. |
Line 12: | Line 14: |
* [[FoundationsTeam/Specs/QuantalUpstartStatefulReexec]] * [[FoundationsTeam/Specs/RaringUpstartUserSessions]] |
|
Line 15: | Line 19: |
=== Precise === | === Utopic (18/04/2014-23/10/2014) === |
Line 18: | Line 22: |
* "``console log``" facility allowing job output to be logged (bug Bug:328881) | * Landed cgroup support upstream. |
Line 20: | Line 24: |
=== Oneiric === | 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) === |
Line 26: | Line 86: |
=== Natty === | === Natty (25/10/2010-28/04/2011) === |
Line 51: | Line 111: |
* 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: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]] |
Contents |
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
Specs
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.
- Landed cgroup support upstream.
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 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).
- Wrote lp:~jamesodhunt/ubuntu/saucy/sysvinit/log-processes-and-open-files-on-shutdown
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 Enhanced User Sessions.
Wrote upstart-monitor GUI/CLI tool.
Wrote upstart-file-bridge.
- Landed Upstart 1.8.
- Misc
Quantal (27/04/2012-18/10/2012)
- Upstart
- "stateful re-exec" feature.
Wrote spec for Stateful Re-exec.
- Code completed but not landed in Quantal since tests not finished.
- "stateful re-exec" feature.
Precise (20/10/2011-26/04/2012)
- Upstart
"console log" facility allowing job output to be logged (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.
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 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 Manual stanza.
Added Override File support.
Implemented initctl show-config and initctl check-config commands (see man page.
Wrote init-checkconf(8).
Wrote initctl2dot(8).
Wrote comprehensive 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):
- Byobu
Wrote /usr/lib/byobu/time_binary.
Wrote /usr/bin/byobu-ulevel.
Wrote /usr/bin/byobu-ugraph.
- Miscellaneous
Wrote Plymouth wiki page.
Wrote clone tool (similar to unshare(1)).
Significant Bugs
Bug 876626: A nasty security bug caused by a small behavioural change (which itself had been introduced to make the boot more robust).
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 839141)), try the text view.
Bug 771372: Required taking a holistic approach and seeing the real problem, not just patching the very particular problem reported.
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 912558: Worked closely with 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 1060249: One of those awkward "multiple failure" bugs that can be tricky to track down. Comment #15 explains the problem and solution succinctly.
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 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
Contact
freenode irc: jodh on #ubuntu-devel & #upstart
JamesHunt (last edited 2015-06-11 18:58:11 by host-92-22-81-227)