When Wubi is installed from CD, ubiquity crashes at the end of the installation

Bug #243105 reported by Agostino Russo on 2008-06-25
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Wubi
Low
Unassigned
apt (Ubuntu)
Undecided
Unassigned
ubiquity (Ubuntu)
Undecided
Unassigned

Bug Description

Because of bug #207137 Wubi now copies the CD content as opposed to extract an ISO. This was implemented via bug #230716 which allows casper to boot off a directory. That directory is bindmounted to /cdrom in the initrd. But that makes ubiquity/install.py > install_extras > do_install > cache.commit fail, since apt/python-apt does not work correctly when /cdrom is bind-mounted.

That in turn can be tracked down to fetcher.Run() in apt/cache.py

cache.py > Cache.commit > Cache._fetchArchives > self._runFetcher(fetcher) > fetcher.Run()

Where

fetcher = apt_pkg.GetAcquire(fetchProgress) -> Acquire instance

When installing Wubi from an ISO (no bindmount) or when setting up /cdrom via a symlink in casper, the installation proceeds correctly.

Agostino Russo (ago) on 2008-06-25
Changed in wubi:
assignee: nobody → ago
importance: Undecided → High
status: New → In Progress
Agostino Russo (ago) on 2008-06-25
description: updated
Agostino Russo (ago) on 2008-06-26
description: updated
Agostino Russo (ago) on 2008-06-26
description: updated
Agostino Russo (ago) wrote :
description: updated
Agostino Russo (ago) wrote :

<cjwatson> // IsMounted - Returns true if the mount point is mounted /*{{{*/
<cjwatson> // ---------------------------------------------------------------------
<cjwatson> /* This is a simple algorithm that should always work, we stat the mount point
<cjwatson> and the '..' file in the mount point and see if they are on the same device.
<cjwatson> By definition if they are the same then it is not mounted. This should
<cjwatson> account for symlinked mount points as well. */
<cjwatson> if /cdrom is bind-mounted from the same device then that algorithm would fail
<cjwatson> though I don't see why a symlink to something on the same device would be any better
<cjwatson> so, while this looks like a plausible guess, it could do with some verification
<cjwatson> oh, hmm now, apt is running in the live CD root filesystem not in /target
<cjwatson> maybe it just needs to be configured to use /target/cdrom
<cjwatson> you might try something like http://paste.ubuntu.com/23063/
<cjwatson> I'm not entirely sure that will work but it makes a twisted kind of sense

Paste from cjwatson at Thu, 26 Jun 2008 07:03:31 +0100

=== modified file 'scripts/install.py'
--- scripts/install.py 2008-04-23 21:25:05 +0000
+++ scripts/install.py 2008-06-26 11:07:52 +0000
@@ -954,6 +954,13 @@
               };
             }""")
         apt_conf_nmc.close()
+ # Configure python-apt separately. Leaving it at /cdrom normally
+ # works, but can lead to problems if /cdrom is bind-mounted from a
+ # directory on the same device.
+ apt_pkg.Config.Set("APT::CDROM::NoMount", "true")
+ apt_pkg.Config.Set("Acquire::cdrom::mount", "/target/cdrom")
+ apt_pkg.Config.Set("Acquire::cdrom::/target/cdrom/::Mount", "true")
+ apt_pkg.Config.Set("Acquire::cdrom::/target/cdrom/::UMount", "true")

         dbfilter = apt_setup.AptSetup(None, self.db)
         ret = dbfilter.run_command(auto_process=True)

Agostino Russo (ago) on 2008-06-26
description: updated
Agostino Russo (ago) wrote :
Agostino Russo (ago) wrote :

We reverted to ISO extraction since this bug was blocking, I am lowering the priority of this bug, also because the new python code might (although unlikely) address #207137.

Changed in wubi:
importance: High → Low
status: In Progress → Confirmed
Julian Andres Klode (juliank) wrote :

If it's a bug, it's in APT

affects: python-apt (Ubuntu) → apt (Ubuntu)
tags: added: ubiquity-1.8.12
tags: added: hardy

Exception during installation:
Jun 26 10:43:28 ubuntu python: Traceback (most recent call last):
Jun 26 10:43:28 ubuntu python: File "/usr/share/ubiquity/install.py", line 89, in pulse
Jun 26 10:43:28 ubuntu python: self.db.progress('SET', int(self.percent))
Jun 26 10:43:28 ubuntu python: File "/usr/lib/python2.5/site-packages/debconf.py", line 60, in <lambda>
Jun 26 10:43:28 ubuntu python: lambda *args, **kw: self.command(command, *args, **kw))
Jun 26 10:43:28 ubuntu python: File "/usr/lib/python2.5/site-packages/debconf.py", line 64, in command
Jun 26 10:43:28 ubuntu python: self.write.write("%s %s\n" % (command, ' '.join(map(str, params))))
Jun 26 10:43:28 ubuntu python: TypeError: an integer is required
Jun 26 10:43:28 ubuntu python:

tags: added: installer-crash
Changed in wubi:
assignee: Agostino Russo (ago) → nobody
Simon Quigley (tsimonq2) wrote :

Thank you for taking the time to report this bug and helping to make Ubuntu better. We are sorry that we do not always have the capacity to look at all reported bugs in a timely manner. There have been many changes in Ubuntu since that time you reported the bug and your problem may have been fixed with some of the updates. It would help us a lot if you could test it on a currently supported Ubuntu version. When you test it and it is still an issue, kindly upload the updated logs by running only once:
apport-collect 243105

and any other logs that are relevant for this particular issue.

Changed in apt (Ubuntu):
status: New → Incomplete
Changed in ubiquity (Ubuntu):
status: New → Incomplete
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers