Hello
I have cyrus-imapd 2.0.7.
Some time imapd eat 90% CPU time.
I start gdb and see:
(gdb) where
#0 parse_cached_envelope (env=0x810f9b0 "\"Sat, 25 Nov 2000 18:26:49 +0100",
tokens=0xbffff2d4) at index.c:3019
#1 0x805c191 in index_msgdata_load (msgno_list=0x810d7a8, n=145, sortcrit=0x810d5d0)
at index.c:2970
#2 0x80589b6 in index_sort (mailbox=0x80fa8e0, sortcrit=0x810d5d0,
searchargs=0x810d6c0, usinguid=1) at index.c:1054
#3 0x8051df6 in cmd_sort (tag=0x810c0d8 "00000010", usinguid=1) at imapd.c:2917
#4 0x804e3fe in cmdloop () at imapd.c:1148
#5 0x804c647 in service_main (argc=1, argv=0xbffffd04, envp=0xbffffd0c) at imapd.c:471
#6 0x804b41e in main (argc=1, argv=0xbffffd04, envp=0xbffffd0c) at service.c:223
(gdb) list
3014 {
3015 char *c;
3016 int i = 0, len, ncom;
3017
3018 c = env;
3019 while (*c != '\0') {
3020 switch (*c) {
3021 case ' ': /* end of token */
3022 *c = '\0'; /* mark end of token */
3023 c++;
(gdb) print *c
$1 = 41 ')'
(gdb) n
3020 switch (*c) {
1: *c = 41 ')'
(gdb)
3019 while (*c != '\0') {
1: *c = 41 ')'
(gdb)
3020 switch (*c) {
1: *c = 41 ')'
(gdb)
3019 while (*c != '\0') {
1: *c = 41 ')'
(gdb)
3020 switch (*c) {
1: *c = 41 ')'
(gdb)
3019 while (*c != '\0') {
1: *c = 41 ')'
(gdb)
3020 switch (*c) {
1: *c = 41 ')'
Regards
--
Artur Frysiak
http://www.pld.org.pl/