issue with quarrantine database... |
Post Reply ![]() |
Author | |
Ric Marques ![]() Guest Group ![]() |
![]() ![]() ![]() ![]() ![]() Posted: 04 August 2003 at 1:12pm |
Hello - I have found a small issue with the quarrantine database, and I don't know the resolution. If a message that was blocked is supposed to be delivered to more than one recipient, SpamFilter ISP creates a quarrantine record for each, and one message record. If any of the recipents flag their message for deletion (which flags the quar. record) and then the system processes the flagged records, the message gets deleted, possibly before the other recipients even get a chance to see the message, and they get a 'No message found for MsgID=xxxx' warning when they try to view the message. Any suggestions? -Ric
|
|
![]() |
|
Desperado ![]() Senior Member ![]() ![]() Joined: 27 January 2005 Location: United States Status: Offline Points: 1143 |
![]() ![]() ![]() ![]() ![]() |
Ric, What version of SpamFilter and type DB are you using? I am not able to duplicate your error. I dant a message to 2 of my accounts by putting both addresses in the "To" field. I made sure it had content that would get blocked. I the went to the quarantine for one of the addresses and deleted the message. I the waited until the message actually deleted and went to the other account. Not only was it there, but I was able to view it and the send it and it showed up in my other account. Dan S. |
|
![]() |
|
Ric Marques ![]() Guest Group ![]() |
![]() ![]() ![]() ![]() ![]() |
Dan - Currently running v1.2.0.190 on MySQL 4.0.14... -Ric |
|
![]() |
|
LogSat ![]() Admin Group ![]() ![]() Joined: 25 January 2005 Location: United States Status: Offline Points: 4104 |
![]() ![]() ![]() ![]() ![]() |
Ric, You are correct, we were able to duplicate the issue with MySQL. It looks like the problem is caused by a missing foreign key in the MySQL database between the MsgID field in the tblMsgs and the tblQuarantine tables. The MS SQL server database has it, MySQL does not. We'll try to have an updated MySQL script in the next build. Roberto F. |
|
![]() |
|
Ric Marques ![]() Guest Group ![]() |
![]() ![]() ![]() ![]() ![]() |
I haven't followed up on this is awhile - but I'm still experiencing this problem. Is this an issue I can correct by adding a key in the MySQL tables, or is it a problem within the program code itself?
|
|
![]() |
|
deano92964 ![]() Newbie ![]() Joined: 03 July 2005 Location: United States Status: Offline Points: 4 |
![]() ![]() ![]() ![]() ![]() |
This is strange. I know this topic is allmost 2 years old, but i found it when i was searching the forum for the problem i am having. The strange thing is i am running 2.5.1.441 using MySQL version 4.1 and having the exact same problem. I would have thought seems how this problem has been reported before, that it would have been fixed by now. When a person marks a message to be deleted that was sent to more than one recipient, when spamfilter expires the messages, it removes the msgid from tblmsgs so the other recipients will get a No message found error for that ID when they try to view it. Same thing occures when Spamfilter purges messages beyond the number of days set to leave messages in the quarantine. It doesn't appear that this problem has been fixed. Money is very tight for me right now. I am having enough problems trying to come up with the cash to pay for this software. I certainaly don't want to have to switch to MS SQL. Dean
|
|
![]() |
|
LogSat ![]() Admin Group ![]() ![]() Joined: 25 January 2005 Location: United States Status: Offline Points: 4104 |
![]() ![]() ![]() ![]() ![]() |
Dean,
The update in the MySQL script was added a long time ago. From the solution in the previous postings: ======================================== It looks like the problem is caused by a missing foreign key in the MySQL database between the MsgID field in the tblMsgs and the tblQuarantine tables. ======================================== Can you please verify that in your database the foreign key is actually missing? If it is indeed missing, can you try to manually add it by running the following SQL query: ALTER TABLE `tblQuarantine` ADD CONSTRAINT `FK_tblQuarantine_tblMsgs` FOREIGN KEY ( `MsgID` ) REFERENCES `tblMsgs` ( `MsgID` ) ON DELETE CASCADE; |
|
![]() |
|
deano92964 ![]() Newbie ![]() Joined: 03 July 2005 Location: United States Status: Offline Points: 4 |
![]() ![]() ![]() ![]() ![]() |
The foreign key was indeed missing. Manual addition of it was sucessful. I have not yet tested it. I will through out the day today to see if this has taken care of the problem.
Thanks. |
|
![]() |
|
deano92964 ![]() Newbie ![]() Joined: 03 July 2005 Location: United States Status: Offline Points: 4 |
![]() ![]() ![]() ![]() ![]() |
I just ran a quick test to see if the install of my copy just goofed and that key didn't get added. I installed it on another machine and had it create the tables in another database server i am running, and again, it did not add that foreign key that is missing. When i get a chance i am going to see if the default database engine used for the tables makes any difference in how the keys are created by spamfilter. MySQL 4.1 defaults to MyISAM databases. The think it used to be just ISAM which is no longer used. Perhaps it makes a difference what database engine is used. Anyhow. I let you know if i find anything out. Dean |
|
![]() |
|
deano92964 ![]() Newbie ![]() Joined: 03 July 2005 Location: United States Status: Offline Points: 4 |
![]() ![]() ![]() ![]() ![]() |
This is what I found out. SpamFilter does appear to create the tables forcing the use of the MyISAM engine. However, in the Windows version of MySQL version 4.1 the MyISAM engine will not allow that foreign key to be created. It does not return an error, it simply ignores the query to create it. It cannot be added manually either. Again, no error, the query just seems to be ignored. However, if you change the tables to use the InnoDB engine the foreign key can be created by manually executing the query. Is there a specific reason for using the MyISAM engine in SpamFilter? So far I have not had any problem using the InnoDB engine, and the addition of the foreign key seems to have fixed the missing MsgID problem. So far things look good. You may have to change the scripts to create the tables using InnoDB instead. This may be something recent with the 4.1 version, or perhaps it only affects the Windows version. I do not know this. I do not have this new of a version on any of my Linux boxes. But I do know that this foreign key will not insert with this version of MySQL while using the MyISAM engine. Dean Edited by deano92964 |
|
![]() |
Post Reply ![]() |
|
Tweet
|
Forum Jump | Forum Permissions ![]() You cannot post new topics in this forum You cannot reply to topics in this forum You cannot delete your posts in this forum You cannot edit your posts in this forum You cannot create polls in this forum You cannot vote in polls in this forum |
This page was generated in 0.344 seconds.