[Yum] Re: Horrible response to keyboardInterrupt
CAI Qian
caiqian at cclom.cn
Fri Sep 12 05:30:21 UTC 2008
Hi,
--- Seth Vidal <skvidal at fedoraproject.org> wrote:
> On Thu, 2008-09-11 at 21:17 -0700, CAI Qian wrote:
>
> > I think it is of yum users' interests when making language
> decision.
>
> making a language decision? whatever.
>
> > There is another example of bad usability for handling CTRL-C,
> >
> > [root at localhost ~]# yum -d 10 update
> > Config time: 0.107
> > Yum Version: 3.2.19
> > COMMAND: yum -d 10 update
> > Installroot: /
> > Reading Local RPMDB
> > rpmdb time: 0.001
> > Setting up Package Sacks
> > pkgsack time: 0.003
> > Setting up Update Process
> > Building updates object
> > ^C^C^C^C^C^C^C^C^C^C^C^C^C^C^Cup:Obs Init time: 0.733
> > ^C^Cputting kpathsea in complex update
> >
> > ...
> >
> > You could see from the above, I have to hit CTRL-C more than 10
> times
> > in order to cancel the operation. Far more than tolerant for
> reasonable
> > user experience. Is it the same thing as the Python socket handling
> > bug?
> >
>
> Actually, you don't have to hit it that many times. You are hitting
> it
> that many times. What's happening at that particular point is that
> the
> rpmdb is being accessed. At which point rpm is holding the signal
> handler that would allow that interrupt to work.
>
OK, but it makes some commands unable to be cancelled, like
check-update
It accessed DB, and print out things even if users don't want it
afterwards.
In addition, if a user realized that he made a bad search (too many
results), like
yum -d 10 search file
and would like to cancel it later just immediately after starting to
print out search results, he/she couldn't, and he/she had to wait a
long time after almost all results returned back.
Moreover, it is confusion and untidy to see those random backtraces
when a user just want to cancel an yum operation.
[root at localhost yum-3.2.19]# yum -d 10 search file
^CTraceback (most recent call last):
File "/usr/bin/yum", line 4, in <module>
import yum
File "/usr/lib/python2.5/site-packages/yum/__init__.py", line 30, in
<module>
import logging
File "/usr/lib64/python2.5/logging/__init__.py", line 29, in <module>
^C import sys, os, types, time, string, cStringIO, traceback
[root at localhost yum-3.2.19]# yum -d 10 search file
^CTraceback (most recent call last):
File "/usr/bin/yum", line 4, in <module>
import yum
File "/usr/lib/python2.5/site-packages/yum/__init__.py", line 39, in
<module>
from iniparse.compat import ParsingError, ConfigParser
File "/usr/lib/python2.5/site-packages/iniparse/__init__.py", line 1,
in <module>
from ini import INIConfig
File "/usr/lib/python2.5/site-packages/iniparse/ini.py", line 38, in
<module>
"""
KeyboardInterrupt
Cai Qian
> -sv
>
>
> _______________________________________________
> Yum mailing list
> Yum at lists.dulug.duke.edu
> https://lists.dulug.duke.edu/mailman/listinfo/yum
>
More information about the Yum
mailing list