A BUGNOTE has been added to this bug.
======================================================================
http://www.dbmail.org/mantis/bug_view_advanced_page.php?bug_id=0000086
======================================================================
Reported By: jnorell
Assigned To:
======================================================================
Project: DBMail
Bug ID: 86
Category: PIPE delivery (dbmail-smtp)
Reproducibility: always
Severity: major
Priority: normal
Status: acknowledged
======================================================================
Date Submitted: 09-Sep-04 21:26 CEST
Last Modified: 15-Sep-04 18:43 CEST
======================================================================
Summary: quota exceeded causes forwards to fail
Description:
When an alias lookup resolves to multiple deliver_to's with at least one
local INBOX delivery and one or more external forwards, if the local
mailbox is over quota the external forwards are sent an empty message
rather than the real email.
======================================================================
----------------------------------------------------------------------
aaron - 09-Sep-04 21:44 CEST
----------------------------------------------------------------------
I think you're exactly right about moving the quota checks to follow the
forwards. Try that out and see if that patches it right up. The new
delivery chain in 2.0 should not be affected, but it would be prudent to
double check it against related bugs... like what happens if the *delivery
user* has a quota applied, for whatever odd reason, or with combinations
of within quota, above quota and non-quota accounts and forwards.
----------------------------------------------------------------------
jnorell - 11-Sep-04 01:08 CEST
----------------------------------------------------------------------
After surmounting the delivery-chain learning curve, a fix is quite simple,
and that's just it (move forwards to happen before quota checks). Patch
is attached, tested only in pgsql, but is working fine on our production
machines so far.
----------------------------------------------------------------------
ilja - 14-Sep-04 14:14 CEST
----------------------------------------------------------------------
I can't apply the patch. It bails out when trying to patch
pgsql/dbpgsql.c.
Also, the patch looks a bit big. Does it change more than only the
forwarding code?
Jesse, can you please make a patch that applies cleanly to dbmail 1.2 CVS
(not 1.2.10)
----------------------------------------------------------------------
jnorell - 14-Sep-04 16:37 CEST
----------------------------------------------------------------------
You sure you didn't miss a -p1 or something? It applies clean for me:
mail2:/usr/src/dbmail# ./grab_latest_cvs
Press [Enter] at 'CVS password:' prompt
Logging in to :pserver:[EMAIL PROTECTED]:2401/cvsroot-dbmail
CVS password:
Got latest cvs code - in directory dbmail_1_2-20040914
mail2:/usr/src/dbmail# cd dbmail_1_2-20040914
mail2:/usr/src/dbmail/dbmail_1_2-20040914# patch -p1 <
../dbmail_1_2-20040910_nullforward.patch
patching file forward.c
patching file mysql/dbmysql.c
patching file pgsql/CVS/Entries
patching file pgsql/dbpgsql.c
patching file pipe.c
The only things that aren't strictly towards this fix are a bit of
cleanup for a couple things that aren't needed (eg. some extra
if (..) { .. }'s for conditions that will never be true because you're
already in an else { .. } for that same condition) and added a trace
to dbpgsql.c to complain if we were requested to forward a db message
and that message has no messageblks, removed a math bug in the % display
here:
trace (TRACE_DEBUG,"pipe_forward(): Sending block"
- "size=%d total=%d (%d\%)", usedmem, totalmem,
- (((usedmem/totalmem)*100)));
+ "size=%d total=%d", usedmem, totalmem);
And I removed this trace(), which I've always wish I never left in a
patch last year :)
trace (TRACE_DEBUG,"db_send_message_lines(): Using %d size
buffer",WRITE_BUFFER_SIZE);
----------------------------------------------------------------------
ilja - 14-Sep-04 16:45 CEST
----------------------------------------------------------------------
OK, I must be doing something wrong then..
but why's this?:
patching file pgsql/CVS/Entries
Ilja
----------------------------------------------------------------------
jnorell - 14-Sep-04 17:05 CEST
----------------------------------------------------------------------
I'd guess this is from a tag in dbpgsql.c, maybe? Perhaps I have more in
my local dir than I should (should not have CVS directory?) or maybe it's
harmless .. the change (which I didn't make manually) is:
--- dbmail_1_2-20040910/pgsql/CVS/Entries 2004-09-10
16:32:50.000000000 -0600
+++ dbmail_1_2-20040909.fix/pgsql/CVS/Entries 2004-09-09
12:27:00.000000000 -0600
@@ -2,6 +2,6 @@
/Makefile.in/1.5.2.1/Thu Apr 29 07:44:20 2004//Tdbmail_1_2_branch
/dbauthpgsql.c/1.47.2.3/Fri Jun 4 09:04:06 2004//Tdbmail_1_2_branch
/dbmsgbufpgsql.c/1.17/Mon Mar 17 16:04:09 2003//Tdbmail_1_2_branch
-/dbpgsql.c/1.105.2.3/Fri Sep 10 08:53:38 2004//Tdbmail_1_2_branch
+/dbpgsql.c/1.105.2.2/Tue Mar 23 09:04:38 2004//Tdbmail_1_2_branch
/dbsearchpgsql.c/1.13/Fri Oct 24 09:21:31 2003//Tdbmail_1_2_branch
Maybe just cut that to be safe.
----------------------------------------------------------------------
ilja - 14-Sep-04 17:12 CEST
----------------------------------------------------------------------
I'll apply the patch (minus the 'Entries' part) tomorrow.
Thanks,
Ilja
----------------------------------------------------------------------
ilja - 15-Sep-04 16:21 CEST
----------------------------------------------------------------------
The patch is applied.
Jesse, can you check if everything works satisfactory?
----------------------------------------------------------------------
jnorell - 15-Sep-04 18:43 CEST
----------------------------------------------------------------------
Yep, delivery works as expected for my tests. I've had no problems with
delivery using this in the last couple days (or at least that I know of
:).
Bug History
Date Modified Username Field Change
======================================================================
09-Sep-04 21:26jnorell New Bug
09-Sep-04 21:26jnorell File Added: problem.log
09-Sep-04 21:44aaron Bugnote Added: 0000233
11-Sep-04 01:08jnorell Bugnote Added: 0000234
11-Sep-04 01:08jnorell File Added: dbmail_1_2-20040910_nullforward.patch
14-Sep-04 14:14ilja Bugnote Added: 0000236
14-Sep-04 14:24ilja Status new => acknowledged
14-Sep-04 16:37jnorell Bugnote Added: 0000238
14-Sep-04 16:45ilja Bugnote Added: 0000239
14-Sep-04 17:05jnorell Bugnote Added: 0000240
14-Sep-04 17:12ilja Bugnote Added: 0000241
15-Sep-04 16:21ilja Bugnote Added: 0000248
15-Sep-04 18:43jnorell Bugnote Added: 0000255
======================================================================