miro.real crashed with KeyError in wrapper() (Miro keeps running)

Bug #537050 reported by Eugene
372
This bug affects 103 people
Affects Status Importance Assigned to Milestone
Miro
Invalid
Undecided
Unassigned
XULRunner
Invalid
Undecided
Unassigned
miro (Ubuntu)
Fix Released
High
Daniel Hahler

Bug Description

Binary package hint: miro

Just seemed to crash when I switched to the Miro app.

TraceBack with 3.0 (not uploaded yet):
Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.6/miro/frontends/widgets/gtk/weakconnect.py", line 49, in handle_callback
    return real_method(obj, *(args + self.user_args))
  File "/usr/lib/pymodules/python2.6/miro/frontends/widgets/gtk/base.py", line 90, in on_hierarchy_changed
    window = wrappermap.wrapper(toplevel)
  File "/usr/lib/pymodules/python2.6/miro/frontends/widgets/gtk/wrappermap.py", line 46, in wrapper
    raise KeyError("Widget wrapper no longer exists")

ProblemType: Crash
Architecture: amd64
Date: Wed Mar 10 21:22:19 2010
DistroRelease: Ubuntu 10.04
ExecutablePath: /usr/bin/miro.real
InstallationMedia: Ubuntu 10.04 "Lucid Lynx" - Alpha amd64 (20100224.1)
InterpreterPath: /usr/bin/python2.6
Package: miro 2.5.4-1ubuntu1
ProcCmdline: /usr/bin/python2.6 /usr/bin/miro.real
ProcEnviron:
 LANG=en_CA.utf8
 SHELL=/bin/bash
ProcVersionSignature: Ubuntu 2.6.32-15.22-generic
PythonArgs: ['/usr/bin/miro.real']
SourcePackage: miro
Title: miro.real crashed with KeyError in wrapper()
Uname: Linux 2.6.32-15-generic x86_64
UserGroups: adm admin cdrom dialout lpadmin plugdev sambashare

Related branches

Revision history for this message
Eugene (eugene-vanderwatt) wrote :
tags: removed: need-duplicate-check
Victor Vargas (kamus)
visibility: private → public
Changed in miro (Ubuntu):
importance: Undecided → Medium
Revision history for this message
miegiel (nix-miegiel) wrote :

It seems solved to me.

At the moment I can't reproduce the bug anymore. I used to get the "crash detected" warning the first time (and only the first time) I selected one of the feeds in the sidebar after starting miro. Miro seemed to continue to run, regardless of the warning.

Daniel Hahler (blueyed)
Changed in miro (Ubuntu):
status: New → Triaged
tags: added: bugpattern-needed
Revision history for this message
elgabi-launchpad (elgabionline-membresia) wrote :

I selected "Legal Torrents" in the sidebar after starting miro at first time. Miro seemed to continue to run, regardless of the warning.

Revision history for this message
Daniel Hahler (blueyed) wrote :

Yes, this appears to be non-crashing error: the app keeps running.

Changed in miro (Ubuntu):
importance: Medium → Low
summary: - miro.real crashed with KeyError in wrapper()
+ miro.real crashed with KeyError in wrapper() (Miro keeps running)
Daniel Hahler (blueyed)
description: updated
Revision history for this message
Daniel Hahler (blueyed) wrote :

For me this is reproducible by selecting any of the Websites in the left sidebar, like "Legal Torrents" as pointed out before.

Also, this might be the reason why the canvas is not drawn anymore when going to another Website (where the error happens again - looking at the console) and back to a previously selected website.

willkg on #miro-hackers said it's probably related to lucid / xulrunner.

Changed in miro (Ubuntu):
importance: Low → Medium
Changed in democracy:
status: Unknown → Confirmed
Daniel Hahler (blueyed)
Changed in miro (Ubuntu):
importance: Medium → High
Revision history for this message
Ben Dean-Kawamura (ben-pculture) wrote :

I'm pretty sure that this is caused from a XULRunner bug. Here's a test script that shows the problem. If you run it you should see a GtkMozEmbed widget. Then click the button. This should remove the widget. So far everything's fine. However, when you click the button again, the script will try to show the widget and this will crash.

I'm pretty sure the GTK code is completely valid. It seems to have to do with GtkMozEmbed using an offscreen window to hold onto it's widget when it's unrealized (see MozEmbedPrivate.cpp in the mozilla tree)

Revision history for this message
Ben Dean-Kawamura (ben-pculture) wrote :

Here's a patch that works around the issue for me. It's definitely not a pretty solution, we just short-circuit the code that mozilla has to handle un-realize/re-realize. At the very least this is a memory leak, however it only leaks when the user deletes sites, which isn't going to happen very often. I'm also a little worried that the unrealize code is important for other reasons, however I haven't got xulrunner to crash in my testing.

Can other people test it out and see if they have problems? I think that we should have a cleaner solution for 3.1, but for a quick and dirty fix for only lucid, maybe it could work.

Revision history for this message
Ben Dean-Kawamura (ben-pculture) wrote :

Sorry, my first attempt was a patch against master. Here's one against the 3.0 branch, which is used in lucid.

Revision history for this message
Ben Dean-Kawamura (ben-pculture) wrote :

Upgrading to xulrunner-1.9.2.3 fixed the issue for me. Does it fix it for others?

Revision history for this message
Brian Rogers (brian-rogers) wrote :

I'm still getting the error message.

$ apt-cache policy miro xulrunner-1.9.2 | grep Installed
  Installed: 3.0.1-0ubuntu1
  Installed: 1.9.2.3+nobinonly-0ubuntu2

Revision history for this message
Brian Rogers (brian-rogers) wrote :

Your patch did the trick, though.

Revision history for this message
Ben Dean-Kawamura (ben-pculture) wrote :

I don't think it was upgrading that fixed the issue directly. What happened is that Miro started using xulrunner-1.9.1 rather than xulrunner 1.9.2. I'm not sure why that happened exactly, but I just checked in some code that forces it to happen and I think that does the trick.

So here's what I think is the correct solution:

1) Get the latest version of the 3.0 branch, make sure it includes this changeset:
 http://git.pculture.org/miro/commit/?h=Miro-3.0&id=318bad719793114443bd97746c7a24a00cd1794d

2) Apply this patch to force Miro to link to xulrunner-1.9.1:
http://bugzilla.pculture.org/attachment.cgi?id=2395

As far as I can tell that solves the problem, can others test it out? I think it's much cleaner than my original patch.

Revision history for this message
Micah Gersten (micahg) wrote : Re: [Bug 537050] Re: miro.real crashed with KeyError in wrapper() (Miro keeps running)

This is not a good solution as we are dropping xulrunner-1.9.1 from Lucid.

On 04/19/2010 04:31 PM, Ben Dean-Kawamura wrote:
> I don't think it was upgrading that fixed the issue directly. What
> happened is that Miro started using xulrunner-1.9.1 rather than
> xulrunner 1.9.2. I'm not sure why that happened exactly, but I just
> checked in some code that forces it to happen and I think that does the
> trick.
>
> So here's what I think is the correct solution:
>
> 1) Get the latest version of the 3.0 branch, make sure it includes this
changeset:
>
http://git.pculture.org/miro/commit/?h=Miro-3.0&id=318bad719793114443bd97746c7a24a00cd1794d
>
> 2) Apply this patch to force Miro to link to xulrunner-1.9.1:
> http://bugzilla.pculture.org/attachment.cgi?id=2395
>
> As far as I can tell that solves the problem, can others test it out? I
> think it's much cleaner than my original patch.
>

Revision history for this message
Brian Rogers (brian-rogers) wrote :

Ben, your patch looks fine and fairly clean to me. Even if it's a workaround for what is ultimately a xulrunner issue, I think a workaround in Miro would be preferred over patching xulrunner this late in the Lucid development cycle. So I'd say don't worry for now that something needs to be fixed in xulrunner.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package miro - 3.0.1-0ubuntu2

---------------
miro (3.0.1-0ubuntu2) lucid; urgency=low

  * debian/patches/102_xulrunner_bug_workaround.patch:
    Workaround bug in xulrunner 1.9.2. (LP: #537050)
 -- Daniel Hahler <email address hidden> Tue, 20 Apr 2010 20:07:07 +0200

Changed in miro (Ubuntu):
status: Triaged → Fix Released
Daniel Hahler (blueyed)
Changed in miro (Ubuntu):
assignee: nobody → Daniel Hahler (blueyed)
Changed in democracy:
status: Confirmed → In Progress
Revision history for this message
dino99 (9d9) wrote :

Eol reached or near to be; Time to move to a newer release now.

Changed in xulrunner:
status: New → Invalid
Changed in democracy:
importance: Unknown → Undecided
status: In Progress → New
assignee: nobody → dino99 (9d9)
status: New → Invalid
assignee: dino99 (9d9) → nobody
Revision history for this message
Alberto Salvia Novella (es20490446e) wrote :

I'm unsuscribing the Ubuntu Bug Control team.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.