Features/Upstart0.6.0

From FedoraProject

< Features(Difference between revisions)
Jump to: navigation, search
(Scope)
m (Current status)
 
(46 intermediate revisions by 4 users not shown)
Line 1: Line 1:
= Upstart 0.6.0 =
+
= Upstart 0.6 =
 
<!-- The name of your feature -->
 
<!-- The name of your feature -->
  
Line 5: Line 5:
 
<!-- A sentence or two summarizing what this feature is and what it will do.  This information is used for the overall feature summary page for each release. -->
 
<!-- A sentence or two summarizing what this feature is and what it will do.  This information is used for the overall feature summary page for each release. -->
  
Fedora currently uses Upstart 0.3.11. We would like to move to the 0.6 series, which introduces a few changes to the way Upstart works and is a stepping stone to the more radical 1.0 release due in October. This release is expected to be forward compatible, and also cures some stability problems.
+
Fedora currently uses Upstart 0.3.11. We would like to move to the 0.6 series, which is the currently maintained upstream release. It introduces a few changes to the way Upstart works and is a stepping stone to the more radical 1.0 release. This release is expected to be forward compatible, and also cures some stability problems.
  
 
This will also be the first release of Upstart that Fedora has carried which communicates via DBus.
 
This will also be the first release of Upstart that Fedora has carried which communicates via DBus.
Line 21: Line 21:
 
<!-- Include you email address that you can be reached should people want to contact you about helping with your feature, status is requested, or  technical issues need to be resolved-->
 
<!-- Include you email address that you can be reached should people want to contact you about helping with your feature, status is requested, or  technical issues need to be resolved-->
 
* email: <cdahlin@redhat.com>
 
* email: <cdahlin@redhat.com>
 +
 +
* Name: [[User:notting| Bill Nottingham]]
 +
* email: <notting@redhat.com>
  
 
== Current status ==
 
== Current status ==
* Targeted release: [[Releases/{{FedoraVersion||next}} | {{FedoraVersion|long|next}} ]]
+
* Targeted release: Fedora 13
* Last updated: 2009-07-13
+
* Last updated: 2010-03-22
* Percentage of completion: 01%
+
* Percentage of completion: 100%
  
 
<!-- CHANGE THE "FedoraVersion" TEMPLATES ABOVE TO PLAIN NUMBERS WHEN YOU COMPLETE YOUR PAGE. -->
 
<!-- CHANGE THE "FedoraVersion" TEMPLATES ABOVE TO PLAIN NUMBERS WHEN YOU COMPLETE YOUR PAGE. -->
Line 43: Line 46:
 
* Supervision and respawning of daemons which separate from their parent process;
 
* Supervision and respawning of daemons which separate from their parent process;
 
* Communication with the init daemon over D-Bus.
 
* Communication with the init daemon over D-Bus.
 
  
 
== Benefit to Fedora ==
 
== Benefit to Fedora ==
Line 52: Line 54:
 
<!-- What work do the developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
 
<!-- What work do the developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
  
We've carried a patch so that Upstart does not forget its state when it is re-executed. Its got some issues, but it has fixed one or two severe issues. A new version of this has to be written for 0.6
+
We've carried a patch so that Upstart does not forget its state when it is re-executed. Its got some issues, but it has fixed one or two severe issues. A new version of this has to be written for 0.6; alternatively, we need to change how we re-execute init. We have done the latter for now.
  
Job definitions are now in a new location (/etc/init rather than /etc/events.d) and the format has changed somewhat. We'll need to update our own init scripts to account for this.
+
Job definitions are now in a new location (/etc/init rather than /etc/events.d) and the format has changed somewhat, see [http://bazaar.launchpad.net/%7Escott/upstart/trunk/download/head%3A/init.5-20090709132119-ds8r2vlndlbdrwh7-1/init.5 init(5)]. We'll need to update our own init scripts to account for this. See [http://git.fedorahosted.org/git/?p=initscripts.git;a=log;h=refs/heads/upstart-0.6.0-branch the upstart 0.6.0 branch of initscripts].
  
DBus needs to be at least 1.2.16 to work with Upstart.
+
The list of packages that ship job definitions is:
 +
 
 +
* initscripts - '''DONE'''
 +
* upstart - '''DONE'''
 +
* vpnc - '''DONE'''
 +
* ConsoleKit - '''DONE'''
 +
* clamav - '''DONE'''
 +
* dhcp-forwarder - '''DONE'''
 +
* hdapsd - '''DONE'''
 +
* ip-sentinel - '''DONE'''
 +
* milter-greylist - '''DONE'''
 +
* olpc-utils - '''DONE'''
 +
* readahead - '''DONE'''
 +
* tor - '''DONE'''
 +
 
 +
Non-root users get strange output when they run initctl which tries to get information from system dbus - '''fixed in upstart-0.6.3-7'''
 +
<code>
 +
$ initctl list
 +
initctl: Name "com.ubuntu.Upstart" does not exist
 +
</code>
 +
 
 +
{{admon/warning|Do not migrate older scripts|We still do not recommend migrating older SysV init scripts to upstart.}}
  
 
== How To Test ==
 
== How To Test ==
Line 72: Line 95:
 
3. What are the expected results of those actions?
 
3. What are the expected results of those actions?
 
-->
 
-->
 +
=== Install updates ===
 +
* Update upstart and initscripts packages: [http://notting.fedorapeople.org/upstart0.6/ repo here]
 +
** rename (or merge your changes) all new /etc/init/*.conf.rpmnew files to /etc/init/*.conf
 +
* Reboot
 +
<code>
 +
# kill 1
 +
# reboot
 +
</code>
  
 +
<code>kill 1</code> is needed if you upgrade from upstart-0.3.x. Control interface has been changed in upstart-0.6 so you won't be able to control old init with new utilities.
 +
 +
=== Test it===
 
* Bring each upstart job up and down and verify that the job is started and cleaned up correctly and that initctl list reflects its state.
 
* Bring each upstart job up and down and verify that the job is started and cleaned up correctly and that initctl list reflects its state.
 
* Move from runlevel s to 1, 3, and 5 and back again and verify that the system ends up in the correct state each time.
 
* Move from runlevel s to 1, 3, and 5 and back again and verify that the system ends up in the correct state each time.
Line 83: Line 117:
 
== Dependencies ==
 
== Dependencies ==
 
<!-- What other packages (RPMs) depend on this package?  Are there changes outside the developers' control on which completion of this feature depends?  In other words, completion of another feature owned by someone else and might cause you to not be able to finish on time or that you would need to coordinate?  Other upstream projects like the kernel (if this is not a kernel feature)? -->
 
<!-- What other packages (RPMs) depend on this package?  Are there changes outside the developers' control on which completion of this feature depends?  In other words, completion of another feature owned by someone else and might cause you to not be able to finish on time or that you would need to coordinate?  Other upstream projects like the kernel (if this is not a kernel feature)? -->
* dbus >= 1.2.15 - needed patch pending in git HEAD branch, waiting for release 1.2.16. Temporarily accessible via http://plautrba.fedorapeople.org/dbus
 
 
* init: transfer state across re-exec - https://bugs.launchpad.net/upstart/+bug/348455
 
* init: transfer state across re-exec - https://bugs.launchpad.net/upstart/+bug/348455
* initscripts: changes to support new job format. Also move job definitions to new location.
+
* initscripts: changes to support new job format. Also move job definitions to new location
  
 
== Contingency Plan ==
 
== Contingency Plan ==
Line 93: Line 126:
 
== Documentation ==
 
== Documentation ==
 
<!-- Is there upstream documentation on this feature, or notes you have written yourself?  Link to that material here so other interested developers can get involved. -->
 
<!-- Is there upstream documentation on this feature, or notes you have written yourself?  Link to that material here so other interested developers can get involved. -->
*
+
Nothing needed from Fedora specifically, but the new Upstart release does come with a whole new set of manpages.
  
 
== Release Notes ==
 
== Release Notes ==
 
<!-- The Fedora Release Notes inform end-users about what is new in the release.  Examples of past release notes are here: http://docs.fedoraproject.org/release-notes/ -->
 
<!-- The Fedora Release Notes inform end-users about what is new in the release.  Examples of past release notes are here: http://docs.fedoraproject.org/release-notes/ -->
 
<!-- The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the documentation team and shipped with the release. -->
 
<!-- The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the documentation team and shipped with the release. -->
*
+
"Upstart, Fedora's service management and system initialization daemon, has been upgraded to 0.6.0. If you have been using custom Upstart jobs, they will not work until moved to the new location in /etc/init and ported to the new format."
  
 
== Comments and Discussion ==
 
== Comments and Discussion ==
 
* See [[Talk:Features/Upstart0.6.0]]  <!-- This adds a link to the "discussion" tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page -->
 
* See [[Talk:Features/Upstart0.6.0]]  <!-- This adds a link to the "discussion" tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page -->
  
 
+
[[Category:FeatureAcceptedF13]]
[[Category:FeaturePageIncomplete]]
+
 
<!-- When your feature page is completed and ready for review -->
 
<!-- When your feature page is completed and ready for review -->
 
<!-- remove Category:FeaturePageIncomplete and change it to Category:FeatureReadyForWrangler -->
 
<!-- remove Category:FeaturePageIncomplete and change it to Category:FeatureReadyForWrangler -->

Latest revision as of 10:56, 8 October 2010

Contents

[edit] Upstart 0.6

[edit] Summary

Fedora currently uses Upstart 0.3.11. We would like to move to the 0.6 series, which is the currently maintained upstream release. It introduces a few changes to the way Upstart works and is a stepping stone to the more radical 1.0 release. This release is expected to be forward compatible, and also cures some stability problems.

This will also be the first release of Upstart that Fedora has carried which communicates via DBus.

[edit] Owner

  • email: <plautrba@redhat.com>
  • email: <cdahlin@redhat.com>

[edit] Current status

  • Targeted release: Fedora 13
  • Last updated: 2010-03-22
  • Percentage of completion: 100%


[edit] Detailed Description

Upstart is an event-based replacement for the /sbin/init daemon which handles starting of tasks and services during boot, stopping them during shutdown and supervising them while the system is running.

Feature highlights:

  • Tasks and Services are started and stopped by events;
  • Events are generated as tasks and services are started and stopped;
  • Events may be received from any other process on the system;
  • Services may be respawned if they die unexpectedly;
  • Supervision and respawning of daemons which separate from their parent process;
  • Communication with the init daemon over D-Bus.

[edit] Benefit to Fedora

The latest upstream Upstart version is 0.6.0 and upstream is pushing to have all the major distros move to the 0.6 series. The new release fixes a lot of bugs, strengthens some of the code patterns against future bugs, and introduces a job format that will continue to be supported through 1.0.

[edit] Scope

We've carried a patch so that Upstart does not forget its state when it is re-executed. Its got some issues, but it has fixed one or two severe issues. A new version of this has to be written for 0.6; alternatively, we need to change how we re-execute init. We have done the latter for now.

Job definitions are now in a new location (/etc/init rather than /etc/events.d) and the format has changed somewhat, see init(5). We'll need to update our own init scripts to account for this. See the upstart 0.6.0 branch of initscripts.

The list of packages that ship job definitions is:

  • initscripts - DONE
  • upstart - DONE
  • vpnc - DONE
  • ConsoleKit - DONE
  • clamav - DONE
  • dhcp-forwarder - DONE
  • hdapsd - DONE
  • ip-sentinel - DONE
  • milter-greylist - DONE
  • olpc-utils - DONE
  • readahead - DONE
  • tor - DONE

Non-root users get strange output when they run initctl which tries to get information from system dbus - fixed in upstart-0.6.3-7

$ initctl list
initctl: Name "com.ubuntu.Upstart" does not exist

Warning (medium size).png
Do not migrate older scripts
We still do not recommend migrating older SysV init scripts to upstart.

[edit] How To Test

[edit] Install updates

  • Update upstart and initscripts packages: repo here
    • rename (or merge your changes) all new /etc/init/*.conf.rpmnew files to /etc/init/*.conf
  • Reboot

# kill 1
# reboot

kill 1 is needed if you upgrade from upstart-0.3.x. Control interface has been changed in upstart-0.6 so you won't be able to control old init with new utilities.

[edit] Test it

  • Bring each upstart job up and down and verify that the job is started and cleaned up correctly and that initctl list reflects its state.
  • Move from runlevel s to 1, 3, and 5 and back again and verify that the system ends up in the correct state each time.
  • Re-exec init and verify that jobs that were running stay running according to initctl list.

[edit] User Experience

Possibly some changes in command interfaces like initctl, but for most users noticing the change would be a Bad Thing.

[edit] Dependencies

[edit] Contingency Plan

Just don't ship it :) 0.3 should be relatively supported for some time given its presence in Ubuntu LTS.

[edit] Documentation

Nothing needed from Fedora specifically, but the new Upstart release does come with a whole new set of manpages.

[edit] Release Notes

"Upstart, Fedora's service management and system initialization daemon, has been upgraded to 0.6.0. If you have been using custom Upstart jobs, they will not work until moved to the new location in /etc/init and ported to the new format."

[edit] Comments and Discussion