Hello,

From these lines:

  ... amavis[22796]: (22796-01) sql rollback
  ... amavis[22796]: (22796-01) save_info_preliminary: rollback done

It appears that the transaction is not being committed to the database.  This is what those two lines look like in my log:

  ... amavis[21515]: (21515-01) sql: preparing and executing: INSERT INTO msgs (mail_id, secret_id, am_id, time_num, time_iso, sid, policy, client_addr, size, host)   VALUES (?,?,?,?,?,?,?,?,?,?)
  ... amavis[21515]: (21515-01) sql commit


Can you double check the schema of your msgs table?  Here is what mine looks like:

  show create table msgs;
    | msgs  | CREATE TABLE `msgs` (
    `mail_id` varchar(12) NOT NULL default '',
    `secret_id` varchar(12) default '',
    `am_id` varchar(20) NOT NULL default '',
    `time_num` int(10) unsigned NOT NULL default '0',
    `time_iso` varchar(16) NOT NULL default '',
    `sid` int(10) unsigned NOT NULL default '0',
    `policy` varchar(255) default '',
    `client_addr` varchar(255) default '',
    `size` int(10) unsigned NOT NULL default '0',
    `content` char(1) default NULL,
    `quar_type` char(1) default NULL,
    `dsn_sent` char(1) default NULL,
    `spam_level` float default NULL,
    `message_id` varchar(255) default '',
    `from_addr` varchar(255) default '',
    `subject` varchar(255) default '',
    `host` varchar(255) NOT NULL default '',
    PRIMARY KEY  (`mail_id`),
    KEY `sid` (`sid`),
    KEY `msgs_idx_sid` (`sid`)
  ) ENGINE=InnoDB DEFAULT CHARSET=latin1 |

I also got the table schema from /usr/share/doc/amavisd-new/README.sql.gz, copied the SQL statements into a file named amavis.sql and did:

  mysql -u root -p amavis < amavis.sql

My db name being amavis.  Just wanted to double check if you followed a similar approach?

--
Party On,
Adam