[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