When I run gdmflexiserver from gnome-terminal on Solaris, it fails and shows me error.
"Unable to determine session: Unable to lookup information about calling process 110051"
Root cause is envrionment variable "XDG_SESSION_COOKIE" of my bash process is lost due to using custom ~/.bashrc. That results in ConsoleKit unable to return correct session id from "org.freedesktop.ConsoleKit.Manager.GetCurrentSession"
Created attachment 16426 [details] [review]
A possible fix
Check"XDG_SESSION_COOKIE" in not only current process but also its parent process .
Do you have a comment on this issue and the proposed patch? It would
seem as though this would also allow policykit-using tools to work
under sudo, which there have been bug reports about in Ubuntu, e.g.
Check with the Ubuntu bug, it guess it is similar with the following case in Solaris:
<input your root password>
If we use "su" instead of "su -" in upper case, the XDG_SESSION_COOKIE is retained. So gdmflexiserver can start without error.
If you have unset XDG_SESSION_COOKIE in your ~/.bashrc explicitly, that is user mistake. I'd say this is not a bug.
The thing is, in the gdmflexiserver case and the su case, they really are separate sessions, so piggy backing off the other parent session isn't right.
Right now ConsoleKit doesn't have great support for nested sessions, but that's really what we need I think.