On Jan 15 20:23, Corinna Vinschen via Cygwin wrote:
> On Jan 15 20:14, Takashi Yano via Cygwin wrote:
> > Hi Corinna,
> >
> > I also could reproduce the issue.
> > [...]
> > Local. In the mintty terminal opened after
> > cygserver is started. In the mintty terminal opened
> > after cygserver is stopped, the gid is as expected.
> >
> > The terminal already opened at the time cygserver is
> > started/stopped is not affected.
> > [...]
> > > If you stop all Cygwin processes and restart cygserver, is the primary
> > > group still as expected?
> >
> > No.
>
> So running cygserver suppresses changing the primary group? That's
> weird, because the effect seems so arbitrary.
>
> Did you try to debug that?
I just took a stab and I can reproduce this easily. It looks like the
culprit is this condition in internal_getlogin():
if (!cygheap->pg.nss_cygserver_caching ())
internal_getgroups (0, NULL, &cldap);
This skips the internal_getgroups() call if cygserver is running.
If I just drop the condition and call internal_getgroups() every time,
it works for me even with cygserver running.
I changed this expression to exclude the internal_getgroups() call back
in 2014, and, as was typical at the time, the ChangeLog entry only
explains *what* I was doing, but not *why*.
The result is that I have no idea anymore why I did this. Dropping the
condition *might* have unfortunate side effects, mainly on the
performance side in scenarios with remote ADs, but, honestly, I don't
know. And it would only affect cygserver users, all the others would
already have the same performance. So it might not be a bad idea to
drop it, all things considered.
I can make this change and you can all try the test release and if
this works fine for you, I can release Cygwin 3.6.7 soonish, is that
ok with everyone?
Thanks,
Corinna
--
Problem reports: https://cygwin.com/problems.html
FAQ: https://cygwin.com/faq/
Documentation: https://cygwin.com/docs.html
Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple