[Dovecot] Problem with Dovecot 2.0/2.1 and MySQL 5.1

Mark Schmale masch at masch.it
Wed Jun 20 20:07:44 EEST 2012


Hi everyone, 

since some time I got problems with dovecot & mysql. 
I got the problem with version 2.0.x and upgraded to 2.1.7 to check if
its gone. But its not :(
The logs just tell me this: 
dovecot: auth: Error: auth worker: Aborted request: Worker process died
unexpectedly

If I change to a sqlite setup, everything works fine. 

Here are some informations. I hope someone can tell me whats wrong with
my system/setup. I really dont think that this is a bug because someone
else should have hit that before me. 

doveconf - n
  # 2.1.7: /etc/dovecot/dovecot.conf
  # OS: Linux 3.2.2-hardened-r1 x86_64 Gentoo Base System release 2.1 
  auth_verbose = yes
  mail_location = maildir:~/%d/mail/%n
  managesieve_notify_capability = mailto
  managesieve_sieve_capability = fileinto reject envelope
encoded-character vacation subaddress comparator-i;ascii-numeric
relational regex imap4flags copy include variables body enotify
environment mailbox date ihave namespace inbox { inbox = yes location = 
    mailbox Drafts {
      special_use = \Drafts
    }
    mailbox Junk {
      special_use = \Junk
    }
    mailbox Sent {
      special_use = \Sent
    }
    mailbox "Sent Messages" {
      special_use = \Sent
    }
    mailbox Trash {
      special_use = \Trash
    }
    prefix = 
  }
  passdb {
    args = /etc/dovecot/dovecot-sql.conf
    driver = sql
  }
  plugin {
    sieve = ~/.dovecot.sieve
    sieve_dir = ~/sieve
  }
  protocols = imap pop3 lmtp sieve
  service auth {
    unix_listener /var/spool/postfix/private/auth {
      group = postfix
      mode = 0660
      user = postfix
    }
    unix_listener auth-userdb {
      group = vmail
      user = vmail
    }
  }
  ssl_cert = </etc/ssl/dovecot/server.pem
  ssl_key = </etc/ssl/dovecot/server.key
  userdb {
    args = /etc/dovecot/dovecot-sql.conf
    driver = sql
  }
  protocol lda {
    mail_plugins = sieve
  }

contents of dovecot-sql.conf: 
default_pass_scheme = PLAIN-MD5
driver = mysql
connect = host=localhost dbname=config user=user password=pass

password_query = SELECT CONCAT( u.username,  '@', d.name ) AS user,
password FROM mail_user AS u LEFT JOIN mail_domains AS d ON u.domain =
d.id WHERE u.username = '%n' AND d.name = '%d'

user_query = SELECT home, uid, gid FROM mail_user AS u LEFT JOIN
mail_domains AS d ON u.domain = d.id WHERE u.username = '%n' AND d.name
= '%d'

// linebreaks added by mailclient for readability 

bt full with gdb: 
  [Thread debx7fb891e85977 "216be49381eb03d180103cdf6eb90483"
          fields_count = 2
          name = 0x0
  #1  sql_query_callback (result=0x7fb891e82f60,
  sql_request=0x7fb891e82c08) at passdb-sql.c:87 auth_request =
  0x7fb891e82a80 _module = <optimized out>
          module = <optimized out>
          passdb_result = PASSDB_RESULT_INTERNAL_FAILURE
          password = 0x0
          scheme = <optimized out>
          ret = <optimized out>
          __FUNCTION__ = "sql_query_callback"
  #2  0x00007fb891c3c940 in driver_sqlpool_query_callback
  (result=0x7fb891e82f60, request=0x7fb891e82e50) at
driver-sqlpool.c:635 db = 0x7fb891e66540 conn = 0x0
          conndb = 0x7fb891e66910
  #3  0x00007fb891c3dbe0 in driver_mysql_query (db=<optimized out>,
  query=<optimized out>, callback=0x7fb891c3c8c0
  <driver_sqlpool_query_callback>, context=0x7fb891e82e50) at
  driver-mysql.c:296 result = 0x7fb891e82f60 #4  0x00007fb891c3cc41 in
  driver_sqlpool_query (_db=0x7fb891e66540, query=0x7fb891e561c8 "SELECT
  CONCAT( u.username,  '@', d.name ) AS user, password FROM mail_user AS
  u LEFT JOIN mail_domains AS d ON u.domain = d.id WHERE u.username =
  'masch' AND d.name = 'masch.it'", callback=0x7fb891c31960
  <sql_query_callback>, context=0x7fb891e82c08) at driver-sqlpool.c:657
  db = 0x7fb891e66540 request = 0x7fb891e82e50 conn = 0x7fb891e667c0 #5
  0x00007fb891c23b49 in auth_worker_handle_passv (args=0x7fb891e560b8,
  id=1, client=<optimized out>) at auth-worker-client.c:200 auth_request
  = 0x7fb891e82a80 passdb = <optimized out> password = 0x7fb891e55ff2
  "somepassword" passdb_id = 1 #6  auth_worker_handle_line
(line=<optimized out>, client=<optimized out>) at
auth-worker-client.c:559 args = out>0x7fb891e560a8
          id = 1
          ret = false
  #7  auth_worker_input (client=0x7fb891e80650) at
  auth-worker-client.c:647 _data_stack_cur_id = 3
          line = <optimized out>
          ret = true
  #8  0x00007fb89179f4b6 in io_loop_call_io (io=0x7fb891e80970) at
  ioloop.c:379 ioloop = 0x7fb891e5e390
          t_id = 2
  #9  0x00007fb8917a043f in io_loop_handler_run (ioloop=<optimized out>)
  at ioloop-epoll.c:213 ctx = 0x7fb891e69100
          events = <optimized out>
          event = 0x7fb891e69170
          list = 0x7fb891e809c0        
          io = <optimized out>
          tv = {tv_sec = 59, tv_usec = 999508}
          msecs = <optimized out>
          ret = 1
          i = <optimized out>
          j = <optimized out>
          call = <optimized out>
  #10 0x00007fb89179ed50 in io_loop_run (ioloop=0x7fb891e5e390) at
ioloop.c:398 No locals.
  #11 0x00007fb891786a87 in master_service_run (service=0x7fb891e5e240,
callback=<optimized out>) at master-service.c:544 No locals.
  #12 0x00007fb891c289a3 in main (argc=2, argv=0x7fb891e5e080) at
main.c:373 c = <optimized out>

best regards, 
Mark Schmale 


More information about the dovecot mailing list