FIXME: Doesn't work yet hangs on threads_enter... to be removed in system_tray_icon.py.py

Bug #305597 reported by Samuel Buffet
2
Affects Status Importance Assigned to Milestone
Entertainer Media Center
Fix Released
High
Matt Layman

Bug Description

in line 180 of /entertainerlib/utils/system_tray_icon.py we have :

#FIXME Doesn't work yet hangs on threads_enter so commented out

This FIXME is in the "Quit" menu item callback of the popup menu in the notification area.

In this callback, we're supposed to quit Entertainer closing the backend and the frontend.

We cannot quit the backend at the moment with this menu. This feature doesn't work and should be implemented as the only way we have is to kill the backend process. This situation is not acceptable for an Entertainer user.

Changed in entertainer:
importance: Undecided → Critical
status: New → Confirmed
Revision history for this message
Paul Hummer (rockstar) wrote :

Joshua, I think this should be your next priority. With all the work going into 0.3, this issue grossly affects the usability of Entertainer.

Changed in entertainer:
assignee: nobody → joshuascotton
milestone: none → entertainer-0.3
Revision history for this message
Joshua Scotton (joshuascotton) wrote :

Ok Paul, do you want me to fix the clutter warnings on my other merge proposal first or prioritize fixing this bug?

Revision history for this message
Paul Hummer (rockstar) wrote : Re: [Bug 305597] Re: FIXME: Doesn't work yet hangs on threads_enter... to be removed in system_tray_icon.py.py

Joshua Scotton wrote:
> Ok Paul, do you want me to fix the clutter warnings on my other merge
> proposal first or prioritize fixing this bug?
>
>
Well, I need your branch to land before I can truly land my ImageCache
branch (my branch is dependent on yours). Please fix that first, then
work on this.

Changed in entertainer:
status: Confirmed → In Progress
Revision history for this message
Samuel Buffet (samuel-buffet) wrote : Re: [Bug 305597] Re: FIXME: Doesn't work yet hangs on threads_enter... to be removed in system_tray_icon.py.py

Joshua,

I'll finished here what we've started to talk about yesterday.

"""Show confirmation dialog and quit backend"""
#FIXME Doesn't work yet hangs on threads_enter so commented out

I may have not correctly understood the FIXME but the word I found
important is in the """xx""" above is : backend.

In my opinion, it's important to be able to quit the *backend* in a
way or another. So first I suggested, filing the bug, to quit the
backend in that "quit" callback.
But in fact it's not very good because there we also quit the frontend
and we don't want necessarily to do both at the same time.

We may want to close the frontend alone or we may want to close the
frontend AND the backend (closing the backend alone doesn't make
sens).

Some possibilities are :

i/ 2 items in the menu "quit" and "close Entertainer and it's backend"
ii/ Only one quit but after we ask "Do you also want to close the backend"
iii/ Only "close the backend" + a confirmation of that kind "To close
the backend will also close Entertainer. Are you sure? Yes/No"

I personally vote ii/ but I let you talk about that with Matt and Paul.

Matt, Paul, what's your view on that?

Samuel,

Revision history for this message
Matt Layman (mblayman) wrote :

I think we could use the autostart backend feature to make our quit dialog as smart as possible without adding extra options. I think this would be option iv.

If users have autostart the backend selected (the default configuration), then quitting the application should stop the frontend and the backend (which is bound to happen anyway because they are connected to the same process).

If users don't have the backend set to autostart, then that means that they started the backend process themselves. At that point, we should respect their set up and not shut down the backend process.

Since the backend doesn't have a graphical interface, it may be smart to add a command line option to entertainer-backend so that we can stop that process if it is already running. I'm not quite sure how to do that, but I bet it can be done without too much effort.

That's my idea of how we should quit properly.

Paul Hummer (rockstar)
Changed in entertainer:
assignee: joshuascotton → nobody
importance: Critical → High
milestone: entertainer-0.3 → none
status: In Progress → Triaged
Revision history for this message
Matt Layman (mblayman) wrote :

I've fixed this issue. The quit method will respect the backend running if it is purposefully detached from the frontend.

Changed in entertainer:
assignee: nobody → laymansterms
status: Triaged → In Progress
Paul Hummer (rockstar)
Changed in entertainer:
status: In Progress → Fix Committed
Matt Layman (mblayman)
Changed in entertainer:
milestone: none → entertainer-0.4
Paul Hummer (rockstar)
Changed in entertainer:
status: Fix Committed → Fix Released
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.