Public bug reported:

Software Center 5.2.1, Ubuntu 10.04

When testing the fix for a similar crash in bug 920196, I found that
even with that fix I was able to cause a (different) crash by repeatedly
clicking the "All Software" button while Software Center is starting up.

The stacktrace is shown below.

TEST CASE:
1. open stock software-center
2. click on the "All Software" button very quickly while the main page is still 
loading
3. verify that there is a traceback (note that this does not happen always, 
just most of the time)
4. use the fixed version from -proposed
5. verify that (2) no longer produces the following (or any) traceback

Traceback (most recent call last):
  File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/enquire.py",
 line 115, in _get_estimate_nr_apps_and_nr_pkgs
    tmp_matches = enquire.get_mset(0, len(self.db), None, xfilter)
  File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/appfilter.py",
 line 89, in __call__
    if (not pkgname in self.cache and
  File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/pkginfo_impl/aptcache.py",
 line 263, in __contains__
    return self._cache.__contains__(k)
AttributeError: 'NoneType' object has no attribute '__contains__'
Traceback (most recent call last):
  File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/panes/viewswitcher.py",
 line 149, in config_view
    pane = vm.set_active_view(view_id)
  File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/session/viewmanager.py",
 line 149, in set_active_view
    view_widget.init_view()
  File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/panes/availablepane.py",
 line 168, in init_view
    self.apps_filter)
  File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 240, in __init__
    self.build(desktopdir)
  File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 492, in build
    self._build_homepage_view()
  File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 267, in _build_homepage_view
    self._append_top_rated()
  File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 404, in _append_top_rated
    top_rated_cat = self._update_top_rated_content()
  File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 391, in _update_top_rated_content
    docs = top_rated_cat.get_documents(self.db)
  File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/categories.py",
 line 124, in get_documents
    nonblocking_load=False)
  File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/enquire.py",
 line 317, in set_query
    self._blocking_perform_search()
  File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/enquire.py",
 line 212, in _blocking_perform_search
    matches = enquire.get_mset(0, self.limit, None, xfilter)
  File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/appfilter.py",
 line 89, in __call__
    if (not pkgname in self.cache and
  File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/pkginfo_impl/aptcache.py",
 line 263, in __contains__
    return self._cache.__contains__(k)
AttributeError: 'NoneType' object has no attribute '__contains__'

** Affects: software-center (Ubuntu)
     Importance: Low
     Assignee: Gary Lasker (gary-lasker)
         Status: In Progress

** Summary changed:

- AttributeError: 'NoneType' object has no attribute '__contains__' 2012-05-15 
02:26:05,169 - softwarecenter.db.enquire - ERROR - 
_get_estimate_nr_apps_and_nr_pkgs failed Traceback (most recent call last):   
File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/enquire.py",
 line 115, in _get_estimate_nr_apps_and_nr_pkgs     tmp_matches = 
enquire.get_mset(0, len(self.db), None, xfilter)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/appfilter.py",
 line 89, in __call__     if (not pkgname in self.cache and   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/pkginfo_impl/aptcache.py",
 line 263, in __contains__     return self._cache.__contains__(k) 
AttributeError: 'NoneType' object has no attribute '__contains__' Traceback 
(most recent call last):   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/panes/viewswitcher.py",
 line 149, in config_view     pane = vm.set_active_view(view_id)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/session/viewmanager.py",
 line 149, in set_active_view     view_widget.init_view()   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/panes/availablepane.py",
 line 168, in init_view     self.apps_filter)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 240, in __init__     self.build(desktopdir)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 492, in build     self._build_homepage_view()   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 267, in _build_homepage_view     self._append_top_rated()   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 404, in _append_top_rated     top_rated_cat = 
self._update_top_rated_content()   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 391, in _update_top_rated_content     docs = 
top_rated_cat.get_documents(self.db)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/categories.py",
 line 124, in get_documents     nonblocking_load=False)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/enquire.py",
 line 317, in set_query     self._blocking_perform_search()   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/enquire.py",
 line 212, in _blocking_perform_search     matches = enquire.get_mset(0, 
self.limit, None, xfilter)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/appfilter.py",
 line 89, in __call__     if (not pkgname in self.cache and   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/pkginfo_impl/aptcache.py",
 line 263, in __contains__     return self._cache.__contains__(k) 
AttributeError: 'NoneType' object has no attribute '__contains__' 2012-05-15 
02:26:05,878 - softwarecenter.db.enquire - ERROR - 
_get_estimate_nr_apps_and_nr_pkgs failed Traceback (most recent call last):   
File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/enquire.py",
 line 115, in _get_estimate_nr_apps_and_nr_pkgs     tmp_matches = 
enquire.get_mset(0, len(self.db), None, xfilter)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/appfilter.py",
 line 89, in __call__     if (not pkgname in self.cache and   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/pkginfo_impl/aptcache.py",
 line 263, in __contains__     return self._cache.__contains__(k) 
AttributeError: 'NoneType' object has no attribute '__contains__' Traceback 
(most recent call last):   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/panes/viewswitcher.py",
 line 149, in config_view     pane = vm.set_active_view(view_id)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/session/viewmanager.py",
 line 149, in set_active_view     view_widget.init_view()   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/panes/availablepane.py",
 line 168, in init_view     self.apps_filter)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 240, in __init__     self.build(desktopdir)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 492, in build     self._build_homepage_view()   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 267, in _build_homepage_view     self._append_top_rated()   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 404, in _append_top_rated     top_rated_cat = 
self._update_top_rated_content()   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 391, in _update_top_rated_content     docs = 
top_rated_cat.get_documents(self.db)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/categories.py",
 line 124, in get_documents     nonblocking_load=False)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/enquire.py",
 line 317, in set_query     self._blocking_perform_search()   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/enquire.py",
 line 212, in _blocking_perform_search     matches = enquire.get_mset(0, 
self.limit, None, xfilter)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/appfilter.py",
 line 89, in __call__     if (not pkgname in self.cache and   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/pkginfo_impl/aptcache.py",
 line 263, in __contains__     return self._cache.__contains__(k) 
AttributeError: 'NoneType' object has no attribute '__contains__' 2012-05-15 
02:26:06,623 - softwarecenter.db.enquire - ERROR - 
_get_estimate_nr_apps_and_nr_pkgs failed Traceback (most recent call last):   
File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/enquire.py",
 line 115, in _get_estimate_nr_apps_and_nr_pkgs     tmp_matches = 
enquire.get_mset(0, len(self.db), None, xfilter)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/appfilter.py",
 line 89, in __call__     if (not pkgname in self.cache and   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/pkginfo_impl/aptcache.py",
 line 263, in __contains__     return self._cache.__contains__(k) 
AttributeError: 'NoneType' object has no attribute '__contains__' Traceback 
(most recent call last):   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/panes/viewswitcher.py",
 line 149, in config_view     pane = vm.set_active_view(view_id)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/session/viewmanager.py",
 line 149, in set_active_view     view_widget.init_view()   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/panes/availablepane.py",
 line 168, in init_view     self.apps_filter)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 240, in __init__     self.build(desktopdir)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 492, in build     self._build_homepage_view()   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 267, in _build_homepage_view     self._append_top_rated()   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 404, in _append_top_rated     top_rated_cat = 
self._update_top_rated_content()   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 391, in _update_top_rated_content     docs = 
top_rated_cat.get_documents(self.db)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/categories.py",
 line 124, in get_documents     nonblocking_load=False)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/enquire.py",
 line 317, in set_query     self._blocking_perform_search()   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/enquire.py",
 line 212, in _blocking_perform_search     matches = enquire.get_mset(0, 
self.limit, None, xfilter)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/appfilter.py",
 line 89, in __call__     if (not pkgname in self.cache and   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/pkginfo_impl/aptcache.py",
 line 263, in __contains__     return self._cache.__contains__(k) 
AttributeError: 'NoneType' object has no attribute '__contains__' 2012-05-15 
02:26:07,257 - softwarecenter.db.enquire - ERROR - 
_get_estimate_nr_apps_and_nr_pkgs failed Traceback (most recent call last):   
File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/enquire.py",
 line 115, in _get_estimate_nr_apps_and_nr_pkgs     tmp_matches = 
enquire.get_mset(0, len(self.db), None, xfilter)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/appfilter.py",
 line 89, in __call__     if (not pkgname in self.cache and   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/pkginfo_impl/aptcache.py",
 line 263, in __contains__     return self._cache.__contains__(k) 
AttributeError: 'NoneType' object has no attribute '__contains__' Traceback 
(most recent call last):   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/panes/viewswitcher.py",
 line 149, in config_view     pane = vm.set_active_view(view_id)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/session/viewmanager.py",
 line 149, in set_active_view     view_widget.init_view()   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/panes/availablepane.py",
 line 168, in init_view     self.apps_filter)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 240, in __init__     self.build(desktopdir)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 492, in build     self._build_homepage_view()   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 267, in _build_homepage_view     self._append_top_rated()   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 404, in _append_top_rated     top_rated_cat = 
self._update_top_rated_content()   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 391, in _update_top_rated_content     docs = 
top_rated_cat.get_documents(self.db)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/categories.py",
 line 124, in get_documents     nonblocking_load=False)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/enquire.py",
 line 317, in set_query     self._blocking_perform_search()   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/enquire.py",
 line 212, in _blocking_perform_search     matches = enquire.get_mset(0, 
self.limit, None, xfilter)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/appfilter.py",
 line 89, in __call__     if (not pkgname in self.cache and   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/pkginfo_impl/aptcache.py",
 line 263, in __contains__     return self._cache.__contains__(k) 
AttributeError: 'NoneType' object has no attribute '__contains__' 2012-05-15 
02:26:07,987 - softwarecenter.db.enquire - ERROR - 
_get_estimate_nr_apps_and_nr_pkgs failed Traceback (most recent call last):   
File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/enquire.py",
 line 115, in _get_estimate_nr_apps_and_nr_pkgs     tmp_matches = 
enquire.get_mset(0, len(self.db), None, xfilter)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/appfilter.py",
 line 89, in __call__     if (not pkgname in self.cache and   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/pkginfo_impl/aptcache.py",
 line 263, in __contains__     return self._cache.__contains__(k) 
AttributeError: 'NoneType' object has no attribute '__contains__' Traceback 
(most recent call last):   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/panes/viewswitcher.py",
 line 149, in config_view     pane = vm.set_active_view(view_id)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/session/viewmanager.py",
 line 149, in set_active_view     view_widget.init_view()   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/panes/availablepane.py",
 line 168, in init_view     self.apps_filter)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 240, in __init__     self.build(desktopdir)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 492, in build     self._build_homepage_view()   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 267, in _build_homepage_view     self._append_top_rated()   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 404, in _append_top_rated     top_rated_cat = 
self._update_top_rated_content()   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 391, in _update_top_rated_content     docs = 
top_rated_cat.get_documents(self.db)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/categories.py",
 line 124, in get_documents     nonblocking_load=False)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/enquire.py",
 line 317, in set_query     self._blocking_perform_search()   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/enquire.py",
 line 212, in _blocking_perform_search     matches = enquire.get_mset(0, 
self.limit, None, xfilter)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/appfilter.py",
 line 89, in __call__     if (not pkgname in self.cache and   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/pkginfo_impl/aptcache.py",
 line 263, in __contains__     return self._cache.__contains__(k) 
AttributeError: 'NoneType' object has no attribute '__contains__' 2012-05-15 
02:26:08,639 - softwarecenter.db.enquire - ERROR - 
_get_estimate_nr_apps_and_nr_pkgs failed Traceback (most recent call last):   
File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/enquire.py",
 line 115, in _get_estimate_nr_apps_and_nr_pkgs     tmp_matches = 
enquire.get_mset(0, len(self.db), None, xfilter)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/appfilter.py",
 line 89, in __call__     if (not pkgname in self.cache and   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/pkginfo_impl/aptcache.py",
 line 263, in __contains__     return self._cache.__contains__(k) 
AttributeError: 'NoneType' object has no attribute '__contains__' Traceback 
(most recent call last):   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/panes/viewswitcher.py",
 line 149, in config_view     pane = vm.set_active_view(view_id)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/session/viewmanager.py",
 line 149, in set_active_view     view_widget.init_view()   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/panes/availablepane.py",
 line 168, in init_view     self.apps_filter)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 240, in __init__     self.build(desktopdir)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 492, in build     self._build_homepage_view()   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 267, in _build_homepage_view     self._append_top_rated()   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 404, in _append_top_rated     top_rated_cat = 
self._update_top_rated_content()   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 391, in _update_top_rated_content     docs = 
top_rated_cat.get_documents(self.db)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/categories.py",
 line 124, in get_documents     nonblocking_load=False)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/enquire.py",
 line 317, in set_query     self._blocking_perform_search()   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/enquire.py",
 line 212, in _blocking_perform_search     matches = enquire.get_mset(0, 
self.limit, None, xfilter)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/appfilter.py",
 line 89, in __call__     if (not pkgname in self.cache and   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/pkginfo_impl/aptcache.py",
 line 263, in __contains__     return self._cache.__contains__(k) 
AttributeError: 'NoneType' object has no attribute '__contains__' 2012-05-15 
02:26:09,373 - softwarecenter.db.enquire - ERROR - 
_get_estimate_nr_apps_and_nr_pkgs failed Traceback (most recent call last):   
File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/enquire.py",
 line 115, in _get_estimate_nr_apps_and_nr_pkgs     tmp_matches = 
enquire.get_mset(0, len(self.db), None, xfilter)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/appfilter.py",
 line 89, in __call__     if (not pkgname in self.cache and   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/pkginfo_impl/aptcache.py",
 line 263, in __contains__     return self._cache.__contains__(k) 
AttributeError: 'NoneType' object has no attribute '__contains__' Traceback 
(most recent call last):   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/panes/viewswitcher.py",
 line 149, in config_view     pane = vm.set_active_view(view_id)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/session/viewmanager.py",
 line 149, in set_active_view     view_widget.init_view()   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/panes/availablepane.py",
 line 168, in init_view     self.apps_filter)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 240, in __init__     self.build(desktopdir)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 492, in build     self._build_homepage_view()   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 267, in _build_homepage_view     self._append_top_rated()   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 404, in _append_top_rated     top_rated_cat = 
self._update_top_rated_content()   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 391, in _update_top_rated_content     docs = 
top_rated_cat.get_documents(self.db)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/categories.py",
 line 124, in get_documents     nonblocking_load=False)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/enquire.py",
 line 317, in set_query     self._blocking_perform_search()   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/enquire.py",
 line 212, in _blocking_perform_search     matches = enquire.get_mset(0, 
self.limit, None, xfilter)   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/appfilter.py",
 line 89, in __call__     if (not pkgname in self.cache and   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/pkginfo_impl/aptcache.py",
 line 263, in __contains__     return self._cache.__contains__(k) 
AttributeError: 'NoneType' object has no attribute '__contains__' when clicking 
the All Software button
+ AttributeError: 'NoneType' object has no attribute '__contains__' when 
clicking the All Software button

** Changed in: software-center (Ubuntu)
       Status: New => Triaged

** Changed in: software-center (Ubuntu)
   Importance: Undecided => Low

** Changed in: software-center (Ubuntu)
     Assignee: (unassigned) => Gary Lasker (gary-lasker)

** Changed in: software-center (Ubuntu)
    Milestone: None => precise-updates

** Description changed:

  Software Center 5.2.1, Ubuntu 10.04
  
  When testing the fix for a similar crash in bug 920196, I found that
- even with that fix I was able to cause a crash by repeatedly clicking
- the "All Software" button while Software Center is starting up.
+ even with that fix I was able to cause a (different) crash by repeatedly
+ clicking the "All Software" button while Software Center is starting up.
  
  The stacktrace is shown below.
  
  TEST CASE:
  1. open stock software-center
  2. click on the "All Software" button very quickly while the main page is 
still loading
  3. verify that there is a traceback (note that this does not happen always, 
just most of the time)
  4. use the fixed version from -proposed
  5. verify that (2) no longer produces the following (or any) traceback
  
  Traceback (most recent call last):
-   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/enquire.py",
 line 115, in _get_estimate_nr_apps_and_nr_pkgs
-     tmp_matches = enquire.get_mset(0, len(self.db), None, xfilter)
-   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/appfilter.py",
 line 89, in __call__
-     if (not pkgname in self.cache and
-   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/pkginfo_impl/aptcache.py",
 line 263, in __contains__
-     return self._cache.__contains__(k)
+   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/enquire.py",
 line 115, in _get_estimate_nr_apps_and_nr_pkgs
+     tmp_matches = enquire.get_mset(0, len(self.db), None, xfilter)
+   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/appfilter.py",
 line 89, in __call__
+     if (not pkgname in self.cache and
+   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/pkginfo_impl/aptcache.py",
 line 263, in __contains__
+     return self._cache.__contains__(k)
  AttributeError: 'NoneType' object has no attribute '__contains__'
  Traceback (most recent call last):
-   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/panes/viewswitcher.py",
 line 149, in config_view
-     pane = vm.set_active_view(view_id)
-   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/session/viewmanager.py",
 line 149, in set_active_view
-     view_widget.init_view()
-   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/panes/availablepane.py",
 line 168, in init_view
-     self.apps_filter)
-   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 240, in __init__
-     self.build(desktopdir)
-   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 492, in build
-     self._build_homepage_view()
-   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 267, in _build_homepage_view
-     self._append_top_rated()
-   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 404, in _append_top_rated
-     top_rated_cat = self._update_top_rated_content()
-   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 391, in _update_top_rated_content
-     docs = top_rated_cat.get_documents(self.db)
-   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/categories.py",
 line 124, in get_documents
-     nonblocking_load=False)
-   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/enquire.py",
 line 317, in set_query
-     self._blocking_perform_search()
-   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/enquire.py",
 line 212, in _blocking_perform_search
-     matches = enquire.get_mset(0, self.limit, None, xfilter)
-   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/appfilter.py",
 line 89, in __call__
-     if (not pkgname in self.cache and
-   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/pkginfo_impl/aptcache.py",
 line 263, in __contains__
-     return self._cache.__contains__(k)
+   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/panes/viewswitcher.py",
 line 149, in config_view
+     pane = vm.set_active_view(view_id)
+   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/session/viewmanager.py",
 line 149, in set_active_view
+     view_widget.init_view()
+   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/panes/availablepane.py",
 line 168, in init_view
+     self.apps_filter)
+   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 240, in __init__
+     self.build(desktopdir)
+   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 492, in build
+     self._build_homepage_view()
+   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 267, in _build_homepage_view
+     self._append_top_rated()
+   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 404, in _append_top_rated
+     top_rated_cat = self._update_top_rated_content()
+   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/ui/gtk3/views/catview_gtk.py",
 line 391, in _update_top_rated_content
+     docs = top_rated_cat.get_documents(self.db)
+   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/categories.py",
 line 124, in get_documents
+     nonblocking_load=False)
+   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/enquire.py",
 line 317, in set_query
+     self._blocking_perform_search()
+   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/enquire.py",
 line 212, in _blocking_perform_search
+     matches = enquire.get_mset(0, self.limit, None, xfilter)
+   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/appfilter.py",
 line 89, in __call__
+     if (not pkgname in self.cache and
+   File 
"/home/tremolux/Projects/precise/software-center_fix_crash_lp920196/5.2/softwarecenter/db/pkginfo_impl/aptcache.py",
 line 263, in __contains__
+     return self._cache.__contains__(k)
  AttributeError: 'NoneType' object has no attribute '__contains__'

** Changed in: software-center (Ubuntu)
       Status: Triaged => In Progress

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/999486

Title:
  AttributeError: 'NoneType' object has no attribute '__contains__' when
  clicking the All Software button

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/software-center/+bug/999486/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to