Bug 579604

Summary: "AttributeError: 'NoneType' object has no attribute 'split'" due to gui_install progress callback with self.basename == None within system-config-language-1.3.3-3.fc12
Product: [Fedora] Fedora Reporter: Esotopia
Component: system-config-languageAssignee: Naveen Kumar <nkumar>
Status: CLOSED INSUFFICIENT_DATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: 12CC: dmalcolm, i18n-bugs, ivazqueznet, james.antill, jonathansteffan, nkumar, psatpute
Target Milestone: ---   
Target Release: ---   
Hardware: i686   
OS: Linux   
Whiteboard: abrt_hash:9141ffc5
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-10-12 07:43:25 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
File: backtrace none

Description Esotopia 2010-04-06 02:21:21 UTC
abrt 1.0.8 detected a crash.

architecture: i686
cmdline: /usr/bin/python /usr/share/system-config-language/system-config-language.py 
component: system-config-language
executable: /usr/share/system-config-language/system-config-language.py
kernel: 2.6.31.5-127.fc12.i686.PAE
package: system-config-language-1.3.3-3.fc12
release: Fedora release 12 (Constantine)
uuid: 7eaf73c6

backtrace
-----
Summary: TB7eaf73c6 urllib.py:1168:unquote:AttributeError: 'NoneType' object has no attribute 'split'

Traceback (most recent call last):
  File "/usr/share/system-config-language/language_gui.py", line 175, in okClicked
    self.apply()
  File "/usr/share/system-config-language/language_gui.py", line 281, in apply
    install.install_language (self.mainWindow, grpid)
  File "/usr/share/system-config-language/gui_install.py", line 394, in install_language
    dlpkgs = self.downloadPackages(mainWindow)
  File "/usr/share/system-config-language/gui_install.py", line 258, in downloadPackages
    probs = self.downloadPkgs(dlpkgs)
  File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 1420, in downloadPkgs
    self.plugins.run('predownload', pkglist=pkglist)
  File "/usr/lib/python2.6/site-packages/yum/plugins.py", line 177, in run
    func(conduitcls(self, self.base, conf, **kwargs))
  File "/usr/lib/yum-plugins/presto.py", line 579, in predownload_hook
    (problems, more) = downloadPkgs(conduit, pinfo, download_pkgs)
  File "/usr/lib/yum-plugins/presto.py", line 421, in downloadPkgs
    cb.start(text=text, size=rebuild_size)
  File "/usr/lib/python2.6/site-packages/urlgrabber/progress.py", line 127, in start
    self._do_start(now)
  File "/usr/share/system-config-language/gui_install.py", line 215, in _do_start
    txt = _("Downloading %s") %(urllib2.unquote(self.basename),)
  File "/usr/lib/python2.6/urllib.py", line 1168, in unquote
    res = s.split('%')
AttributeError: 'NoneType' object has no attribute 'split'

Local variables in innermost frame:
s: None

Comment 1 Esotopia 2010-04-06 02:21:24 UTC
Created attachment 404588 [details]
File: backtrace

Comment 2 Naveen Kumar 2010-04-21 09:19:45 UTC
Can you provide me more information, as to, how to reproduce this bug? Can you
write the sequence of actions that you performed before the crash occurred?

Comment 3 Pravin Satpute 2010-04-21 09:31:42 UTC
in this bug bracktrace error:

 "AttributeError: 'NoneType' object has no attribute 'split'" 

is from python package file /usr/lib/python2.6/urllib.py

so reassigning to python

Comment 4 Dave Malcolm 2010-05-14 22:07:33 UTC
Thanks for reporting this bug

Looking at the implementation of unquote() in urlib.py, and the "s: None" reports about local variables in innermost frame, it looks like it was passed None, rather than a string, which suggests that "self.basename" is None, rather than a string.

This suggests to me that this is a bug within system-config-language; reassigning component accordingly, and updating the title of this bug.

I briefly looked at
   class dlcb(urlgrabber.progress.BaseMeter):
within gui_install.py, and can't see where self.basename is meant to be being set.

Comment 5 Naveen Kumar 2010-06-18 09:21:02 UTC
(In reply to comment #4)
> Thanks for reporting this bug
> 
> Looking at the implementation of unquote() in urlib.py, and the "s: None"
> reports about local variables in innermost frame, it looks like it was passed
> None, rather than a string, which suggests that "self.basename" is None, rather
> than a string.
> 
> This suggests to me that this is a bug within system-config-language;
> reassigning component accordingly, and updating the title of this bug.
> 
> I briefly looked at
>    class dlcb(urlgrabber.progress.BaseMeter):
> within gui_install.py, and can't see where self.basename is meant to be being
> set.    

Do you know what (kind of) basename does it expect to be set as? Is there any documentation for progress.py in package urlgrabber. 

Also do you how to reproduce this bug? Can you write the sequence of actions that you performed before the crash occurred?