[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#267168: cdrom-detect: How about changing to wishlist bugs



Package: cdrom-detect
Version: 1.17
Followup-For: Bug #267168

This bug and its friends which are still there as nomal bugs are now
almost finished for me in etch beta 3 release.  

I am taliking:
 #247960, #258316, #259264, #262140, #265636, #267168, #314163

Also, the following bug may be merged to above list.

 #284455

I think these can be changed to a single wishlist bug for documentation
request to mention faulty CDROM hardware issue now.  If you document
this, this closes half the normal bugs for this package :-)

Wishlist content: 

In "Chapter 5.3 Troubleshooting the Installation Process" right after
"5.3.1. Floppy Disk Reliability", I sugest to include following

| 5.3.2. CD-ROM Reliability
| 
| In some older faulty CD-ROM drives, detecting and reading CD-ROM during
| the boot process may fail in various funny ways. This can be worked
| around simply by detecting CD-ROM again after the fasilure incident.

I also attach a patch which clean code around this failed CD-ROM detect
situation.  This removes my old workaround and always use "fail"
function with "unmount" in it under "exit 1" situation for cleaner
consistency.  I also think failing soon when manual detection failed is
the better way than looping to execute autodetection again. (untested
patch).

Here is the background and explanation:

Essentially, the issue was how to work around faulty hardware which
kernel has diffuculty handling by itself.  After you have implimented
 if [ -z "$suite" ] 
test in this program, there is no bug by this program from my
perspective.  

All we need to do is restart instaler from cdrom-detect phase.
Bad hardware should suffer a bit.  So what :-)

Let me review previous history by my vague memory and explain what I am
talking.

When trying to install to a machine with old CD-ROM drive on my old DELL
machine and others, CDROM mounts fails in many funny ways.  

The first trial of working around this isuue was retry mounting.

Then with newer kernel, it seems the mounting itself happens after
several kernel error messages but no error from mount command.  The
mounted contents of CD-ROM are not right.  I mean that symlinks shows up
as zero length normal files.  This cause read failure in the 
 for distlink in stable testing unstable
loop as expected.  This leaves $suite unset.

Since there is unmount before fail there now, we can rerun cdrom-detect
without problem.  That was headiache in RC1 days.

If this patch is too intrusive to your taste, please do not apply this
now.  Since SVN repo and 1.17 seems to be the same or just white space
difference, I made patch from unstable source.  

I have not tested this patch with actual installer.  I attach here only
to indicate my point and wishing this be considered at least for the
post-etch release.  This patch is at least more current to SVN version
than the old ones on BTS.

I hope this helps.

-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.18-1-686
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)

-- 
~\^o^/~~~ ~\^.^/~~~ ~\^*^/~~~ ~\^_^/~~~ ~\^+^/~~~ ~\^:^/~~~ ~\^v^/~~~ +++++
        Osamu Aoki <osamu@debian.org>  Yokohama Japan, GPG-key: A8061F32
 .''`.  Debian Reference: post-installation user's guide for non-developers
 : :' : http://qref.sf.net and http://people.debian.org/~osamu
 `. `'  "Our Priorities are Our Users and Free Software" --- Social Contract

--- cdrom-detect.postinst.orig	2006-10-09 19:31:46.000000000 +0900
+++ cdrom-detect.postinst	2006-10-09 21:46:37.000000000 +0900
@@ -10,6 +10,8 @@
 
 fail () {
 	log "CDROM-detect failed."
+	log "Unmounting CD just to be sure."
+	umount /cdrom 2>/dev/null || true
 	exit 1
 }
 
@@ -38,21 +40,6 @@
 			mounted=1
 			db_set cdrom-detect/cdrom_device $device
 			break
-		else
-			log "CDROM-mount failed (error=$?): device=$device"
-			log "Unmounting CD just to be sure."
-			umount /cdrom 2>/dev/null || true
-			log "Trying it again."
-			if mount -t iso9660 -o ro,exec $device /cdrom; then
-				log "CDROM-mount succeeded: device=$device"
-				mounted=1
-				db_set cdrom-detect/cdrom_device $device
-				break
-			else
-				log "CDROM-mount failed again (error=$?): device=$device"
-				log "Unmounting CD just to be sure and giving it up."
-				umount /cdrom 2>/dev/null || true
-			fi
 		fi
 	done
 
@@ -66,6 +53,8 @@
 		db_go
 		db_get cdrom-detect/retry
 		if [ "$RET" = "true" ]; then
+			log "Unmounting CD just to be sure."
+			umount /cdrom 2>/dev/null || true
 			continue
 		else
 			fail
@@ -116,9 +105,7 @@
 			mounted=1
 			break
 		else
-			log "CDROM-mount failed (error=$?): device=$device"
-			log "Unmounting CD just to be sure and giving it up."
-			umount /cdrom 2>/dev/null || true
+			fail
 		fi
 	else
 		fail
@@ -130,10 +117,9 @@
 	log "Detected CD '$CDNAME'"
 else
 	log "The available CD is not a Debian CD!"
-	umount /cdrom
 	db_input critical cdrom-detect/wrong-cd || [ $? -eq 30 ]
 	db_go
-	exit 1 
+	fail 
 fi
 
 # Get all the pool directories into the dentry cache, to cut down on seek
@@ -173,7 +159,6 @@
 	log "Error reading Release file; unable to determine distribution"
 	db_input critical cdrom-detect/no-release || [ $? -eq 30 ]
 	db_go
-	umount /cdrom
 	fail
 fi
 

Reply to: