Activity log for bug #1455260

Date Who What changed Old value New value Message
2015-05-14 22:47:18 Curtis Hovey bug added bug
2015-05-14 22:47:32 Curtis Hovey bug task added juju-quickstart
2015-05-14 22:47:43 Curtis Hovey bug task added juju-deployer
2015-05-14 22:48:59 Curtis Hovey bug task added cloud-installer
2015-05-14 22:49:31 Curtis Hovey nominated for series juju-core/1.24
2015-05-14 22:49:31 Curtis Hovey bug task added juju-core/1.24
2015-05-14 22:49:41 Curtis Hovey juju-core/1.24: milestone 1.24.0
2015-05-14 22:49:48 Curtis Hovey juju-core/1.24: status New Triaged
2015-05-14 22:49:52 Curtis Hovey juju-core/1.24: importance Undecided High
2015-05-14 22:54:03 David Britton bug task deleted cloud-installer
2015-05-15 01:42:23 Curtis Hovey description This is a meta bug that describes a problem with many symptoms and many advisable workarounds. Enterprises commonly automate the deployment of services. They can use juju-quickstart, juju-deployer, landscape autopilot, or their own bespoke script to bootstrap an environment and deploy services. It works repeatedly, reliably for many weeks or months, until a new micro version of juju is placed in the streams. The enterprise sees failures in many ways, commonly the deployment fails because the script lost connection to its watcher, or the juju failed to upgrade at the same moment that charms are installing and configuring services. When a juju state-server is bootstrapped one its first actions, is to query streams, and start an upgrade to the highest micro version for its major.minor version. eg, the juju client installed 1.22.1, and the current version in streams is 1.22.3, start upgrading. This upgrade will complete in less than a minute. A savvy script bootstrapping an env would wait for an upgrade to complete because upgrading a single state-server is faster and more reliable that upgrading services too. Enterprises do not like default behaviour however, and their tools were not written to account for this "surprising" behaviour. There are several strategies employed to ensure the state-server is exactly the version that was tested previously: A. Juju CI and a few others set "agent-version: 1.22.1" to ensure the state-server matches the version under test. But many parties do not like this method because environments.yaml must change each time they upgrade to a new juju client (and server). B. Canonical IS and many customers use --upload-tools to force the state-server to be a known version. This however make explicit upgrades VERY unpredictable because the juju-client selects agents based on the localhost's arch, series, and $PATH (which might include development jujus). There are several bugs about failed upgrades, and --upload-tools was a factor. C. The company never uses current juju. They choose to use a version that is not getting updates, like 1.22.x which is not 1.23.x, except that we have delivered updates to their surprise. Juju chooses to implicitly upgrade because it is a way to deliver compatibility fixes. Azure, AWS, and HP have changed their clouds, and we delivered a new micro version of juju a few days later to ensure juju "Just worked". Several changes are needed to ensure enterprises have a reliable and repeatable experience: 1. All API clients must reconnect watchers when they are disconnected. They will be disconnected because of network issues as well as explicit disconnects durin upgrade-juju. The clients need to resume their work. 2.A If juju must upgrade, it needs to prevent clients from starting work until the upgrade is complete, this might mean bootstrap doesn't let go until the state-server is upgraded. 2.B Or juju stops implicit upgrades. No enterprises uses this feature; they work hard to disable it. Juju could instead inform the party that an upgrade is available (as is done for charms). This is a meta bug that describes a problem with many symptoms and many unadvisable workarounds. Enterprises commonly automate the deployment of services. They can use juju-quickstart, juju-deployer, landscape autopilot, or their own bespoke script to bootstrap an environment and deploy services. It works repeatedly, reliably for many weeks or months, until a new micro version of juju is placed in the streams. The enterprise sees failures in many ways, commonly the deployment fails because the script lost connection to its watcher, or the juju failed to upgrade at the same moment that charms are installing and configuring services. When a juju state-server is bootstrapped one its first actions, is to query streams, and start an upgrade to the highest micro version for its major.minor version. eg, the juju client installed 1.22.1, and the current version in streams is 1.22.3, start upgrading. This upgrade will complete in less than a minute. A savvy script bootstrapping an env would wait for an upgrade to complete because upgrading a single state-server is faster and more reliable that upgrading services too. Enterprises do not like default behaviour however, and their tools were not written to account for this "surprising" behaviour. There are several strategies employed to ensure the state-server is exactly the version that was tested previously: A. Juju CI and a few others set "agent-version: 1.22.1" to ensure the state-server matches the version under test. But many parties do not like this method because environments.yaml must change each time they upgrade to a new juju client (and server). B. Canonical IS and many customers use --upload-tools to force the state-server to be a known version. This however make explicit upgrades VERY unpredictable because the juju-client selects agents based on the localhost's arch, series, and $PATH (which might include development jujus). There are several bugs about failed upgrades, and --upload-tools was a factor. C. The company never uses current juju. They choose to use a version that is not getting updates, like 1.22.x which is not 1.23.x, except that we have delivered updates to their surprise. Juju chooses to implicitly upgrade because it is a way to deliver compatibility fixes. Azure, AWS, and HP have changed their clouds, and we delivered a new micro version of juju a few days later to ensure juju "Just worked". Several changes are needed to ensure enterprises have a reliable and repeatable experience: 1. All API clients must reconnect watchers when they are disconnected. They will be disconnected because of network issues as well as explicit disconnects durin upgrade-juju. The clients need to resume their work. 2.A If juju must upgrade, it needs to prevent clients from starting work until the upgrade is complete, this might mean bootstrap doesn't let go until the state-server is upgraded. 2.B Or juju stops implicit upgrades. No enterprises uses this feature; they work hard to disable it. Juju could instead inform the party that an upgrade is available (as is done for charms).
2015-05-15 01:46:18 Curtis Hovey description This is a meta bug that describes a problem with many symptoms and many unadvisable workarounds. Enterprises commonly automate the deployment of services. They can use juju-quickstart, juju-deployer, landscape autopilot, or their own bespoke script to bootstrap an environment and deploy services. It works repeatedly, reliably for many weeks or months, until a new micro version of juju is placed in the streams. The enterprise sees failures in many ways, commonly the deployment fails because the script lost connection to its watcher, or the juju failed to upgrade at the same moment that charms are installing and configuring services. When a juju state-server is bootstrapped one its first actions, is to query streams, and start an upgrade to the highest micro version for its major.minor version. eg, the juju client installed 1.22.1, and the current version in streams is 1.22.3, start upgrading. This upgrade will complete in less than a minute. A savvy script bootstrapping an env would wait for an upgrade to complete because upgrading a single state-server is faster and more reliable that upgrading services too. Enterprises do not like default behaviour however, and their tools were not written to account for this "surprising" behaviour. There are several strategies employed to ensure the state-server is exactly the version that was tested previously: A. Juju CI and a few others set "agent-version: 1.22.1" to ensure the state-server matches the version under test. But many parties do not like this method because environments.yaml must change each time they upgrade to a new juju client (and server). B. Canonical IS and many customers use --upload-tools to force the state-server to be a known version. This however make explicit upgrades VERY unpredictable because the juju-client selects agents based on the localhost's arch, series, and $PATH (which might include development jujus). There are several bugs about failed upgrades, and --upload-tools was a factor. C. The company never uses current juju. They choose to use a version that is not getting updates, like 1.22.x which is not 1.23.x, except that we have delivered updates to their surprise. Juju chooses to implicitly upgrade because it is a way to deliver compatibility fixes. Azure, AWS, and HP have changed their clouds, and we delivered a new micro version of juju a few days later to ensure juju "Just worked". Several changes are needed to ensure enterprises have a reliable and repeatable experience: 1. All API clients must reconnect watchers when they are disconnected. They will be disconnected because of network issues as well as explicit disconnects durin upgrade-juju. The clients need to resume their work. 2.A If juju must upgrade, it needs to prevent clients from starting work until the upgrade is complete, this might mean bootstrap doesn't let go until the state-server is upgraded. 2.B Or juju stops implicit upgrades. No enterprises uses this feature; they work hard to disable it. Juju could instead inform the party that an upgrade is available (as is done for charms). This is a meta bug that describes a problem with many symptoms and many unadvisable workarounds. Enterprises commonly automate the deployment of services. They can use juju-quickstart, juju-deployer, landscape autopilot, or their own bespoke script to bootstrap an environment and deploy services. It works repeatedly, reliably for many weeks or months, until a new micro version of juju is placed in the streams. The enterprise sees failures in many ways, commonly the deployment fails because the script lost connection to its watcher, or the juju failed to upgrade at the same moment that charms are installing and configuring services. When a juju state-server is bootstrapped one its first actions, is to query streams, and start an upgrade to the highest micro version for its major.minor version. eg, the juju client installed 1.22.1, and the current version in streams is 1.22.3, start upgrading. This upgrade will complete in less than a minute. A savvy script bootstrapping an env would wait for an upgrade to complete because upgrading a single state-server is faster and more reliable that upgrading services too. Enterprises do not like default behaviour however, and their tools were not written to account for this "surprising" behaviour. There are several strategies employed to ensure the state-server is exactly the version that was tested previously: A. Juju CI and a few others set "agent-version: 1.22.1" to ensure the state-server matches the version under test. But many parties do not like this method because environments.yaml must change each time they upgrade to a new juju client (and server). B. Canonical IS and many customers use --upload-tools to force the state-server to be a known version. This however makes explicit upgrades VERY unpredictable because the juju-client selects agents based on the localhost's arch, series, and $PATH (which might include development jujus). There are several bugs about failed upgrades, and --upload-tools was a factor. C. The company never uses current juju. They choose to use a version that is not getting updates, like 1.22.x which is not 1.23.x, except that we have delivered updates to their surprise. They are also not getting the benefits of current juju. Juju chooses to implicitly upgrade because it is a way to deliver compatibility fixes. Azure, AWS, and HP have changed their clouds, and we delivered a new micro version of juju a few days later to ensure juju "Just worked". Several changes are needed to ensure enterprises have a reliable and repeatable experience: 1. All API clients must reconnect watchers when they are disconnected. They will be disconnected because of network issues as well as explicit disconnects durin upgrade-juju. The clients need to resume their work. 2.A If juju must upgrade, it needs to prevent clients from starting work until the upgrade is complete, this might mean bootstrap doesn't let go until the state-server is upgraded. 2.B Or juju stops implicit upgrades. No enterprises uses this feature; they work hard to disable it. Juju could instead inform the party that an upgrade is available (as is done for charms).
2015-05-15 11:21:50 Ian Booth juju-core/1.24: assignee Ian Booth (wallyworld)
2015-05-15 11:21:56 Ian Booth juju-core/1.24: milestone 1.24.0 1.24-beta4
2015-05-15 11:32:54 Adam Collard juju-deployer: status New Confirmed
2015-05-15 11:33:17 Adam Collard bug added subscriber Landscape
2015-05-15 14:07:25 David Britton bug task deleted juju-deployer
2015-05-15 14:07:45 David Britton bug task added python-jujuclient
2015-05-15 14:07:53 David Britton python-jujuclient: status New Confirmed
2015-05-19 04:19:03 Ian Booth juju-core/1.24: assignee Ian Booth (wallyworld)
2015-05-19 04:19:14 Ian Booth juju-core/1.24: milestone 1.24-beta4 1.24.0
2015-05-21 13:05:27 Lei Wang bug added subscriber Ray Wang
2015-05-21 13:12:30 Nobuto Murata bug added subscriber Nobuto Murata
2015-05-25 07:56:57 Ian Booth juju-core/1.24: assignee Ian Booth (wallyworld)
2015-05-27 04:35:14 Ian Booth juju-core/1.24: milestone 1.24.0 1.24-beta6
2015-05-27 04:35:20 Ian Booth juju-core/1.24: status Triaged In Progress
2015-05-29 03:56:59 Ian Booth juju-core: assignee Ian Booth (wallyworld)
2015-05-29 03:57:06 Ian Booth juju-core: status Triaged In Progress
2015-05-29 04:02:00 Ian Booth bug task deleted juju-core/1.24
2015-05-31 14:48:00 Ian Booth branch linked lp:~wallyworld/python-jujuclient/retry-on-upgrade
2015-05-31 14:48:29 Ian Booth branch unlinked lp:~wallyworld/python-jujuclient/retry-on-upgrade
2015-06-16 11:52:20 Ian Booth juju-core: status In Progress Fix Committed
2015-08-27 14:22:16 Curtis Hovey juju-core: status Fix Committed Fix Released
2015-10-02 03:47:43 David Britton tags bootstrap ci cloud-installer deployer landscape oil quickstart bootstrap ci cloud-installer deployer kanban-cross-team landscape oil quickstart
2015-10-02 03:49:40 David Britton tags bootstrap ci cloud-installer deployer kanban-cross-team landscape oil quickstart bootstrap ci cloud-installer deployer landscape oil quickstart
2017-05-15 14:00:38 Curtis Hovey removed subscriber Curtis Hovey
2018-07-03 04:38:07 Lei Wang removed subscriber Ray Wang