Launchpad has imported 9 comments from the remote bug at
https://bugs.kde.org/show_bug.cgi?id=354724.

If you reply to an imported comment from within Launchpad, your comment
will be sent to the remote bug automatically. Read more about
Launchpad's inter-bugtracker facilities at
https://help.launchpad.net/InterBugTracking.

------------------------------------------------------------------------
On 2015-11-02T07:34:43+00:00 Leslie Zhai wrote:

When open chromium, konsole, thunderbird, then logout, relogin, but only
thunderbird successful WM_SAVE_YOURSELF, chromium or konsole failed to
be opened.

plasma-workspace: 5.4.90
KF5: 5.15.0
Qt5: 5.5.1 

Reproducible: Always

Steps to Reproduce:
1. open chromium, konsole, thunderbird, then logout
2. relogin

Actual Results:  
but only thunderbird successful WM_SAVE_YOURSELF

Expected Results:  
chromium and konsole able to be opened.

Reply at: https://bugs.launchpad.net/ubuntu/+source/plasma-
workspace/+bug/1446865/comments/76

------------------------------------------------------------------------
On 2015-11-02T07:36:53+00:00 Leslie Zhai wrote:

my ~/.config/ksmserverrc 
[General]
screenCount=1

[LegacySession: saved at previous logout]
clientMachine1=localhost
command1=thunderbird
count=1

[Session: saved at previous logout]
clientId1=1014cd7d2d4000144435205700000012260003
clientId2=1014cd7d2d4000144435208500000012260012
clientId3=10bd534f46000144610537700000070460007
count=3
discardCommand1[$e]=rm,$HOME/.config/session/kwin_1014cd7d2d4000144435205700000012260003_1446105607_787343
discardCommand2[$e]=rm,$HOME/.config/session/kmix_1014cd7d2d4000144435208500000012260012_1446105607_737385
program1=kwin_x11
program2=/bin/kmix
program3=/usr/lib/mozilla/kmozillahelper
restartCommand1=kwin_x11,-session,1014cd7d2d4000144435205700000012260003_1446105607_787343
restartCommand2=/bin/kmix,-session,1014cd7d2d4000144435208500000012260012_1446105607_737385
restartCommand3=/usr/lib/mozilla/kmozillahelper,-session,10bd534f46000144610537700000070460007_1446105607_737492
restartStyleHint1=0
restartStyleHint2=0
restartStyleHint3=0
userId1=lesliezhai
userId2=lesliezhai
userId3=lesliezhai
wasWm1=true
wasWm2=false
wasWm3=false

Reply at: https://bugs.launchpad.net/ubuntu/+source/plasma-
workspace/+bug/1446865/comments/77

------------------------------------------------------------------------
On 2015-11-05T08:31:53+00:00 Leslie Zhai wrote:

When open konsole, dolphin, systemsettings5, then logout

legacy.cpp, line 113
windowSessionId(*it, leader) is NOT EMPTY!

legacy.cpp, line 214
windowWmCommand(w) is EMPTY!

Reply at: https://bugs.launchpad.net/ubuntu/+source/plasma-
workspace/+bug/1446865/comments/78

------------------------------------------------------------------------
On 2015-11-23T01:42:30+00:00 maelcum wrote:

While debugging the problem with Konsole, I found a common problem with
Qt5 applications:

QGuiApplicationPrivate::commitData() (supposed to make sure that the session is 
saved) calls
QApplicationPrivate::tryCloseAllWindows() which, when 
QGuiApplication::quitOnLastWindowClosed() is true, invokes
QApplication::quit()

which terminates the application immediately after it reports successful 
session saving to the session manager ksmserver.
During session shutdown, ksmserver still removes its bookkeeping data about 
applications that were terminated for any reason - including those that quit 
right after session saving. When ksmserver saves the list of existing 
application slightly later, konsole is gone and, while it has a session save 
file, that file isn't "registered" in ksmserverrc, which makes it useless.

There are at several problems:
- QGuiApplicationPrivate::commitData() effectively quits the application if the 
application didn't call QGuiApplication::setQuitOnLastWindowClosed(false). This 
is despite Qt's own documentation recommending against quitting the application 
due to a request to save the session data.
- setQuitOnLastWindowClosed(false) is not a good solution. Quit on last window 
closed is a useful feature, the problem is more that session saving implies 
closing windows, which doesn't make too much sense. It is supposed to prevent 
interaction with a state that won't be saved anymore, but there are other ways 
to do that, e.g. preventing user input and network event handling.
- ksmserver should maybe stop removing applications from its internal list 
while shutting down. Because shutdown can be aborted, changes would have to be 
queued and applied after an aborted shutdown.

Reply at: https://bugs.launchpad.net/ubuntu/+source/plasma-
workspace/+bug/1446865/comments/79

------------------------------------------------------------------------
On 2015-11-23T01:56:17+00:00 Leslie Zhai wrote:

Hi Andreas,

Thanks for your analysis, I wrongly argued that it might be libSM issue,
I will try your solution.

Reply at: https://bugs.launchpad.net/ubuntu/+source/plasma-
workspace/+bug/1446865/comments/80

------------------------------------------------------------------------
On 2015-11-23T11:53:00+00:00 maelcum wrote:

Hello Leslie, just in case you were planning to change ksmserver, I've since 
realized that saving the session restore data of each application right away 
(just after receiving its session restore data) in a separate, dedicated data 
structure is a much better idea than messing around with the main clients list.
When session saving is aborted, simply throw that data away. No interactions to 
worry about.

I still don't agree with Qt's session saving behavior... but I doubt
that it's fixable, for compatibility reasons.

Reply at: https://bugs.launchpad.net/ubuntu/+source/plasma-
workspace/+bug/1446865/comments/81

------------------------------------------------------------------------
On 2015-12-07T06:11:19+00:00 Leslie Zhai wrote:

https://bugs.kde.org/show_bug.cgi?id=341930

Reply at: https://bugs.launchpad.net/ubuntu/+source/plasma-
workspace/+bug/1446865/comments/87

------------------------------------------------------------------------
On 2015-12-11T07:45:20+00:00 Leslie Zhai wrote:

Hi Andreas https://git.reviewboard.kde.org/r/126311/ workaround monkey
patch ;P hope you can fix it in right way ;-)

Reply at: https://bugs.launchpad.net/ubuntu/+source/plasma-
workspace/+bug/1446865/comments/88

------------------------------------------------------------------------
On 2015-12-11T08:26:39+00:00 Thomas-luebking wrote:

I don't know whether there's a QTBUG reported, but the problem is that
QGuiApplication tries to ::tryCloseAllWindows() in
QGuiApplicationPrivate::commitData()

This is plain wrong, since the window should NOT be closed as long as the 
session is running.
If the session survives for some reason, you'd end up with a half-destroyed 
environment.

=> Window closing and process termination has to happen by the smserver
once it's clear that the session is gonna end.


What the routine *wanted* to do was to send close events to all toplevel 
widgets (to allow clients to perform last clean-ups, data storage etc.) and 
check whether all events are accepted. If not, that means some client wanted 
some window to remain open and that should break the session termination, but 
without having closed half other windows and maybe some processes before.

Don't you dare to call window->closeEvent() directly, the client logic
may be in some eventfilter ;-)

Reply at: https://bugs.launchpad.net/ubuntu/+source/plasma-
workspace/+bug/1446865/comments/89


** Changed in: kdebase-workspace
   Importance: Unknown => Medium

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

Title:
  KDE5/Qt5 does not support session restoration

To manage notifications about this bug go to:
https://bugs.launchpad.net/kdebase-workspace/+bug/1446865/+subscriptions

-- 
kubuntu-bugs mailing list
kubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/kubuntu-bugs

Reply via email to