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

Bug#728153: apt-cdrom should succeed if any drive succeeds



On 2013-10-28, David Kalnischkies <kalnischkies+debian@gmail.com> wrote:
>> If there are multiple CDROM drives, `apt-cdrom add` will abort with
>> an error if any of the drives do not contain a Debian CD. This is
>> particularly a problem if apt-cdrom happens to check a drive with no
>> CD first. Then it will abort without even searching the other drives.
>
> I am not sure if ignoring errors is really a good idea. Maybe the
> drive is empty or the CD has a million scratches, is upside down in
> the slot or other "valid" error cases a user should be notified about.

My main concerns are:

1. That apt-cdrom doesn't check all the drives before giving up.

2. That apt-cdrom returns error code even if it was successful with one
   of the drives.

The current behavior makes calling apt-cdrom very confusing if I have
multiple drives and have my CD in the "wrong" drive. Or debian-installer
(apt-setup) aborts with errors because apt-cdrom returns an error on one
of the drives, even if it succeeded on other.

> In any case, the patch doesn't apply as the code changed around 0.9.9.
> Is this version still not trying all drives before erroring out
> completely?

I will try this and post results.

> What we could do to collect the error messages without giving the
> Add() calls a hint that previous invocations failed is:
> _error->PushToStack() and the reverse _error->MergeWithStack().

I considered that as well. In the all-errors case this is definately a
good approach. But in the case where at least 1 drive succeeds, I
believe we should return success.

The manpage for apt-cdrom states:

"apt-cdrom is used to add *a* new CDROM to APTs list"

So as long as *a* CDROM was added, I think it should return success.

> If we are patching, there is similar code in DoIdent,
> so this probably needs to be patched, too.

Agreed. If 0.9.9 still has this problem I will address both in a new
patch.

John Ogness


Reply to: