After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 633028 - Tracker bug for warnings, criticals and exceptions
Tracker bug for warnings, criticals and exceptions
Status: RESOLVED FIXED
Product: gnome-shell
Classification: Core
Component: general
unspecified
Other Linux
: Normal normal
: ---
Assigned To: gnome-shell-maint
gnome-shell-maint
Depends on:
Blocks:
 
 
Reported: 2010-10-24 12:57 UTC by Giovanni Campagna
Modified: 2013-06-14 13:47 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Avoid warnings on null actors for tray icons (2.07 KB, patch)
2010-10-24 12:57 UTC, Giovanni Campagna
none Details | Review
Avoid warnings on leave-event for widgets tracking hover (950 bytes, patch)
2010-10-24 12:58 UTC, Giovanni Campagna
committed Details | Review
Allow for empty WM_CLASS and _NET_WM_NAME in tray icons (1.94 KB, patch)
2010-10-24 12:58 UTC, Giovanni Campagna
reviewed Details | Review
Avoid warnings on null actors for tray icons (2.70 KB, patch)
2010-10-24 14:33 UTC, Giovanni Campagna
committed Details | Review
Allow for empty WM_CLASS and _NET_WM_NAME in tray icons (1.96 KB, patch)
2010-10-25 14:34 UTC, Giovanni Campagna
committed Details | Review
Don't remove the tray icons we don't add (1.55 KB, patch)
2010-10-28 20:27 UTC, Giovanni Campagna
reviewed Details | Review
Do not remove destroyed actors from their container (907 bytes, patch)
2010-10-28 20:29 UTC, Giovanni Campagna
needs-work Details | Review
Don't remove the tray icons we don't add (1013 bytes, patch)
2010-10-29 14:30 UTC, Giovanni Campagna
committed Details | Review
Do not remove destroyed actors from their container (1.56 KB, patch)
2010-10-29 14:34 UTC, Giovanni Campagna
none Details | Review
Do not remove destroyed actors from their container (1.55 KB, patch)
2010-10-29 14:36 UTC, Giovanni Campagna
committed Details | Review
LookingGlass: fix a Clutter warning (1.11 KB, patch)
2011-01-11 20:16 UTC, Giovanni Campagna
committed Details | Review
App menu: only create the popup menu with a GMenu (1.53 KB, patch)
2012-01-09 15:42 UTC, Giovanni Campagna
committed Details | Review
Place display: don't use a StIcon for DND (1.66 KB, patch)
2012-01-09 15:42 UTC, Giovanni Campagna
committed Details | Review
ShellApp: don't use the app proxy before it's created (1.37 KB, patch)
2012-01-09 15:42 UTC, Giovanni Campagna
committed Details | Review
ShellApp: don't use the app proxy before it's created (1.37 KB, patch)
2012-01-09 15:42 UTC, Giovanni Campagna
none Details | Review
ShellEmbeddedWindow: don't update the size of a destroyed actor. (1.09 KB, patch)
2012-01-13 17:55 UTC, Giovanni Campagna
committed Details | Review

Description Giovanni Campagna 2010-10-24 12:57:05 UTC
This is a tracker bug for everything that prevents for running with G_DEBUG=fatal_criticals, or causes JS exceptions (that are not fatal) or in anyway causes noise on stderr.

This bug is to avoid having tenths of different bugs opened on minor issues.
Comment 1 Giovanni Campagna 2010-10-24 12:57:53 UTC
Created attachment 173115 [details] [review]
Avoid warnings on null actors for tray icons

Plugging the GtkSocket icon can fail, in which case NaTrayManager emits
tray-icon-removed but the icon has never emitted plug-added, thus the
ShellTrayIcon has not been created. This results in various criticals
and exceptions in the tray-icon-removed handler.
Comment 2 Giovanni Campagna 2010-10-24 12:58:05 UTC
Created attachment 173116 [details] [review]
Avoid warnings on leave-event for widgets tracking hover

ClutterCrossingEvent->related can be NULL if the pointer is not under
any actor. Unconditionally set hover to FALSE in that case.
Comment 3 Giovanni Campagna 2010-10-24 12:58:16 UTC
Created attachment 173117 [details] [review]
Allow for empty WM_CLASS and _NET_WM_NAME in tray icons

The system tray specification says the hint should be set, but some
icons leave it empty anyway. Don't throw exceptions in that case.
Comment 4 Giovanni Campagna 2010-10-24 14:33:40 UTC
Created attachment 173120 [details] [review]
Avoid warnings on null actors for tray icons

Plugging the GtkSocket icon can fail, in which case NaTrayManager emits
tray-icon-removed but the icon has never emitted plug-added, thus the
ShellTrayIcon has not been created. This results in various criticals
and exceptions in the tray-icon-removed handler.
Comment 5 Dan Winship 2010-10-25 13:40:29 UTC
Comment on attachment 173117 [details] [review]
Allow for empty WM_CLASS and _NET_WM_NAME in tray icons

>+            source = this._newSource(icon.title || '', icon.pid);

The UI doesn't work well for sources with no titles. Maybe if there's no title try .wm_class, and if that's unset too, use _("Unknown"), which will look stupid and inspire people to file bugs against the bad icon?
Comment 6 Giovanni Campagna 2010-10-25 14:34:32 UTC
Created attachment 173179 [details] [review]
Allow for empty WM_CLASS and _NET_WM_NAME in tray icons

The system tray specification says the hint should be set, but some
icons leave it empty anyway. Don't throw exceptions in that case.
Comment 7 Giovanni Campagna 2010-10-25 14:42:53 UTC
All patches have been committed, but I'm leaving the bug open in case we found out some other warning to fix.
Comment 8 Giovanni Campagna 2010-10-28 20:27:39 UTC
Created attachment 173432 [details] [review]
Don't remove the tray icons we don't add

Tray icons replaced by a shell version are automatically filtered
and never make to the tray container, but when removed by the client
we were still trying to remove them from the tray, causing a warning.
Comment 9 Giovanni Campagna 2010-10-28 20:29:49 UTC
Created attachment 173433 [details] [review]
Do not remove destroyed actors from their container

The container already connects to destroy and will do that for us,
preventing a warning.
Comment 10 Dan Winship 2010-10-28 20:36:44 UTC
Comment on attachment 173432 [details] [review]
Don't remove the tray icons we don't add

ok. i think you could also just check "if (icon.get_parent() != null)"
Comment 11 Dan Winship 2010-10-28 20:39:51 UTC
Comment on attachment 173433 [details] [review]
Do not remove destroyed actors from their container

I made removeActor public because a menuitem subclass might need to remove an actor (that hasn't been destroyed yet).

various possibilities... maybe add an alreadyDestroyed flag, which the destroy signal handler would pass true for?
Comment 12 Giovanni Campagna 2010-10-28 20:53:52 UTC
(In reply to comment #11)
> (From update of attachment 173433 [details] [review])
> I made removeActor public because a menuitem subclass might need to remove an
> actor (that hasn't been destroyed yet).

Why would you remove an actor without destroying it?
It is easier to destroy then recreate when needed again.
(Or to hide and show, if that change is happening often - of course that should be taken account of in _allocate)
Comment 13 Dan Winship 2010-10-29 12:32:23 UTC
(In reply to comment #12)
> Why would you remove an actor without destroying it?
> It is easier to destroy then recreate when needed again.

well, that depends.

anyway, you can just make removeActor private (_removeActor) if you'd rather
Comment 14 Giovanni Campagna 2010-10-29 14:30:02 UTC
Created attachment 173482 [details] [review]
Don't remove the tray icons we don't add

Tray icons replaced by a shell version are automatically filtered
and never make to the tray container, but when removed by the client
we were still trying to remove them from the tray, causing a warning.
Comment 15 Giovanni Campagna 2010-10-29 14:34:47 UTC
Created attachment 173483 [details] [review]
Do not remove destroyed actors from their container

The container already connects to destroy and will do that for us,
preventing a warning.
Comment 16 Giovanni Campagna 2010-10-29 14:36:21 UTC
Created attachment 173485 [details] [review]
Do not remove destroyed actors from their container

The container already connects to destroy and will do that for us,
preventing a warning.
Comment 17 Giovanni Campagna 2011-01-11 20:16:01 UTC
Created attachment 178083 [details] [review]
LookingGlass: fix a Clutter warning

After destroying an actor, it is no more parented anywhere, so we
cannot allocate it.
Comment 18 drago01 2011-01-13 16:42:29 UTC
Review of attachment 178083 [details] [review]:

This makes sense. (Having an actor called "eventHandler" is kind of odd though, but unrelated to this patch)
Comment 19 Giovanni Campagna 2011-01-13 21:56:39 UTC
Comment on attachment 178083 [details] [review]
LookingGlass: fix a Clutter warning

Attachment 178083 [details] pushed as 856207c - LookingGlass: fix a Clutter warning
Comment 20 Bill Nottingham 2011-02-03 20:19:27 UTC
Seeing assorted messages of the form:

(mutter:12509): Clutter-WARNING **: The actor 'ShellGenericContainer' (or 'message-tray', or 'ClutterGroup') is currently inside an allocation cycle; calling clutter_actor_queue_relayout() is not recommended
Comment 21 Bill Nottingham 2011-02-03 20:41:07 UTC
These seem triggered by clicking on various things in the message tray.
Comment 22 Giovanni Campagna 2012-01-09 15:41:16 UTC
Some more critical hunting, for random errors I found recently.
Comment 23 Giovanni Campagna 2012-01-09 15:42:05 UTC
Created attachment 204872 [details] [review]
App menu: only create the popup menu with a GMenu

Since the application proxy is created asynchronously, at the time
the GActionGroup (GActionMuxer) is created, there is no GDBusMenu yet.
Defer creating the menu in that case.
Also, clear out signal handlers if have no target application.
Comment 24 Giovanni Campagna 2012-01-09 15:42:14 UTC
Created attachment 204873 [details] [review]
Place display: don't use a StIcon for DND

DND code assumes it can query the size of the actor before parenting,
while StWidget asserts that get_preferred_size() is only called
after the actor is on stage. This fixes a crash while dragging
"Connect to..."
Comment 25 Giovanni Campagna 2012-01-09 15:42:24 UTC
Created attachment 204874 [details] [review]
ShellApp: don't use the app proxy before it's created

The application proxy is created asynchrously after the dbus name
is registed. This means that when tracking the first window (and
therefore creating the first window GActionGroup) there is no
app proxy yet.
Comment 26 Giovanni Campagna 2012-01-09 15:42:46 UTC
Created attachment 204875 [details] [review]
ShellApp: don't use the app proxy before it's created

The application proxy is created asynchrously after the dbus name
is registed. This means that when tracking the first window (and
therefore creating the first window GActionGroup) there is no
app proxy yet.
Comment 27 Matthias Clasen 2012-01-13 12:38:37 UTC
Comment on attachment 204875 [details] [review]
ShellApp: don't use the app proxy before it's created

the last patch was a dupe
Comment 28 Giovanni Campagna 2012-01-13 17:55:21 UTC
Created attachment 205214 [details] [review]
ShellEmbeddedWindow: don't update the size of a destroyed actor.

shell_embedded_window_hide() can be called during widget destruction,
after the associated ClutterActor has been already cleared out.
Fix a crash in that case.

-----

Yep, sorry, I made a mistake in attaching and then didn't check.
Comment 29 drago01 2012-01-14 10:21:03 UTC
Review of attachment 205214 [details] [review]:

Looks good.
Comment 30 drago01 2012-01-14 10:21:58 UTC
Review of attachment 204873 [details] [review]:

Looks good.
Comment 31 drago01 2012-01-14 10:23:32 UTC
Review of attachment 204874 [details] [review]:

Didn't test it but makes sense.
Comment 32 Giovanni Campagna 2012-01-14 12:37:14 UTC
Attachment 204873 [details] pushed as 7da3903 - Place display: don't use a StIcon for DND
Attachment 204874 [details] pushed as f4d13b9 - ShellApp: don't use the app proxy before it's created
Attachment 205214 [details] pushed as abcca3d - ShellEmbeddedWindow: don't update the size of a destroyed actor.
Comment 33 drago01 2012-01-17 17:35:10 UTC
Review of attachment 204872 [details] [review]:

Sorry missed this one, looks fine as too.
Comment 34 Giovanni Campagna 2012-01-17 17:40:28 UTC
Comment on attachment 204872 [details] [review]
App menu: only create the popup menu with a GMenu

Attachment 204872 [details] pushed as 1bac40f - App menu: only create the popup menu with a GMenu
Comment 35 Florian Müllner 2013-06-14 13:47:16 UTC
It's faster to file new bugs than searching for a particular "bugs" bug, so let's just close this ...