Invisible prompts in do-release-upgrade
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
ubuntu-release-upgrader (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Trusty |
Fix Released
|
Undecided
|
Unassigned | ||
Utopic |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
[Impact]
Users upgrading from 14.04 and 14.10 via the command line "do-release-
[Test Case]
On an affected system, run 'sudo do-release-upgrade'
When it asks if you want to continue doing this over SSH, the text ends with a blank line. If you press Enter at this point, only then will you get to see the prompt, which was
Continue? [yN]
but by then it's too late and you already chose "no" by pressing Enter.
[Regression Potential]
The patch itself is quite small, just flushing output whenever we prompt the user. Should be safe.
[Original Report]
I'm upgrading an Ubuntu 14.04 LTS system to 14.10 over ssh with 'sudo do-release-
When it asks me if I want to continue doing this over SSH, the text ends with a blank line. If I press Enter at this point, only then I get to see the prompt, which was
Continue? [yN]
but by then it's too late and I already chose "no".
The same thing happens if I restart, go past this prompt (without seeing it), then ask for details about package removals/
I think there's a missing sys.stdout.flush() call somewhere in do-release-upgrade.
ProblemType: Bug
DistroRelease: Ubuntu 14.04
Package: ubuntu-
ProcVersionSign
Uname: Linux 3.13.0-39-generic x86_64
ApportVersion: 2.14.1-0ubuntu3.6
Architecture: amd64
CrashDB: ubuntu
Date: Wed Feb 4 08:16:03 2015
InstallationDate: Installed on 2012-11-02 (823 days ago)
InstallationMedia: Ubuntu 12.04 LTS "Precise Pangolin" - Release amd64 (20120425)
PackageArchitec
SourcePackage: ubuntu-
UpgradeStatus: Upgraded to trusty on 2015-02-04 (0 days ago)
Related branches
- Ubuntu branches: Pending requested
-
Diff: 81663 lines (+14939/-14920)130 files modifiedDistUpgrade/DistUpgradeApport.py (+8/-10)
DistUpgrade/DistUpgradeCache.py (+18/-4)
DistUpgrade/DistUpgradeMain.py (+1/-0)
DistUpgrade/DistUpgradeVersion.py (+1/-1)
DistUpgrade/DistUpgradeView.py (+6/-0)
DistUpgrade/DistUpgradeViewGtk3.py (+18/-9)
DistUpgrade/DistUpgradeViewText.py (+13/-4)
DistUpgrade/build-tarball.sh (+3/-3)
data/mirrors.cfg (+152/-0)
data/removal_blacklist.cfg (+1/-1)
debian/changelog (+64/-0)
po/af.po (+124/-126)
po/am.po (+125/-127)
po/an.po (+126/-128)
po/ar.po (+122/-124)
po/ast.po (+119/-121)
po/az.po (+124/-126)
po/be.po (+125/-127)
po/bg.po (+122/-124)
po/bn.po (+119/-121)
po/bo.po (+122/-124)
po/br.po (+124/-126)
po/bs.po (+119/-121)
po/ca.po (+122/-124)
po/ca@valencia.po (+135/-131)
po/ceb.po (+129/-131)
po/ckb.po (+126/-128)
po/crh.po (+122/-124)
po/cs.po (+122/-124)
po/csb.po (+124/-126)
po/cv.po (+129/-131)
po/cy.po (+127/-129)
po/da.po (+119/-121)
po/de.po (+119/-121)
po/dv.po (+126/-128)
po/el.po (+122/-124)
po/en_AU.po (+153/-155)
po/en_CA.po (+153/-155)
po/en_GB.po (+139/-141)
po/eo.po (+120/-122)
po/es.po (+122/-124)
po/et.po (+125/-127)
po/eu.po (+122/-124)
po/fa.po (+129/-131)
po/fi.po (+121/-123)
po/fil.po (+127/-129)
po/fo.po (+126/-128)
po/fr.po (+122/-124)
po/fr_CA.po (+122/-124)
po/fur.po (+127/-129)
po/fy.po (+126/-128)
po/ga.po (+129/-131)
po/gd.po (+119/-121)
po/gl.po (+122/-124)
po/gu.po (+129/-131)
po/gv.po (+129/-131)
po/he.po (+119/-121)
po/hi.po (+122/-124)
po/hr.po (+119/-121)
po/hu.po (+122/-124)
po/hy.po (+129/-131)
po/id.po (+123/-125)
po/is.po (+127/-129)
po/it.po (+123/-125)
po/ja.po (+119/-121)
po/jv.po (+129/-131)
po/ka.po (+124/-126)
po/kk.po (+125/-127)
po/km.po (+122/-124)
po/kn.po (+126/-128)
po/ko.po (+119/-121)
po/ku.po (+124/-126)
po/ky.po (+129/-131)
po/lb.po (+129/-131)
po/lo.po (+129/-131)
po/lt.po (+119/-121)
po/lv.po (+119/-121)
po/mhr.po (+129/-131)
po/mk.po (+124/-126)
po/ml.po (+126/-128)
po/mn.po (+126/-128)
po/mr.po (+126/-128)
po/ms.po (+122/-124)
po/mus.po (+129/-131)
po/my.po (+126/-128)
po/nb.po (+119/-121)
po/nds.po (+126/-128)
po/ne.po (+126/-128)
po/nl.po (+119/-121)
po/nn.po (+122/-124)
po/oc.po (+122/-124)
po/pa.po (+124/-126)
po/pl.po (+119/-121)
po/ps.po (+129/-131)
po/pt.po (+126/-128)
po/pt_BR.po (+119/-121)
po/qu.po (+129/-131)
po/ro.po (+124/-126)
po/ru.po (+122/-124)
po/rw.po (+129/-131)
po/sc.po (+129/-131)
po/sco.po (+127/-129)
po/sd.po (+126/-128)
po/se.po (+129/-131)
po/shn.po (+129/-131)
po/si.po (+127/-129)
po/sk.po (+119/-121)
po/sl.po (+119/-121)
po/sq.po (+119/-121)
po/sr.po (+125/-127)
po/sv.po (+177/-179)
po/ta.po (+126/-128)
po/ta_LK.po (+126/-128)
po/te.po (+122/-124)
po/tg.po (+129/-131)
po/th.po (+122/-124)
po/tl.po (+124/-126)
po/tr.po (+119/-121)
po/ug.po (+120/-122)
po/uk.po (+119/-121)
po/ur.po (+129/-131)
po/uz.po (+126/-128)
po/vi.po (+122/-124)
po/xh.po (+129/-131)
po/zh_CN.po (+119/-121)
po/zh_HK.po (+119/-121)
po/zh_TW.po (+119/-121)
po/zu.po (+129/-131)
utils/demoted.cfg (+9/-2)
utils/demoted.cfg.precise (+5/-18)
tags: | added: verification-done-utopic |
tags: | removed: verification-needed |
I was right. The code does print("Continue? [yN] ", end="") and then sys.stdin. readline( ) with no flush in between.
Here's a suggested patch for trusty's update- release- upgrader. I haven't tested it (since I already upgraded my 14.04 to 14.10). It also needs to be forward-ported to later versions so this bug won't regress.
I think this kind of UI glitch merits a SRU.