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

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

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()


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 @@
+ # 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
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers