[rt-devel] 3.0.10 Group Members "crash"
Scott A. McIntyre
scott at xs4all.net
Sun Apr 4 07:40:38 EDT 2004
--On Saturday, April 03, 2004 11:36 -0500 Jesse Vincent
<jesse at bestpractical.com> wrote:
> Scott,
>
> That error appears to be from when you tried to work with templates for
> queue # 57. Does that jibe with reality?
>>
Yes, actually, and it could be that since the very next thing I did was try
to work with and look at Group memberships that I'm associating the log
entries of the timed out FastCGI runs with the wrong event.
Queue 57 was indeed the first queue I went to to look at configuration --
it has custom templates and I saw in the rt2-to-rt3 import logs a list of
the various queues that had these customizations that would need to be
revisited.
The templates were easy enough to re-create and I did that; then I went to
the Group section, and that's where it seemed to hang. The queue had in
rt2 group-based access control, so going to the Configuration -> Groups was
my next step.
When it 'hangs' the only error I seem to find is:
[Sat Apr 3 09:55:31 2004] [error] FastCGI: comm with server
"/opt/rt3/bin/mason_handler.fcgi" aborted: idle timeout (60 sec)
[Sat Apr 3 09:56:31 2004] [error] FastCGI: comm with server
"/opt/rt3/bin/mason_handler.fcgi" aborted: idle timeout (60 sec)
[Sat Apr 3 09:56:31 2004] [error] FastCGI: incomplete headers (0 bytes)
received from server "/opt/rt3/bin/mason_handler.fcgi"
I was able to repeat the 'hang' this morning by going to Configuration ->
Groups -> [ some group ] -> Members.
That generates the following in MySQL:
Copying to tmp table | SELECT DISTINCT main.* FROM Users main, Principals
Principals_1, CachedGroupMembers CachedGroupMembers_2 WHERE
((CachedGroupMembers_2.GroupId = '4')) AND ((Principals_1.Disabled = '0'))
AND ((Principals_1.PrincipalType = 'User')) AND ((Principals_1.id =
CachedGroupMembers_2.MemberId)) AND ((main.id = Principals_1.id)or(main.id
!= '1')or(main.id != '10')) ORDER BY main.Name ASC
And that stays there. If I try stopping (browser cancel) or selecting
another link, I see:
| 64 | rt_user | localhost | rt3 | Query | 49 | User lock |
SELECT GET_LOCK('Apache-Session-c4619ac46bcad5c35a3e249fa797bc71', 3600)
also appear, and this stays for presumably the 60 second timer value above.
A manual mysql kill of the SELECT restores rt3 for me.
So it is not the Group Rights, but the listing of Group members that has
the hang -- if I repeat the process but don't try to view the members, just
the group rights, it works.
Following the MySQL log from a click on Members for any group:
040404 13:31:19 58 Query SELECT
GET_LOCK('Apache-Session-c4619ac46bcad5c35a3e249fa797bc71', 3600)
58 Query SELECT a_session FROM sessions WHERE id
= 'c4619ac46bcad5c35a3e249fa797bc71'
58 Query SELECT * FROM Users WHERE id = '169214'
58 Query SELECT * FROM Groups WHERE Type =
'Privileged' AND Domain = 'SystemInternal'
58 Query SELECT * FROM Principals WHERE
PrincipalType = 'User' AND ObjectId = '169214'
58 Query SELECT * FROM GroupMembers WHERE
GroupId = '4' AND MemberId = '169214'
58 Query SELECT * FROM Groups WHERE id =
'198301'
58 Query SELECT count(main.id) FROM GroupMembers
main WHERE ((main.GroupId = 198301))
58 Query SELECT DISTINCT main.* FROM
GroupMembers main, Principals Principals_1 WHERE
((Principals_1.PrincipalType = 'User')) AND ((main.GroupId = 198301)) AND
((main.MemberId = Principals_1.id))
58 Query SELECT * FROM Principals WHERE id =
'40010'
58 Query SELECT * FROM Users WHERE id = '40010'
58 Query SELECT * FROM Principals WHERE id =
'52350'
58 Query SELECT * FROM Users WHERE id = '52350'
58 Query SELECT * FROM Principals WHERE id =
'72128'
58 Query SELECT * FROM Users WHERE id = '72128'
58 Query SELECT * FROM Principals WHERE id =
'154946'
58 Query SELECT * FROM Users WHERE id = '154946'
58 Query SELECT * FROM Principals WHERE id =
'160196'
58 Query SELECT * FROM Users WHERE id = '160196'
58 Query SELECT * FROM Principals WHERE id =
'170524'
58 Query SELECT * FROM Users WHERE id = '170524'
58 Query SELECT * FROM Principals WHERE id =
'172280'
58 Query SELECT * FROM Users WHERE id = '172280'
58 Query SELECT DISTINCT main.* FROM
GroupMembers main, Principals Principals_1 WHERE
((Principals_1.PrincipalType = 'Group')) AND ((main.GroupId = 198301)) AND
((main.MemberId = Principals_1.id))
58 Query SELECT DISTINCT main.* FROM Users main,
Principals Principals_1, CachedGroupMembers CachedGroupMembers_2 WHERE
((CachedGroupMembers_2.GroupId = '4')) AND ((Principals_1.Disabled = '0'))
AND ((Principals_1.PrincipalType = 'User')) AND ((Principals_1.id =
CachedGroupMembers_2.MemberId)) AND ((main.id = Principals_1.id)or(main.id
!= '1')or(main.id != '10')) ORDER BY main.Name ASC
After one minute:
040404 13:32:19 69 Query SELECT
GET_LOCK('Apache-Session-c4619ac46bcad5c35a3e249fa797bc71', 3600)
And the browser displays:
HTTP/1.1 200 OK Date: Sun, 04 Apr 2004 11:31:19 GMT Server: Apache/1.3.29
(Debian GNU/Linux) mod_fastcgi/2.4.0 Pragma: no-cache Cache-control:
no-cache Keep-Alive: timeout=15, max=97 Connection: Keep-Alive
Transfer-Encoding: chunked Content-Type: text/html; charset=iso-8859-1
And it's still trying to / copying to the tmp table for the query.
My MySQL is 4.0.18-log.
Scott
More information about the Rt-devel
mailing list