Bug 465308

Summary: Revelation applet menu fails to open
Product: [Fedora] Fedora Reporter: Jeremy Fitzhardinge <jeremy>
Component: revelationAssignee: Jef Spaleta <jspaleta>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: medium    
Version: rawhideCC: jspaleta, wwoods
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-10-03 20:48:27 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:

Description Jeremy Fitzhardinge 2008-10-02 17:37:12 UTC
Description of problem:
When opening the revelation applet menu, it asks for a password and then crashes with a stack backtrace.

Version-Release number of selected component (if applicable):
revelation-0.4.11-4.1.x86_64

How reproducible:
Always

Steps to Reproduce:
1. Run applet.  Open menu.
2.
3.
  
Actual results:
Crash.

Expected results:
Menu appears.

Additional info:
The password file was copied from a F9 system running the same version of revelation.

The exception is:

Traceback (most recent call last):
  File "/usr/libexec/revelation-applet", line 301, in __cb_icon_buttonpress
    self.entry_menu(data.time)
  File "/usr/libexec/revelation-applet", line 542, in entry_menu
    if self.__require_file() == False:
  File "/usr/libexec/revelation-applet", line 478, in __require_file
    return self.file_open(self.config.get("file"))
  File "/usr/libexec/revelation-applet", line 627, in file_open
    return self.__file_load(file, password)
  File "/usr/libexec/revelation-applet", line 358, in __file_load
    self.entrymenu = self.__generate_entrymenu(self.entrystore)
  File "/usr/libexec/revelation-applet", line 391, in __generate_entrymenu
    item = ui.ImageMenuItem(type(e) == entry.FolderEntry and ui.STOCK_FOLDER or e.icon, e.name)
  File "/usr/lib64/python2.5/site-packages/revelation/ui.py", line 1261, in __init__
    self.image = self.get_children()[1]
IndexError: list index out of range

I think its missing the folder icon it was using.

Comment 1 Jef Spaleta 2008-10-02 22:20:14 UTC
lovely

I'll try to track it down.  It might take me a couple of days I need to get a new rawhide install going.

-jef

Comment 2 Will Woods 2008-10-02 22:25:49 UTC
I get a similar traceback on a fresh rawhide install after adding a few entries to the password database:

Traceback (most recent call last):
  File "/usr/libexec/revelation-applet", line 261, in __cb_file_content_changed
    self.__file_load(self.datafile.get_file(), self.datafile.get_password())
  File "/usr/libexec/revelation-applet", line 358, in __file_load
    self.entrymenu = self.__generate_entrymenu(self.entrystore)
  File "/usr/libexec/revelation-applet", line 391, in __generate_entrymenu
    item = ui.ImageMenuItem(type(e) == entry.FolderEntry and ui.STOCK_FOLDER or e.icon, e.name)
  File "/usr/lib/python2.5/site-packages/revelation/ui.py", line 1261, in __init__
    self.image = self.get_children()[1]
IndexError: list index out of range

Comment 3 Will Woods 2008-10-02 22:27:47 UTC
It's worth noting that I can hit "Continue" and the applet still works, kinda. It can look up passwords, anyway.

Comment 4 Jef Spaleta 2008-10-03 18:15:14 UTC
Okay I think I have a patch which fixes it.  Just going to test the number of children.  I think something in the gtk bindings changed and the image child is no longer aways being added and only added when actually defined.  I need to confirm with some low level testing of the gtk bindings outside the scope of revelation.

I should be pushing a build today with the patch.

Comment 5 Jef Spaleta 2008-10-03 20:48:27 UTC
Built in rawhide, should be available soon.

Comment 6 Jeremy Fitzhardinge 2008-10-06 06:55:33 UTC
Yep, confirm fixed.