Paul,
It's a typo Aaron. Missing hyphen after the NAME line in
dbmail-timsieved.txt. I fixed this last week, but your serveropts
cleanup overwrote it.
SVN rev 2139 still fails:
xmlto man dbmail-smtp.xml
Writing dbmail.1 for refentry
test -z /usr/share/man/man1 || mkdir -p --
Hi,
I try to build packages of current svn 2121 for Debian Sarge, but I fail
because of an automake error:
autoreconf -i
Putting files in AC_CONFIG_AUX_DIR, `buildtools'.
automake: configure.in: installing `buildtools/install-sh'
automake: configure.in: installing `buildtools/mkinstalldirs'
Kevin wrote:
If only that were legal. Maximum width for varchar is 255.
Is this a limit of mysql? I don't think pgsql has such a limit, and
oracle might be 2000.
Pg limit is 1 GB (data, so UTF-8 worst case is 500 MB), Oracle 9i has
4000 Byte.
Thomas
Hi Geo,
But even working init.d scripts and working daemons can be killed or
stopped for lots of reasons, and unless you duplicate the work of init,
or manually intervene, they won't start back up.
I read that argument several times now but I still think init doesn't
help here.
I have to
Aaron Stone wrote:
I managed to forget to add the replycache table to my database, so the
query failed the first time. The second time, the query didn't just
fail, it was ignored. This continues even for queries to tables that
exist, until the end of the process.
[..]
[ERROR: current
Geo Carncross wrote:
On Thu, 2005-12-15 at 17:35 +0100, Thomas Mueller wrote:
Geo Carncross wrote:
I completely agree with this. There's just the problem of databases
being a moving target. Remember we talked about COUNT(*) not being
optimally implemented in Pg, but one day it could
Geo Carncross wrote:
I completely agree with this. There's just the problem of databases
being a moving target. Remember we talked about COUNT(*) not being
optimally implemented in Pg, but one day it could be, and at that point,
we should use COUNT(*) - even if it's slower on older database
Hi Robert,
Is the expense concern the computational complexity (escaping for SQL),
the primary storage use (malloc'ing 5*READ_BLOCK_SIZE), or secondary
storage use (not exploiting PostgreSQL's text compression)? Perhaps the
first two of these could be addressed by using PostgreSQL's
Hi Robert,
Here's the patch..
I don't think that's a solution but a (expensive) workaround. The
problem is: Postgres compresses text but stores bytea as it is.
In future it would be interesting to search on message bodies as well.
What about converting every string to UTF-8 and use a UTF-8
Hello,
Would this utf-8 mode for postgres be useful as the default setup for
postgres users?
According to following URL, the default character set is selected
with the locale setting of initdb execution environment.
Sorry, I misunderstood your question at first.
This patch is useful for
Paul J Stevens wrote:
Paul J Stevens wrote:
Thomas Mueller wrote:
I had as many connections as running processes (a lot below
MAXCHILDREN). The problem was: no one could connect any more. Looks like
a problem with starting new processes - every running process handled a
connection yet, no new
in
the debian package) all pop3d and lmtpd were stopped, the imapd
processes were still there.
So I did a 'killall dbmail-imapd' and installed svn rev 1852.
Thomas
Thomas Mueller wrote:
Hi,
I got this one:
Aug 17 09:11:20 geht-schon dbmail/imap4d[16011]:
pool.c:scoreboard_release: fatal: unable
Hi,
I got this one:
Aug 17 09:11:20 geht-schon dbmail/imap4d[16011]:
pool.c:scoreboard_release: fatal: unable to find this pid on the scoreboard
I use subversion revision 1848 - as far as I know the fixes for the
pooling code are in there yet?
Thomas
Hi,
there are two problems:
make[3]: Entering directory `/tmp/buildd/dbmail2-2.1.1/pgsql'
/bin/sh ../libtool --mode=compile i386-linux-gcc -DHAVE_CONFIG_H -I. -I.
-I.. -I.. -I/usr/include/postgresql -fomit-frame-pointer -Wall -O2 -g
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
Aaron Stone wrote:
On Tue, Jul 26, 2005, Igor Stroh [EMAIL PROTECTED] said:
Thomas Mueller wrote:
dbpgsql.c: In function `db_connect':
dbpgsql.c:80: warning: implicit declaration of function `PQServerVersion'
dbpgsql.c:83: warning: implicit declaration of function
`pg_encoding_to_char'
dbpgsql.c
Geo Carncross wrote:
The clock idea would work if the clocks could be kept synchronized, but
that's just not possible. It's very hard work to get machines on a LAN
synchronized within 10msec, and clocks can NEVER go backwards. Not even
a little bit or mail will be lost until UIDVALIDITY
Hi,
how far is the libsieve thing going?
i would be very interested in see this running ;)
Don't hold your breath. I need someone to help me finish the API for
libSieve, at which point it will be trivial to re-integrate into DBMail;
all of the Sieve infrastructure was completed long ago and
Hi Geo,
sorry for the long delay, I've been very busy and had some problems with
the new clustering feature of the Debian package (some are still left).
I've installed a PostgreSQL 8.0.1 in a chroot, converted the 7.4.7
configs as far as possible, did a pg_dumpall of 7.4 and imported that in
Geo Carncross wrote:
Time to buy new hardware Thomas:
That's not what I wanted hear :-)
--
Merge Join (cost=0.00..726.83 rows=6245
Hi Geo,
I've got 6000 messages here, and subsecond queries; here's the EXACT
query:
[..]
Nested Loop (cost=0.00..46.85 rows=2 width=36)
Could you please always do an EXPLAIN ANALYZE? Your output only shows
what the planer expects without doing the query. With EXPLAIN ANALYZE
you get the
Hi Aaron,
On MySQL:
4543 rows in set (0.28 sec)
41573 rows in set (1.69 sec)
So if this fixes it for Pg, then I think we've got a winner :-)
'in set' means 4543 results? Is there something like explain analyze in
MySQL too? Could you please post results?
0,04 ms per result in case of
Geo Carncross wrote:
On Tue, 2005-03-15 at 13:49 +0100, Thomas Mueller wrote:
I have 7.4.7 too. The results are MUCH better than what dbmail does at
the moment so it's a real improvement. I don't know if it can be done
better. The query on the mailbox with ~600 Mails (that's quite common I
Hi Kevin,
SELECT seen_flag, answered_flag, deleted_flag, flagged_flag, draft_flag,
recent_flag, TO_CHAR(internal_date, '-MM-DD HH24:MI:SS' ), rfcsize,
message_idnr FROM dbmail_messages msg, dbmail_physmessage pm WHERE pm.id
= msg.physmessage_id AND message_idnr BETWEEN '1' AND '417966' AND
Geo Carncross wrote:
DROP the index for dbmail_messages_physmessage_idx - I think Pg is
selecting it because it has less collisions, the other one just isn't
being used. I'd like an explain of it AFTER the index drop too (remember
to REINDEX and do a VACUUM ANALYZE)
Sorry this will be little
Geo Carncross wrote:
This is going to take longer than I thought- my data set is too small,
and Pg is taking a completely different set of execution plans.
Thanks a lot for your help!
Need more data... Will try and scrounge some up.
When I did tests I imported some mbox archives of mailing
Hi,
now I have only one slow query left - unfortunately I have no idea why
it is that slow. The mailbox contains ~1800 mails. It takes 45 seconds
to open it:
SELECT seen_flag, answered_flag, deleted_flag, flagged_flag, draft_flag,
recent_flag, TO_CHAR(internal_date, '-MM-DD HH24:MI:SS' ),
Geo Carncross wrote:
The dbmail_messages_physmessage_idx isn't the best index to use.
You have several options:
put extra columns in dbmail_physmessage that reference the message_idnr
and mailbox_idnr (and index them WITH the dbmail_physmessage.id) -- THEN
adapt the query to look for
Geo Carncross wrote:
On Thu, 2005-03-10 at 21:16 +0100, Thomas Mueller wrote:
CREATE INDEX dbmail_messages_wide ON dbmail_messages
(mailbox_idnr,message_idnr,status); CREATE INDEX
dbmail_messages_wider ON dbmail_messages
(mailbox_idnr,message_idnr,status,physmessage_id);
[..]
That one
Hi,
I get more and more user complaints that my IMAP server is terrible
slow, opening a mailbox takes very long.
I've analyzed that using PQA (http://pgfoundry.org/projects/pqa/, great
tool!), the output is attached if anyone is interested (includes all
databases, not only dbmail).
The main
Paul J Stevens wrote:
Thomas Mueller wrote:
The main problem is in db.c, db_getmailbox():
SELECT COUNT(message_idnr), COUNT(message_idnr) - SUM(seen_flag),
SUM(recent_flag) FROM dbmail_messages WHERE mailbox_idnr = '5' AND
status '2'
That query takes up to 15 seconds (!!).
That query
Paul J Stevens wrote:
Geo Carncross wrote:
'q',COUNT(*)
as the request for each. This was a minor note. The result would then be
three separate rows, second column being the interesting part.
Fixing the query thus, and adding the needed indexes result in *really*
fast returns on mysql,
Hi Aaron,
Hey, so I moved the ACL and mailbox performance bugs up to eventually,
maybe in 2.0 and left just these three items outstanding before 2.0.4:
* Bug 134: Some MySQL tweaks to be applied.
* Bug 161: dbmail-smtp SIG11 on following message.
* Bug 164: No more mailbox
Hi Aaron,
The change that we'd need is to check the aliases table, too, and abide by
it if the delivery address is a forward.
I'll repost this on the mailing list, too -- but are there any semantics
that would be ruined if we changed from:
if (address is username)
put
Hi,
I don't consider it silly to have one table with ALL valid email
addresses, so you don't have to do double lookups.
If that is required for external software it can easily be done with a
view that contains dbmail_aliases and dbmail_users.
Furthermore, I consider it a feature not to
Aaron Stone wrote:
On Fri, Jan 14, 2005, Thomas Mueller [EMAIL PROTECTED] said:
Currently:
if (address is username)
put username on delivery list
else
if (address has aliases)
resolve aliases into deliveries and forwards
Aaron's Proposal:
if (address has
Hi Hans,
I have database with ~560.000 rows. One of the columns is an
IP address (type:inet). Now, I want to only get the unique ip
addresses out. That takes about 3minutes on a P4 2.66Ghz!
I don't know the PostgreSQL Code, I can only tell you from database
theory.
- a database uses an index
Hi Aaron,
At the moment queries seem to be spread over dbmail. Is it hard to use a
more layered approach with a defined storage layer?
The retrieval api must indeed be totally opaque, while still allowing full
control over retrieval-conditions. Returning cursors where possible, and
Hi Paul,
Some of my plans for 2.1:
[..]
Could you keep that information in the wiki? That's probably easier to
maintain than (regular) status mails and more current.
Maybe divided into three section:
- done/changed since last release
- to be done until next release
- known problems with
Hi Paul,
This might be important if you're searching for uncommon headers. Of
course, uncommon headers probably also mean that they're uncommonly
searched for...
Don't count on it. Offlineimap is a common client for syncing
imap-instances. It uses it's own header-type where both key and
Hi,
But I also have a simpler idea that will still speed things up. It
involves using a regexp SQL fulltext search. While it's definitely slow
compared to a changed storage (the db won't be able to use indexes),
it's still faster because it does not involve any parsing, and uses the
Hi Aaron,
But I also have a simpler idea that will still speed things up. It
involves using a regexp SQL fulltext search. While it's definitely slow
compared to a changed storage (the db won't be able to use indexes),
it's still faster because it does not involve any parsing, and uses
Hi,
That is on a Dual 1Ghz P3, 1gb ram
[..]
sort_mem = 65536 # min 64, size in KB
Depending on the usage of your database this is a very high value. Every
sort (including internal sort for merge joins p.e.) is allowed to take 64
MB. If one query needs three sorts, that query is allowed
Hi,
The art is in SQL, not the engine.
Definitely not - if your engine doesn't support p.e. transactions that's
it, even the most clever application and developer can't do anything to
get a transaction safe program.
Since I'm working in a company which is developing customized database
Hi Paul,
I have one question left: I have a project with a very low budget
(because it's private) and need a database with multimaster
synchronisation, what should I use?
Afaik, mysql supports multi-master replication just fine. Doesn't that suit
your purpose ?
Probably it does yes, I
Hi,
I'm running cvs version from 18.09. This morning imapd suddenly didn't
accept any new connections.
netstat -t -ap 21 |grep dbmail-imapd |grep ESTABLISHED |grep
-v localhost:postgresql |wc -l
Reported 15 established connections.
ps -ef |grep dbmail-imapd |grep -v grep |wc -l
Reported 17
Hi Paul,
I don't get it. Why doesn't freebsd like this code?
code
void manage_stop_children()
{
/*
*
* cleanup all remaining forked processes
*
*/
trace(TRACE_MESSAGE, %s,%s: General stop requested. Killing
children.. ,
Hi,
I have a problem with anyone ACLs: using mutt I can change to:
imaps://server/#Users/myuser/INBOX/mailbox
When I try to select the folder in Thunderbirds 'manage folder
subscriptions' the user isn't even listed. So 'anyone' ACLs seems to
work, but 'anyone' folders aren't listed if a client
Hi,
A numrows() solution will be the quick way to a first version, but we may
discover that the performance is terrible and 'SELECT COUNT(*)' is needed.
[..]
The advantage is, that we can initalize more resultsets, not have to
allocate memory and not have to query count(*) statements.
Please
Hi,
server.c requires pool.h but the file is missing.
Thomas
--
http://www.tmueller.com for pgp key (95702B3B)
Hi,
it's not worth it to add that to the bugtracker.
Could someone please apply the following patch:
--- pipe.c.orig 2004-09-07 13:51:23.0 +
+++ pipe.c 2004-09-08 21:16:38.0 +
@@ -522,7 +522,8 @@
/* first start a new database transaction */
if
Hi,
RFC 2086 defines the special user 'anyone' to change rights for every
user (for example make a mailbox readable for every user - that's what I
try to do). Am I right that 'anyone' isn't implemented yet?
Thomas
--
http://www.tmueller.com for pgp key (95702B3B)
Hi Ilja,
I've added a small patch in the bugtracker that will set the postmaster
address (as taken from dbmail.conf) as
the From: address. I'll also attach it here.
This does not doing anything else though..
Can you people test this?
Doesn't work, the from field is empty.
I haven't
Hi,
I get about 20 mails a week like this one:
from: [EMAIL PROTECTED]
subject: dbmail IMAP server info: this message could not be parsed
The message body is the mail that could not be parsed (normally spam
with strange mime parts).
Is it possible to set another sender (the admin of the
Hi Ilja,
On the other hand... It's probably more useful to release first, and fix
LDAP support later. LDAP is a big thing, and might better wait until
after release.
Yes - there are always new features/enhancements/what-ever that would be
nice to have in 2.0 but if everything is accepted
Hi,
does anyone have a sql script to migrate a PostgreSQL database to table
name prefixes (it would be a good habit to only commit changes if there
is a script to migrate the database) ?
I tried the following:
ALTER TABLE acl RENAME TO dbmail_acl;
ALTER TABLE aliases RENAME TO dbmail_aliases;
Sergey Spiridonov wrote:
I converted to dbmail_* by hand just yesterday also. I'm using
postgres, and for postgres explain differs:
This is for Postgres 7.4.2:
dbmail=# explain SELECT messageblk FROM dbmail_messageblks LEFT JOIN
dbmail_messages USING (physmessage_id) WHERE
Hi Aaron,
Will you change static 'dbmail_' to a configurable prefix? I for example
have the problem that I use dbmail tables from several other programs
(config GUI, MTA, web server, ftp server, ...) so I can't simply rename
the tables.
It is exactly because of these ancillary
Hi Aaron,
Please note that you will have to rename your tables to add a dbmail_ prefix.
I wrote a script to do that, but haven't integrated it into the sql scripts.
http://dbmail.org/index.php?page=development says that
'Customisable table names/prefixes' are planed for 2.1.
Will you change
Hi,
I've posted that for RC6 yet but got no response: I think we should
provide scripts to migrate the database at least between RCs, better for
every change in cvs.
These are for postgres:
--
-- v1.28 - v1.29
BEGIN TRANSACTION;
Hi Aaron,
Release early, release often.
Add to that maintain compatibility along your production branches
... or offer a safe and easy way to migrate.
I'm no friend of collecting a huge number of changes and release rarely -
I prefer releasing after every single change.
We have to
Hi Ilja,
for 2.0, we'd only like to see 2 changes:
1. table names prefixed with 'dbmail_'
2. command line options sane.
[..]
Since we've violated all rules of release practise anyway, me might just
get behind the keyboard and do it
I don't think it's a good idea to change (1.) now because
Hi Ilja,
There's a small change in the database structure. The messageblks table
has a field called is_header, which is set to '1' if the messageblock is
a header block. This field isn't used yet, but will be in future releases.
Could we please add a upgrade file for every database? Entries
Hi Ilja,
Isn't the simplest solution this:
change the query for the special case of 'INBOX' to:
SELECT mailbox_idnr FROM mailboxes WHERE name = 'INBOX' and owner_idnr =
'%llu';
We always store 'INBOX' as 'INBOX' (all caps), so, this will always
work. And we have no problem with
Hi Aaron,
We have two classes of programs:
- lmtpd, smtpd, pop3d: before we do anything with a message BEGIN, if we
return SUCCESS to the client COMMIT, else ROLLBACK - should be quite
easy?
- imapd: for every IMAP operation:
- if it's a read only one leave everything as
The company I work for has dbmail running on duel processor SuSE amd64
machines. For the most part we have had great success with dbmail, but
every once in a great while it seems as if there is something that
pushes dbmail to 100% of one of the processors completely blocking it.
Yes
While copying lot of messages to dbmail suddenly no new
connection was possible, imapd didn't respond any more.
Anyone any idea what I could do?
dbmail 2 is now my primary IMAP server (gets a copy of mails of the
former primary) and everything works very well - except when I copy a
large
Hi,
I did several tests with current dbmail cvs with trace level 3 for
imapd. While copying lot of messages to dbmail suddenly no new
connection was possible, imapd didn't respond any more.
The last sign of life was:
May 16 14:55:37 geht-schon dbmail/imap4d[3825]:
dbpgsql.c,db_free_result:
Hi,
could someone please apply the attached patch? It removes the ^M from
trace line ends in syslog. Thanks!
Thomas
--
http://www.tmueller.com for pgp key (95702B3B)
--- imapcommands.c.orig 2004-04-27 07:16:49.0 +
+++ imapcommands.c 2004-05-11 20:31:45.0 +
@@
Hi Aaron,
Wait, scratch that one moment, there was one thing I was worried about, INBOX.
In db.c and in imapcommand.c, there are a couple of str[n?]casecmp's with
INBOX and inbox as the parameters.
Thomas, try using your patch and creating a mailbox called Inbox and inbox
and see what
Hi Paul,
Sounds like a valid bug to me. Could you perhaps submit the directory
layout that triggers this? Perhaps I can reproduce this bug with the
imap testsuite I'm constructing, so we can fix this pronto.
[..]
But with dbmail it only works for a while and then skips the rest with an
Hi Ilja,
I would think so, unless we've already made assumptions on the mailbox
names being case insensitive.
I'll give it a spin.
I've just tried it on PostgreSQL, which is case sensitive in varchar
fields. I can create mailboxes with names only different in case there.
That's
Hi Ilja,
dbmail should be case sensitive I think, because the most wide spread
imap servers like Cyrus are.
I agree, but I think we should wait until after the release of 2.0 to
change this.
That's an important feature to be able to transfer from another imap
server to dbmail so it's
Hi Ilja,
can you try it with the newest version (v1.122) of pipe.c?
I tried that hoping it will solve the problems with MS Outlook (I wrote
a mail about that on 2004.04.22) but the problems are still.
I've sent a mail using Squirrelmail to dbmail. When Outlook displays it
the header fields
Hi Ilja,
I've added a macro MOD(x,y) to pipe.c which calculates the modulo of x
with respect y. It also works when x is negative.
I've tested that version but I still get a . at the end of each message.
echo test |mail -s test myuser
Is enough to get it.
Thomas
--
http://www.tmueller.com
Hi Blake,
Currently all my messages have a trailing period on it's own line on
the end of them. Current CVS, Postfix 2, LMTP.
I have the same problem with exim4 and lmtp.
Thomas
--
http://www.tmueller.com for pgp key (95702B3B)
Hi Aaron,
The particular email I was looking at was inserted a
while ago, using either 2.0-rc3 or 2.0-rc4. The changes that should take care
of this problem have been made since 2.0-rc4, so we should be alright.
I don't think so. My dbmail is from last week and I managed to break a
user
Hi Ilja,
There is framework in the dsn structure for providing a message to accompany
the specific codes. I wasn't sure how to go about adding the strings,
though.
Gettext? Config file? Hard coded?
If hard coded English is sufficient, I can add them ASAP.
I guess hardcoded English
Hi,
I did some tests with current cvs and some widespread MUAs - and failed
with the most widespread, MicroSoft Outlook (XP if that matters).
Everything is fine and can be used, but the messages received are shown
with headers in the body.
If I copy messages from my Cyrus server to the dbmail
Hi Paul,
So chances are pretty slim the code will even work at all with unicode.
Seems like a worthy implementation goal.
Yes I totally agree. That's why I've asked twice how I could use a
unicode Postgres database but I got no response. Any idea?
Hi Jesse,
dbmail supports both md5 hash and digest. For the digest, try using
a type of md5sum instead of md5. The value in the database can
actually be in either format if encryption_type is md5 (it looks at
the first 3 chars and if it's $1$ it's an md5 hash), but if you tell
it to
Hi Paul,
The difference is between md5-digest, and md5-hash. I don't have any
detailed knowlegde of the algorithms involved, though.
I searched around the net in case I've missed something in the past but
I found nothing new.
md5 = message digest 5, md5 is a hash algorithm. There are 3
Hi,
the INSTALL files says nothing about exim4 (maybe it's to simple?):
LOCAL_DELIVERY=transport_dbmail
Every router with local mail has to use 'transport = LOCAL_DELIVERY'
then.
Two possible transports:
# transport using pipe
transport_dbmail:
driver = pipe
command =
said that.
[..]
But yes, you have perfectly summarised the point of my comment.
As a quick speed up that's a good solution yes. But if it's the right
permanent solution?
--
MfG Thomas Mueller - http://www.tmueller.com for pgp key (95702B3B)
mailboxes_lower_name_idx ON mailboxes(lower(name));
Is IMAP case sensitive? Are folders like INBOX/test and INBOX/Test
possible? If it's insensitive we could lower() all queries on names and
create an index on lower(name).
--
MfG Thomas Mueller - http://www.tmueller.com for pgp key (95702B3B
' as contact for billing questions to
the bill ;-)
--
MfG Thomas Mueller - http://www.tmueller.com for pgp key (95702B3B)
]@__ user but add
an additional column too. What do you think?
--
MfG Thomas Mueller - http://www.tmueller.com for pgp key (95702B3B)
..]
--
Before I switched to lmtp I only got 'failed' messages without a reason.
That's the way dbmail should handle bounces too I think.
--
MfG Thomas Mueller - http://www.tmueller.com for pgp key (95702B3B)
(): creating new
child
Jan 30 23:40:10 server dbmail/imap4d[1736]: CreateChild(): signal
handler placed, going to perform task now
--
Is there anything I can do to help finding this crash?
--
MfG Thomas Mueller - http
: No such attribute
shmbx_acc.is_subscribed
imapcommands.c ends the logging lines with \r\n this leads to output
like this one:
Dec 6 17:26:03 server dbmail/imap4d[4346]: IMAPD [PID 4346]: user (id
1, name test) login accepted @ 2003-12-06 17:26:03^M
--
MfG Thomas Mueller - http
to a inconsistent database (the insert to
physmessage succeeded) - this could be easily solved using transactions.
I found a thread about using transaction on the dbmail list - are there
plans to use transactions for 2.0 ?
Thanks!
--
MfG Thomas Mueller - http://www.tmueller.com for pgp key (95702B3B)
90 matches
Mail list logo