Abhijit Menon-Sen [Mon, 30 Mar 2009 13:06:34 +0000 (18:36 +0530)]
Don't forget to reset the revision after downgrading.
Abhijit Menon-Sen [Mon, 30 Mar 2009 10:45:17 +0000 (16:15 +0530)]
Update VERSION.
Abhijit Menon-Sen [Mon, 30 Mar 2009 10:42:39 +0000 (16:12 +0530)]
Fix a mismerge that caused an SQL syntax error.
Arnt Gulbrandsen [Thu, 19 Mar 2009 14:46:07 +0000 (15:46 +0100)]
unbreak '( not flag seen ) and'
Arnt Gulbrandsen [Mon, 9 Mar 2009 10:25:11 +0000 (11:25 +0100)]
make STATUS HIGHESTMODSEQ work again for never-used mailboxes
except that it doesn't really... I'm unsure whether we ought to send 0 or
1. fortunately it doesn't matter in practice.
(3.0.7 fodder sice it fixes
6bd13153)
Arnt Gulbrandsen [Fri, 20 Mar 2009 14:40:27 +0000 (15:40 +0100)]
use explicit state so we won't happen to send the request twice
why would we do that? no idea but it happens
Arnt Gulbrandsen [Fri, 20 Mar 2009 14:35:07 +0000 (15:35 +0100)]
fix the tlsproxy race
Arnt Gulbrandsen [Fri, 20 Mar 2009 09:18:35 +0000 (10:18 +0100)]
disable TLS as extension, too
Arnt Gulbrandsen [Fri, 20 Mar 2009 09:14:48 +0000 (10:14 +0100)]
we disable TLS only if we cannot connect to tlsproxy.
any other error (e.g. during negotiation) may prompt us to close that
connection, but we still accept TLS-wrapped connections and still
advertise TLS on future connections.
Arnt Gulbrandsen [Tue, 17 Mar 2009 15:42:33 +0000 (16:42 +0100)]
don't rewrite a prepared statement based on the values from any single use
Arnt Gulbrandsen [Mon, 16 Mar 2009 15:53:37 +0000 (16:53 +0100)]
Buffer::removeLine() returns the same code in two _different_ cases
some callers don't mind
two callers mind, and already disambiguate
two callers mind, but didn't disambiguate until now
3.0.7 stuff
Abhijit Menon-Sen [Mon, 30 Mar 2009 09:15:02 +0000 (14:45 +0530)]
Fix an EString that escaped from master.
Arnt Gulbrandsen [Wed, 11 Mar 2009 10:54:47 +0000 (11:54 +0100)]
avoid copying a stringlist
this probably relied on freed memory, or something evil ike that
3.0.7 fodder
Arnt Gulbrandsen [Wed, 25 Mar 2009 12:59:43 +0000 (13:59 +0100)]
segfaulting is no good. is this even 3.0.7 stuff?
Arnt Gulbrandsen [Wed, 25 Mar 2009 10:40:16 +0000 (11:40 +0100)]
it's not enough to BE ABLE TO take other sessions' data, we need to DO it
Arnt Gulbrandsen [Mon, 9 Mar 2009 14:59:24 +0000 (15:59 +0100)]
make aox upgrade schema learn to downgrade the schema as well
3.0.7 fodder, but needs careful review first
not as well written as the usual upgrade loop, but I think that's okay.
this code is called less, so if it doesn't report as much/well, then
that's okay, and also, it doesn't really know what to report. all the
knowledge is in the database.
Arnt Gulbrandsen [Mon, 9 Mar 2009 07:48:23 +0000 (08:48 +0100)]
use a one-hour inactivity timeout after login (and two minutes before)
Arnt Gulbrandsen [Thu, 5 Mar 2009 14:29:58 +0000 (15:29 +0100)]
make aox survive a postgres restart.
now, if pg reports a crash or administrative restart, aox shuts down its
connections (which may lead aox to shut down, separate issue) and when it
needs to do database work it will reconnect.
two issues:
if aox loses its last db connection and knows it can't reconnect, then it
will shut down at once.
if aox needs to reconnect and pg isn't back yet, it probably will die...
maybe it ought to have a bit of patience in that case. if connection is
refused, maybe it should wait a little and try again.
Arnt Gulbrandsen [Thu, 5 Mar 2009 11:00:50 +0000 (12:00 +0100)]
a more general version of the GC timing logic that works for myke and simon
basically, each time we pass (memory-limit*x), we shift the collection
interval timer right by one bit. the timer is 30 second by default, so if
we're at 5*limit we'll collect garbage every second.
Arnt Gulbrandsen [Wed, 4 Mar 2009 16:17:17 +0000 (17:17 +0100)]
collect garbage OFTEN if lots of RAM is used
Arnt Gulbrandsen [Thu, 5 Mar 2009 12:50:18 +0000 (13:50 +0100)]
adjust the size of message batches to the amount of RAM as well as to the
likely processing time
we aim for six seconds still, but if that seems likely to overfill our
RAM, then we adjust the batch size lower
Arnt Gulbrandsen [Wed, 4 Mar 2009 14:57:12 +0000 (15:57 +0100)]
we don't care to log much aobut those 'client' connections
that's a strong hint that they're internal
Arnt Gulbrandsen [Mon, 2 Mar 2009 10:58:20 +0000 (11:58 +0100)]
STATUS HIGHESTMODSEQ should not decrease when a message is expunged.
so we have to base the returned value on what nextmodseq returns, not on
extant messages.
4551 erratum likely needed.
Arnt Gulbrandsen [Mon, 2 Mar 2009 13:03:16 +0000 (14:03 +0100)]
make Cocnection::close() inform the event loop of the change
simplify some callers accordingly
Abhijit Menon-Sen [Mon, 16 Feb 2009 07:11:39 +0000 (12:41 +0530)]
Don't leak ignorable modseq numbers.
Abhijit Menon-Sen [Thu, 29 Jan 2009 09:59:52 +0000 (15:29 +0530)]
Update VERSION.
Abhijit Menon-Sen [Mon, 26 Jan 2009 13:11:10 +0000 (18:41 +0530)]
Revert "Revert "Revert "s/String::append( fn( ... ) )/appendNumber( ... )"""
I cherry-picked a commit, reverted it, then reverted the reversion. Now
I'm reverting the reversion of the reversion, because I don't want the
original commit.
This reverts commit
46d183ff9e54e478ab5629816cbd3839529798ce.
Abhijit Menon-Sen [Mon, 26 Jan 2009 13:07:37 +0000 (18:37 +0530)]
Revert "Revert "s/String::append( fn( ... ) )/appendNumber( ... )""
Not a bugfix, and doesn't pull enough weight to justify its inclusion.
This reverts commit
d6b58a8acd7857754b9e6ae2889d5e53bdd0d765.
Abhijit Menon-Sen [Mon, 26 Jan 2009 13:05:17 +0000 (18:35 +0530)]
Revert "new function to check whether this Log is a child (or granchild) of that"
Not needed in 3.0.x (because the cancel changes that depend on it aren't
going in either).
This reverts commit
4fbc9d7fc9b4af2adebb7aafd8faa314182019a7.
Abhijit Menon-Sen [Mon, 26 Jan 2009 13:03:20 +0000 (18:33 +0530)]
Revert "s/String::append( fn( ... ) )/appendNumber( ... )"
It's not a bugfix.
This reverts commit
41eebd0c98a201accbf51d2bab4b919cd09d7740.
Arnt Gulbrandsen [Wed, 14 Jan 2009 10:50:54 +0000 (11:50 +0100)]
s/String::append( fn( ... ) )/appendNumber( ... )
saves RAM, and some of these calls happen often
Abhijit Menon-Sen [Sat, 24 Jan 2009 15:15:43 +0000 (20:45 +0530)]
Add 'on delete cascade' to t_i.message.
Otherwise vacuuming fails, as reported by Sam Homer.
Abhijit Menon-Sen [Mon, 8 Dec 2008 15:30:18 +0000 (21:00 +0530)]
Schema #79: Add thread_indexes to help unfuck Outlook threading.
Arnt Gulbrandsen [Thu, 22 Jan 2009 12:58:59 +0000 (13:58 +0100)]
new function to check whether this Log is a child (or granchild) of that
untested
Arnt Gulbrandsen [Thu, 22 Jan 2009 11:59:27 +0000 (12:59 +0100)]
don't wipe out the AddressField's addresses() when the parser dies
3.0.6 material
Arnt Gulbrandsen [Wed, 21 Jan 2009 15:44:03 +0000 (16:44 +0100)]
use madvise() to release RAM to the OS if possible
this should cut down the amount of actual RAM archiveopteryx uses
Arnt Gulbrandsen [Mon, 19 Jan 2009 14:06:30 +0000 (15:06 +0100)]
do NOT rename variables after testing
Arnt Gulbrandsen [Mon, 19 Jan 2009 13:42:20 +0000 (14:42 +0100)]
check that each Session is connected to a live Connection.
this should "fix" the horrible memory leak. no idea how, but somehow some
connections managed to close themselves and leave a Session still attached
to its Mailbox.
this change checks that a Session is sane before notifying it of new mail,
so when that bug hits, its effects will be cancelled next time the mailbox
is changed.
Arnt Gulbrandsen [Thu, 15 Jan 2009 19:24:36 +0000 (20:24 +0100)]
close the POP connection if we see an error
Arnt Gulbrandsen [Thu, 15 Jan 2009 19:16:59 +0000 (20:16 +0100)]
that log line wasn't all that useful, really
Arnt Gulbrandsen [Thu, 15 Jan 2009 19:15:40 +0000 (20:15 +0100)]
improve the logging when connections come and go
Abhijit Menon-Sen [Tue, 13 Jan 2009 15:20:16 +0000 (20:50 +0530)]
Update rrdglue.
Arnt Gulbrandsen [Tue, 13 Jan 2009 08:47:19 +0000 (09:47 +0100)]
avoid leaving zombies
3.0.6 stuff
Arnt Gulbrandsen [Mon, 12 Jan 2009 13:53:51 +0000 (14:53 +0100)]
just a note
Arnt Gulbrandsen [Thu, 8 Jan 2009 13:02:47 +0000 (14:02 +0100)]
some documentation for patriciatree.
the iterator still isn't documented.
Abhijit Menon-Sen [Thu, 8 Jan 2009 11:28:19 +0000 (16:58 +0530)]
Fix a few comments.
Arnt Gulbrandsen [Tue, 6 Jan 2009 14:51:30 +0000 (15:51 +0100)]
basesubject blobchars cannot contain [
this broke threading of doubly-forwarded messages
[fwd: re: [fwd: re: stuff]]
Abhijit Menon-Sen [Thu, 18 Dec 2008 07:04:00 +0000 (12:34 +0530)]
Typo.
Arnt Gulbrandsen [Wed, 17 Dec 2008 09:27:17 +0000 (10:27 +0100)]
don't log an error if listening on ipv6/any also listens on ipv4/any
Arnt Gulbrandsen [Wed, 10 Dec 2008 15:32:26 +0000 (16:32 +0100)]
unbreak the GC timing code for the nth time (not serious this time though).
this code has needed fixing too many times. it needs to die.
Abhijit Menon-Sen [Wed, 10 Dec 2008 13:07:15 +0000 (18:37 +0530)]
ocd is long gone.
Abhijit Menon-Sen [Mon, 8 Dec 2008 15:34:00 +0000 (21:04 +0530)]
udoc fix.
Arnt Gulbrandsen [Fri, 5 Dec 2008 11:28:18 +0000 (12:28 +0100)]
avoid creating an ImapExpungeResponse if we already have one for that UID.
helps avoid spurious "no MSN for UID" log errors, which occur when two
expunges occur and the first one cannot be reported to an IMAP client
before the second happens.
Arnt Gulbrandsen [Wed, 7 Jan 2009 20:59:14 +0000 (21:59 +0100)]
new debug function to find out what points at a given location.
In gdb
call pointers( 0x12345678 )
to get some information about all heap-based pointers to that value.
Arnt Gulbrandsen [Wed, 7 Jan 2009 20:58:56 +0000 (21:58 +0100)]
keep stderr open unless -f
Arnt Gulbrandsen [Thu, 4 Dec 2008 15:58:46 +0000 (16:58 +0100)]
typo
Arnt Gulbrandsen [Thu, 4 Dec 2008 15:58:16 +0000 (16:58 +0100)]
http://
Arnt Gulbrandsen [Thu, 4 Dec 2008 15:40:49 +0000 (16:40 +0100)]
mention where to find more configuration stuff
twice, slightly differently, just in case one way fails for some reader.
Abhijit Menon-Sen [Tue, 2 Dec 2008 16:31:25 +0000 (22:01 +0530)]
Update VERSION.
Arnt Gulbrandsen [Tue, 2 Dec 2008 10:09:46 +0000 (11:09 +0100)]
just more comments about the state machine
Abhijit Menon-Sen [Mon, 1 Dec 2008 19:13:08 +0000 (00:43 +0530)]
Udoc fix.
Arnt Gulbrandsen [Mon, 1 Dec 2008 16:49:58 +0000 (17:49 +0100)]
don't leak memory badly
3.0.5, here we come
Arnt Gulbrandsen [Mon, 1 Dec 2008 14:39:24 +0000 (15:39 +0100)]
reduce and improve the debug support in Allocator.
remove the functions that use stdout, since stdout tends to be closed when
I need it.
make sizeOf return the correct number, at the cost of marking the object
as reachable for the next collection cycle.
Arnt Gulbrandsen [Mon, 1 Dec 2008 14:13:45 +0000 (15:13 +0100)]
free some space in the allocator block
we don't need more than 127 pointers anyway, except when an object is
all-pointer, which is bad.
Arnt Gulbrandsen [Mon, 1 Dec 2008 13:19:10 +0000 (14:19 +0100)]
log the number of objects reachable from each root, if large
Arnt Gulbrandsen [Fri, 28 Nov 2008 14:09:47 +0000 (15:09 +0100)]
we shouldn't change a single quoted string to a single string starting
with quote signs ( {"x"} -> "x" (one character to begin with, then three)
Arnt Gulbrandsen [Fri, 28 Nov 2008 13:54:13 +0000 (14:54 +0100)]
process pointers in ascending order
judging by list and patriciatree, ascending order seems more likely to
avoid a giant object stack in the allocator
Arnt Gulbrandsen [Fri, 28 Nov 2008 13:02:35 +0000 (14:02 +0100)]
the old code would misinterpret a full read buffer
fix
Abhijit Menon-Sen [Thu, 27 Nov 2008 18:16:12 +0000 (23:46 +0530)]
Make aox documentation (mostly) agree with its capabilities.
Arnt Gulbrandsen [Thu, 27 Nov 2008 18:11:30 +0000 (19:11 +0100)]
generally unbreak vacation.
most importantly, sending a vacation message to an address which wasn't in
the database now works.
still broken: there's a race on the autoresponses table. we need to lock
that entire table. very evil.
Arnt Gulbrandsen [Thu, 27 Nov 2008 18:07:55 +0000 (19:07 +0100)]
give users the ability to insert extra addresses in the database as part
of injection, and get the ID of those addresses.
helpful for sieve/vacation.
Arnt Gulbrandsen [Thu, 27 Nov 2008 13:14:47 +0000 (14:14 +0100)]
teach the injector to work with a subtransaction.
this will please sieve, which needs to do vacatio work along with
injection.
Abhijit Menon-Sen [Thu, 27 Nov 2008 11:02:48 +0000 (16:32 +0530)]
Don't segfault.
Abhijit Menon-Sen [Wed, 26 Nov 2008 11:05:44 +0000 (16:35 +0530)]
Rename MessageSet to IntegerSet and use it to avoid "new uint".
"new uint" was used mostly to populate List<uint>s that were passed to
Query::bind() and then forgotten—but never garbage collected. Using an
IntegerSet (because we know from inspection that there won't be any
duplicates) eliminates the problem neatly.
Arnt Gulbrandsen [Wed, 26 Nov 2008 09:26:24 +0000 (10:26 +0100)]
don't assume there to be annotations
Arnt Gulbrandsen [Tue, 25 Nov 2008 22:20:10 +0000 (23:20 +0100)]
sieve vacation was a tiny little bit broken.
3.0.5 stuff.
there seems to be something more.
Arnt Gulbrandsen [Tue, 25 Nov 2008 15:53:47 +0000 (16:53 +0100)]
trust the Flag cache very little, if at all
Arnt Gulbrandsen [Tue, 25 Nov 2008 14:42:46 +0000 (15:42 +0100)]
get rid of AnnotationName.
use database work instead, so there's no chance for the cache and db to
get out of sync, and so life is generally simpler.
Arnt Gulbrandsen [Tue, 25 Nov 2008 09:15:54 +0000 (10:15 +0100)]
make autoresponses work even when the autoresponses table is empty.
this is 3.0.5 fodder. 3.0.4 was broken.
Arnt Gulbrandsen [Tue, 25 Nov 2008 09:10:32 +0000 (10:10 +0100)]
make the autoresponses table less of an eyesore for selecting DBAs.
the sent_from and sent_to columns contain an address, any address so long
as localpart and domain are right. this change tries to pick the one whose
displayname is an empty string, if there is one.
Arnt Gulbrandsen [Mon, 24 Nov 2008 15:57:20 +0000 (16:57 +0100)]
it's executable
Arnt Gulbrandsen [Mon, 24 Nov 2008 11:44:36 +0000 (12:44 +0100)]
be more efficient about mmap()
Arnt Gulbrandsen [Mon, 24 Nov 2008 11:20:56 +0000 (12:20 +0100)]
collect garbage a little less often, and don't log quite as much.
the logging helped, so we shouldn't need it for a while.
Arnt Gulbrandsen [Mon, 24 Nov 2008 11:20:16 +0000 (12:20 +0100)]
a new byteforwarded which allocates less memory. more or less none.
Arnt Gulbrandsen [Mon, 24 Nov 2008 09:18:40 +0000 (10:18 +0100)]
get rid of FieldName
it wasn't carrying its load, and may have contributed to memory cancer
(actual memory usage didn't increase much over time, but the number of 1MB
blocks used did)
Abhijit Menon-Sen [Sat, 22 Nov 2008 22:31:31 +0000 (04:01 +0530)]
Fix typo.
Arnt Gulbrandsen [Sat, 22 Nov 2008 12:11:36 +0000 (13:11 +0100)]
make sure we can collect garbage even if nothing in particular is happening
Arnt Gulbrandsen [Fri, 21 Nov 2008 12:17:24 +0000 (13:17 +0100)]
free more allocator blocks
instead of freeing only some unused blocks after sweeping, this frees all.
doesn't really make a difference since that memory would not be touched,
but that the "144312 objects across 342 1MB blocks" line is more accurate.
Abhijit Menon-Sen [Sat, 22 Nov 2008 14:16:29 +0000 (19:46 +0530)]
Fix state machine.
Arnt Gulbrandsen [Fri, 21 Nov 2008 14:47:21 +0000 (15:47 +0100)]
reset peak, and do it so it's reported, too
Arnt Gulbrandsen [Fri, 21 Nov 2008 10:10:42 +0000 (11:10 +0100)]
call reserve() here and there in order to use less RAM
Arnt Gulbrandsen [Fri, 21 Nov 2008 10:09:46 +0000 (11:09 +0100)]
an easy way to get a breakpoint every time a megabyte is allocated:
break oneMegabyteAllocated
Arnt Gulbrandsen [Fri, 21 Nov 2008 10:09:05 +0000 (11:09 +0100)]
try to get one batch every 15 seconds isntead of every 90
90 seconds means a lot of messages means a lot of RAM
Arnt Gulbrandsen [Thu, 20 Nov 2008 14:51:19 +0000 (15:51 +0100)]
avoid pgsql warning
Arnt Gulbrandsen [Thu, 20 Nov 2008 12:44:50 +0000 (13:44 +0100)]
IMAP EXAMINE was too broken for squirrelmail. fix.
Abhijit Menon-Sen [Thu, 20 Nov 2008 11:26:46 +0000 (16:56 +0530)]
Fix typo.
Arnt Gulbrandsen [Wed, 19 Nov 2008 13:19:43 +0000 (14:19 +0100)]
plug leak
Abhijit Menon-Sen [Wed, 19 Nov 2008 13:04:44 +0000 (18:34 +0530)]
Integrate another line that got missed from
Arnt Gulbrandsen [Wed, 19 Nov 2008 11:51:02 +0000 (12:51 +0100)]
dot an i.
the session is too much of an imap thing. pop needs to bend over and
pretend to be imap.
Arnt Gulbrandsen [Wed, 19 Nov 2008 11:41:30 +0000 (12:41 +0100)]
superclass virtual changed signature; follow the change in subclass