On Wed, 2 Jun 2010 09:39:44 +0400 Eugene Arshinov earshinov@gmail.com wrote:
On Tue, 1 Jun 2010 21:22:06 +0300% Dimitar Zhekov dimitar.zhekov@gmail.com wrote:
67 works, 68 fails. Stable.
Thanks much for investigating this.
Seems that it will be hard to fix. I've looked through the changes made by merge to files I usually touch in SM, but did not find anything that could cause such a failure. And core SM code in sm.c during the merge, of course, remained the same.
It's somehow sm-related. If I comment out smc_conn = sm_connect(...), 4968 works.
BTW, you should pass the new client id to gdk_set_sm_client_id(), not the old/NULL one, but that's not the cause of the error.
In all cases I've googled it's only the program that crashes, not the entire session… Also, errno=32 (EPIPE) indicates something weird is going on. Maybe (blind guess), if startup time is nevertheless the issue, XFCE session manager terminates the connection on timeout…
The "startup time" between which two events? The SM does not know when a program is started, and does not care when/if it's first window will be displayed. You can even write a console program with SM support. :)
Maybe you can track down the bug further by merging trunk to 4967 «step by step» and checking whether the bug is present after each step. When using binary search, those 500 trunk commits will require 10 steps to check. AFAIU, I had no large conflicts while merging. So, if you suddenly have free time for this method, please give it a try.
That'll be a bit more complex. The commits are related, so I can't just arbitarily "turn on/off" half or quarter of them. And if the crash is caused by 2+ related changes, well... Anyway, I'll run some tests in the weekend.