Bug 110315
| Summary: | GDM miscounts current sessions | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Phil Anderson <pza> | ||||||
| Component: | gdm | Assignee: | Havoc Pennington <hp> | ||||||
| Status: | CLOSED RAWHIDE | QA Contact: | |||||||
| Severity: | high | Docs Contact: | |||||||
| Priority: | high | ||||||||
| Version: | rawhide | CC: | ngaywood, stephen.walton, wtogami | ||||||
| Target Milestone: | --- | ||||||||
| Target Release: | --- | ||||||||
| Hardware: | i686 | ||||||||
| OS: | Linux | ||||||||
| Whiteboard: | |||||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||||
| Doc Text: | Story Points: | --- | |||||||
| Clone Of: | Environment: | ||||||||
| Last Closed: | 2004-02-02 19:49:20 UTC | Type: | --- | ||||||
| Regression: | --- | Mount Type: | --- | ||||||
| Documentation: | --- | CRM: | |||||||
| Verified Versions: | Category: | --- | |||||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||||
| Embargoed: | |||||||||
| Bug Depends On: | 114986 | ||||||||
| Bug Blocks: | |||||||||
| Attachments: |
|
||||||||
|
Description
Phil Anderson
2003-11-18 11:53:32 UTC
Still broken in rawhide. This is particularly crippling for K12LTSP and my LUG's super-linux-advocacy presentation of K12LTSP at a huge educator's conference on February 3rd. Help!!! The work around which I'm using is to set in your /etc/X11/gdm/gdm.conf MaxSessions=9999 And I restart gdm nightly. I don't know if this helps, but I had a chance to look at the source
code and compare it with an older version of gdm. The culprit seems
to be in display.c lines 411 ff:
if (d->type == TYPE_XDMCP) {
if (d->dispstat == XDMCP_MANAGED)
xdmcp_sessions--;
else if (d->dispstat == XDMCP_PENDING)
xdmcp_pending--;
d->type = -1;
}
In the older version the same code read
if (d->type == TYPE_XDMCP) {
xdmcp_sessions--;
if (d->dispstat == XDMCP_PENDING)
xdmcp_pending--;
d->type = -1;
}
If you look in xdmcp.c, routine gdm_xdmcp_display_alloc increments
xdmcp_pending when it creates a PENDING display, and
gdm_xdmcp_handle_manage decrements xdmcp_pending and increments
xdmcp_sessions when converting a PENDING display to an actual one. So
the first form of the code above <i>looks</i> correct, but obviously
isn't doing the right thing for some reason.
Created attachment 97405 [details]
gdm-2.4.4.5-xdmcp_sessions.patch
It turns out to be a race condition already fixed in gdm-2.5.90.0. I copied
and tested the relevant code from upstream into this patch. Tested in FC2
rawhide only. Please test in FC1.
Created attachment 97406 [details]
gdm-2.4.4.5-7.spec.diff
* Sun Feb 01 2004 Warren Togami <wtogami> 1:2.4.4.5-8
- patch30 xdmcp_session counter fix from gdm-2.5.90.0 #110315
- automake14 really needed, not automake
- BR libcroco-devel, libcroco-devel, libattr-devel, gettext
- conditionally BR libselinux-devel
- explicit epoch in all deps
You should see this in rawhide soon. https://bugzilla.redhat.com/bugzilla/attachment.cgi?id=97457&action=view updated xdmcp_sessions patch adds two missing lines from upstream CVS I know this is closed but wanted to post that the fix works for me. Thanks, Warren! |