I had similar problems, but I think it may have related to the number of messages returned. I had something like 40,000 to purge, and I don't think the query was returning.
>From memory, if I changed all but 100 customers to state=002 and then ran Status: O purge, it worked. But this was a real pain so I ended up writing a perl program to do it. #!/usr/bin/perl use DBI; $db_dbmailauth = DBI->connect($DBMAILAUTH_DBHOST, $DBMAILAUTH_DBUSER, $DBMAILAUTH_DBPASS); $db_dbmailstore = DBI->connect($DBMAILSTORE_DBHOST, $DBMAILSTORE_DBUSER, $DBMAILSTORE_DBPASS); print "Getting message list (status=003) \n"; my $query = $db_dbmailstore->prepare("select message_idnr from messages where status=003 order by message_idnr limit 50000"); $query->execute || print "error was ".$db_dbmailstore->errstr; $query->bind_columns( undef, \($message_idnr) ); print "DELETING THE FOLLOWING MESSAGES\n"; while ($query->fetch) { print "+ $message_idnr \n"; #print " - messageblks \n"; my $query2 = $db_dbmailstore->prepare("delete from messageblks where message_idnr='$message_idnr' "); $query2->execute || die "error was ".$db_dbmailstore->errstr; #print " - message \n"; my $query2 = $db_dbmailstore->prepare("delete from messages where message_idnr='$message_idnr' "); $query2->execute || die "error was ".$db_dbmailstore->errstr; ##print " - message_headers \n"; # #my $query2 = $db_dbmailstore->prepare("delete from message_headers where message_idnr='$message_idnr' "); # $query2->execute || die "error was ".$db_dbmailstore->errstr; } Crude but effective. Ignore mail headers, that¹s part of our webmail interface we're working on. /Mark On 27/12/02 4:25 AM, "Eli Stair" <[EMAIL PROTECTED]> wrote: > Starting today, dbmail-maintenance has started segfaulting when run. I > manually > run maintenance so I can check status and see output. Below is the command > stdout as well as the info log from the maintenance run. This is the second > segfault, first time I was only logging dbmail-maintenance at TRACE=2, this is > now at 5. > > Im guessing this is somehow related to the problems I'm having with pop3d > sig11ing > when checking POP, but that's only a guess. The system is running MySQL > 4.0.5b > with INNODB tables, database is _extremely small_, > 1MB with only 3 accounts > receiving mail. > > /eli > > > # dbmail-maintenance -c -i -p -d > *** dbmail-maintenance *** > Opening connection to the database... Ok. Connected > Deleting messages with DELETE status... Ok. [1] messages deleted. > Setting DELETE status for deleted messages... Ok. [0] messages set for > deletion. > Now checking DBMAIL messageblocks integrity.. Segmentation fault > > ---/var/mail/info > Dec 26 11:14:45 tardis dbmail/maintenance[15496]: ReadConfig(): starting > procedure > Dec 26 11:14:45 tardis dbmail/maintenance[15496]: ReadConfig(): found [DBMAIL] > tag > Dec 26 11:14:45 tardis dbmail/maintenance[15496]: ReadConfig(): no value > specified for service item []. > Dec 26 11:14:45 tardis dbmail/maintenance[15496]: ReadConfig(): item [host] > value [localhost] added > Dec 26 11:14:45 tardis dbmail/maintenance[15496]: ReadConfig(): item [user] > value [dbmail] added > Dec 26 11:14:45 tardis dbmail/maintenance[15496]: ReadConfig(): item [pass] > value [{*****}] added > Dec 26 11:14:45 tardis dbmail/maintenance[15496]: ReadConfig(): item [db] > value [dbmail] added > Dec 26 11:14:45 tardis dbmail/maintenance[15496]: ReadConfig(): no value > specified for service item []. > Dec 26 11:14:45 tardis dbmail/maintenance[15496]: ReadConfig(): item > [TRACE_LEVEL] value [5] added > Dec 26 11:14:45 tardis dbmail/maintenance[15496]: ReadConfig(): service > [DBMAIL] added > Dec 26 11:14:45 tardis dbmail/maintenance[15496]: ReadConfig(): config for > [DBMAIL] read, found [5] items > Dec 26 11:14:45 tardis dbmail/maintenance[15496]: GetConfigValue(): searching > value for config item [trace_level] > Dec 26 11:14:45 tardis dbmail/maintenance[15496]: GetConfigValue(): found > value [5] > Dec 26 11:14:45 tardis dbmail/maintenance[15496]: GetConfigValue(): searching > value for config item [host] > Dec 26 11:14:45 tardis dbmail/maintenance[15496]: GetConfigValue(): found > value [localhost] > Dec 26 11:14:45 tardis dbmail/maintenance[15496]: GetConfigValue(): searching > value for config item [db] > Dec 26 11:14:45 tardis dbmail/maintenance[15496]: GetConfigValue(): found > value [dbmail] > Dec 26 11:14:45 tardis dbmail/maintenance[15496]: GetConfigValue(): searching > value for config item [user] > Dec 26 11:14:45 tardis dbmail/maintenance[15496]: GetConfigValue(): found > value [dbmail] > Dec 26 11:14:45 tardis dbmail/maintenance[15496]: GetConfigValue(): searching > value for config item [pass] > Dec 26 11:14:45 tardis dbmail/maintenance[15496]: GetConfigValue(): found > value [mL$jX3Q7] > Dec 26 11:14:45 tardis dbmail/maintenance[15496]: db_deleted_purge(): > executing query [SELECT message_idnr FROM messages WHERE status=003] > Dec 26 11:14:45 tardis dbmail/maintenance[15496]: db_query(): executing > [SELECT message_idnr FROM messages WHERE status=003] > Dec 26 11:14:45 tardis dbmail/maintenance[15496]: db_deleted_purge(): trying > to delete blocks for message [470] > Dec 26 11:14:45 tardis dbmail/maintenance[15496]: db_query(): executing > [DELETE FROM messageblks WHERE message_idnr=470] > Dec 26 11:14:45 tardis dbmail/maintenance[15496]: db_deleted_purge(): > executing query [DELETE FROM messages WHERE status=003] > Dec 26 11:14:45 tardis dbmail/maintenance[15496]: db_query(): executing > [DELETE FROM messages WHERE status=003] > Dec 26 11:14:45 tardis dbmail/maintenance[15496]: db_set_deleted(): executing > query [UPDATE messages SET status=003 WHERE status=002] > Dec 26 11:14:45 tardis dbmail/maintenance[15496]: db_query(): executing > [UPDATE messages SET status=003 WHERE status=002] > Dec 26 11:14:45 tardis dbmail/maintenance[15496]: db_query(): executing > [SELECT messageblk_idnr FROM messageblks ORDER BY messageblk_idnr DESC LIMIT > 0,1] > Dec 26 11:14:45 tardis dbmail/maintenance[15496]: db_query(): executing > [SELECT messageblk_idnr, message_idnr FROM messageblks LIMIT 0,1000000] >