Message: previous - next
Month: April 2012

Re: [trinity-devel] First report: TSAK/TDM related issues

From: Darrell Anderson <humanreadable@...>
Date: Thu, 19 Apr 2012 08:45:49 -0700 (PDT)
> You will only see the dialog if:
> 1.) It is turned on in tdmrc via tdmrc:useSAK=true as you stated
> 2.) Your system fully supports tsak; this usually means that you need to
> load the uinput kernel module on Linux.  Trying to run
> /opt/trinity/bin/tsak manually (as root) will give you the
> exact reason for any failures encountered.

Perhaps a couple of changes:

* The What's This popup should provide the uinput information.

* Whenever a user enables the SAK check box in KControl, upon pressing the Apply button the code should determine whether uinput is loaded. If not, provide an informational OK dialog that uinput needs to be loaded. If uinput is loaded then don't bother with a dialog.

BTW, the help handbook has nothing about TSAK. Nada. :)

Back to our regularly scheduled testing.

With tdmrc:useSAK=true and booting into graphical login mode:

* I am presented with the Ctrl-Alt-Del dialog.

* I am able to proceed past the Ctrl-Alt-Dialog to the login dialog.

* I see two pipe files in /tmp/tdesocket-global: 1) tsak and 2) tsak.lock. Permissions of both are 600, root:root.

* /tmp/tdesocket-global is owned by root:root and not the primary user account.

* After logging in and upon pressing Ctrl-Alt-Del I am presented with a TSAK Lock Session dialog. Things got buggy here.
  When I selected Cancel I lost all of my desktop icons, the desktop context menu would not appear, and thereafter
  trying to logout using any option or press Ctrl-Alt-Del did nothing. I had to press Ctrl-Alt-Backspace and login again.

  Note: I use Ctrl-Alt-Del as my shortcut to logout. I also logout using the desktop popup menu, the TDE Menu, and the
  Logout applet. I use all four methods --- no predicting which one I might use. The TSAK Lock Session dialog appears only
  when pressing Ctrl-Alt-Del and does not appear with the other methods. Perhaps intended, but this seems inconsistent and
  confusing. Should users see the TSAK logout dialog using all methods to logout?

* Upon pressing Ctrl-Alt-Del and being presented with the TSAK Lock Session dialog, selecting Lock Session works, but again
  the desktop icons disappear, the desktop context menu would not appear, and I could not logout thereafter.

* Using the Lock session applet button worked but resulted in the same loss of desktop icons when the session was restored.
  Same result too that I had to press Ctrl-Alt-Backspace to recover.

* I am not sure the disappearance of the desktop icons and desktop context menu and inability to logout is directly caused
  by the TSAK Lock Session dialog. Several times when testing this happened anyway although I did not call the TSAK Lock
  Session dialog. Certainly related to TSAK because when TSAK is disabled the problem evaporates.

* Upon logging out, after pressing Ctrl-Alt-Del to obtain access to the TDM login dialog, I reset the X server using the
  Alt-E shortcut. The file date stamp on /tmp/tdesocket-global/tsak changed to that time but the tsak.lock file retained
  the time stamp from my boot time. That means restarting the X server only partially resets TSAK.

* Disabling TSAK from KControl does not immediately stop TSAK. After disabling through KControl, immediately pressing
  Ctrl-Alt-Del invokes the TSAK Lock Session dialog with all of the same results of losing desktop icons and needing to
  press Ctrl-Alt-Backspace. This seems inconsistent. My thinking is when I disable TSAK in KControl then I have done just
  that: disabled. If disabling TSAK requires something additional, such as resetting the X server or rebooting, then a
  popup dialog should inform the user that the change won't take effect until that condition is satisfied.

* After disabling TSAK in KControl, upon returning to the TDM dialog, I was not presented with a Ctrl-Alt-Del dialog. I
  reset the X-server anyway. Upon logging in, the tsak.lock pipe file remained and was not deleted.

* After disabling TSAK in KControl, I could not use Ctrl-Alt-Del to logout. That won't do. :) I suspect there is a
  relationship with uinput.

* After disabling TSAK in KControl, rebooting, and not loading uinput, I then could again use Ctrl-Alt-Del to logout.

* I am not allowed to rmmod uinput without rebooting or changing run levels. Disabling TSAK through KControl and
  restarting the X server is insufficient.

* After rebooting, the tsak.lock pipe file remains. No housekeeping. The file should get deleted at the same time the
  tsak pipe file is deleted.

With tdmrc:useSAK=true, booting into command line, using startx:

* I cleaned /tmp before rebooting.

* I did not load uinput.

* I could use Ctrl-Alt-Del to logout.

* There were no tsak pipe files to be found.

* The xsession message "[kdesktop] SAK driven secure dialog is not available for use (retcode 6).  Check tdmtsak for proper functionality." still appears.

* The xsession message "tdmctl: Cannot connect socket '/var/run/xdmctl/dmctl-:0/socket'" still appears.


I have yet to file a bug report but TDM creates nominal profile directories in /tmp. All such directories use a numeric name string. TDM runs as non-user, but should not be creating any profile directories. Not needed and the profile directories are never purged. This never happened in KDE3. With my testing, which required many repeated logins, my /tmp directory was overflowing with these (useless) profile directories. Some distros have built-in cleanup scripts on shutdown. some don't. As this profile creation never happened in KDE3, we should look into why this now happens in TDE.


Lots of details here, initially looks overwhelming, but good progress overall. Mostly this narrows to a few issues.

* Adding informational aides about uinput.

* What is happening with the TSAK Lock Session dialog with why the desktop icons disappear, the desktop context menu
  will not appear, and the user can't logout thereafter.

* Remove the two xsession messages when logging in from the command line.

* Improve housekeeping by removing tsak.lock: 1) upon a reboot (TDM should do this), 2) disabling TSAK from KControl.

* I do not recommend automatically loading uinput for the user because with the next reboot the module again needs to be
  loaded. The distros all differ with how that is accomplished. Possibly a nice aide would be whenever the system starts
  and TDM detects the status of useSAK=true, and uinput is not loaded, perhaps an informational "OK" dialog appears
  informing the user. The uinput requirement is just not obvious anywhere.