Attached is a revision of UPGRADING that would have been clearer for me.

I'm not terribly fond of the "TRACE" section and the "Server Changes" section, as I think that they could be more-concise simply with a reference to other documentation (namely the dbmail.conf "man" page), but since they weren't a problem for me I've left them be. For the most-part I feel that an UPGRADING document is there to highlight the changes between this version and any previous version that may prove to be problematic. I don't think that the details need to be documented there as long as it is documented elsewhere.

Thanks,

Lee.


On 01/12/2015 02:55 AM, Harald Leithner wrote:
Hi,

good that you managed to upgrade!

About the documentation, I'm pretty sure that Paul excepts every patch that makes the documentation more clear and better readable for all.

Now you have fresh knowledge of the upgrade process, so it would be great if you write a new UPGRADING text file and share it with us.

thx

Harald


Am .01.2015, 07:52 Uhr, schrieb Lee Howard <fax...@howardsilvan.com>:

So after weeks of part-time work resolving dependency issues in the upgrade (primarily with GMime and Glib, but libevent was also a minor issue) this evening I upgraded from 3.0.2 to 3.2.2.

I did make a backup of the database, but the schema auto-migration appears to have worked, things are operational, and I do not notice any ill effects with the database at this point.

(I'm hoping that the efforts of this upgrade result in no more situations where clients cannot connect to dbmail-imapd and dbmail-pop3d services. Whether the problem was in dbmail or in GMime or something else, I don't know. I didn't have any problems after upgrading only GMime, but I didn't let dbmail-3.0.2 run long-enough with GMime-2.6.20 to say. Normally I would see one problem every two weeks or so, but lately it was more-frequent: like once per-week. I only finished the GMime upgrade on Thursday.)

I quickly hit-upon the dbmail-imapd segfault bug fixed here:

https://github.com/pjstevns/dbmail/commit/edd6179d638d4257d0a669de582f8770370a7364

So, I applied that patch, and it seems to have resolved the crashing problem.

Upgrade documentation is a concern for me, though...

The UPGRADING document and the sample dbmail.conf file explain that [dburi] has deprecated [driver], [host], [sqlport], [sqlsocket], [user], [pass], and [db]. However, no examples are given and no format syntax is provided. So, it leaves the user guessing. I'm sure that database URIs are probably standard, and dbmail adheres to this standard, but it's not stated. I just followed the example in dbmail-3.2.2/jenkins/Makefile.

A IMAP behavior change from default, login_disabled=no to yes, is not discussed at all in UPGRADING.

Lastly, the UPGRADING file contains unnecessary information noise. As it is the user has to read the entire UPGRADING document and determine which parts apply to their upgrade path. Since this is the 3.2.2 tarball there is no need to explain the upgrade path to 3.0 as long as you include the full 2.2-to-3.2 path in the explanation. Nobody is downloading the 3.2.2 tarball in order to perform a 2.2-to-3.0 upgrade.. That information is only relevant so that those upgrading from 2.2 can try to discern what they need to do. It would be clearer if the UPGRADING document did not expect the reader to decipher the noise from the information and merely explain what users of all previous versions of dbmail would need to do to upgrade and maintain the same functional behavior.

Thanks,

Lee.

_______________________________________________
Dbmail-dev mailing list
Dbmail-dev@dbmail.org
http://mailman.fastxs.nl/cgi-bin/mailman/listinfo/dbmail-dev



For those upgrading from earlier DBMail versions, you may also need
to upgrade other packages upon which DBMail depends.

DBMail 3.2 has the following dependencies...
======================================

* Database: MySQL 5.0 or better, PostgreSQL 8.3+, Sqlite3, Oracle
* Glib: (>= 2.16.0)
* GMime: (>= 2.6.20)
* OpenSSL
* libmhash
* libzdb
* libevent: (>= 2.0.21)

The DBMail database has changed for 3.2 different from 3.0.
However, as of DBMail 3.2 auto-migrations are supported (DBmail 3.2
will migrate the schema automatically on the first use.)  So, no
manual migrations are required.


Config Changes
======================================

* MySQL: notice!

 A special note to MySQL users: since DBMail 3.0 stores attachments in
 single rows, you need to set 'max_allowed_packet' in /etc/mysql/my.cnf
 to a value that is larger than the largest email attachment you expect
 to support. So if you accept emails upto say 20MB, you should set a 
 value for 'max_allowed_packet' of no less than 21MB, leaving some room
 for network overhead. If you want to be safe: use 1.5 times the max
 message size.

* PostgreSQL: notice!

 Also a special note to PostgreSQL users: since pg9 has changed the 
 default for bytea_output in postgresql.conf you must make sure this
 config parameter is set to 'escape'. Failing to do so will make it
 impossible for DBMail to parse any query results involving bytea 
 fields. This in turn will break the migration procedure and make
 your email inaccessible.

* dbmail.conf: 
 ------------------

 DBMail 3.2 now allows you to select the database backend and authentication
 module in the config file using the [dburi] setting.  Examples:

dburi = sqlite:///home/johndoe/dbmail.sqlite

dburi = mysql://127.0.0.1:3306/dbmail?user=dbmail&password=mypass&charset=utf8

 The old database connection parameter fields (driver, host, user, password,
 sqlport, sqlsocket, db) are now deprecated.
 ------------------

 The old TRACE_LEVEL is now not used anymore, and
 TRACE_SYSLOG/TRACE_STDERR are now deprecated.
 
 Logging has been broken up into 8 logging levels and each level can
 be individually turned on or off. The Stderr/log file logs all
 entries to stderr or the log file. Syslog logging uses the facility
 mail and the logging level of the event for logging. Syslog can then
 be configured to log data according to the levels.

 Set the log level to the sum of the values next to the levels you
 want to record.
 
   1 = Emergency 
   2 = Alert
   4 = Critical
   8 = Error
  16 = Warning
  32 = Notice
  64 = Info
 128 = Debug
 255 = database queries (very verbose)

 Examples:   0 = Nothing
            31 = Emergency + Alert + Critical + Error + Warning
           511 = Everything

FILE_LOGGING_LEVELS       = 7
SYSLOG_LOGGING_LEVELS     = 31
 ------------------

 The default value for [login_disabled] has changed from "no" to "yes".
 If you wish to retain the pre-3.2 behavior you will need to set this
 explicitly to "no".
 ------------------


Server Changes
======================================

Dbmail until 2.2 used a pre-forking server design with a dedicated
connection to the database backend for each forked process. Even with
a hundred or so concurrently connected clients this stretched the
scalability of the database backends. 

Starting with version 2.3.3 dbmail has switched to a single process
that uses a event-driven architecture to handle many many concurrent
clients. Where needed a pool of worker threads is used to process
database transactions. Currently, only the IMAP server is multi-
threaded. Database transactions are handled by a single shared 
dynamic database connection pool to minimize the number
of overall database connections.  

All this means that a number of configuration options are now
redundant. You can remove the following items from dbmail.conf:

NCHILDREN
MAXCHILDREN
MINSPARECHILDREN
MAXSPARECHILDREN
MAXCONNECTS

---
EOF
_______________________________________________
Dbmail-dev mailing list
Dbmail-dev@dbmail.org
http://mailman.fastxs.nl/cgi-bin/mailman/listinfo/dbmail-dev

Reply via email to