On 9 April 2019 23:48 Hugo Manuel Ojendiz Lemus via dovecot <dovecot@dovecot.org> wrote:


Good day to everyone


Currently, I'm trying to implement the sieve "vacation" plugin with the sieve "Extdata" plugin to lookup information from a MySQL remote server. I'm following the instructions in the documentation: https://wiki2.dovecot.org/Pigeonhole/Sieve/Plugins/Extdata


===== I have the following error ===

Apr 09 13:46:51 mail dovecot[5512]: dict: Error: Fatal error in defaults handling. Program aborted

Apr 09 13:46:51 mail dovecot[5512]: lmtp(usrx@themail.com)<5539><PNwlBJvorFyjFQAAYWwSRA:2>: Warning: sieve: before: line 18: extdata: failed to lookup value `reply_enabled': Connection closed (reply took 0.016 secs (0.017 in dict wait, 0.000 in other ioloops, 0.000 in locks, async-id reply 0.001 secs ago))

Apr 09 13:46:51 mail dovecot[5512]: dict: Fatal: master: service(dict): child 5542 killed with signal 11 (core dumps disabled - https://dovecot.org/bugreport.html#coredumps)

Apr 09 13:46:51 mail.halmex.com.mx dovecot[5512]: dict: Error: Fatal error in defaults handling. Program aborted

============================

====== Dovecot Information ======


2.3.5.1 (7ec6d0ade): /etc/dovecot/dovecot.conf

# Pigeonhole version 0.5.5 (2483b085)

# OS: Linux 3.10.0-514.16.1.el7.x86_64 x86_64 CentOS Linux release 7.3.1611 (Core)  xfs

doveconf: Warning: please set ssl_dh=</etc/dovecot/dh.pem

doveconf: Warning: You can generate it with: dd if=/var/lib/dovecot/ssl-parameters.dat bs=1 skip=88 | openssl dhparam -inform der > /etc/dovecot/dh.pem

dict {

  sieve = mysql:/etc/dovecot/pigeonhole-sieve.dict

}

log_timestamp = "%Y-%m-%d %H:%M:%S "

mail_location = maildir:/var/vmail/%d/%Ln

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 index ihave duplicate mime foreverypart extracttext

namespace inbox {

  inbox = yes

  location =

  prefix =

  separator = .

  type = private

}

passdb {

  args = /etc/dovecot/dovecot-sql.conf.ext

  driver = sql

}

plugin {

  pop3_migration_mailbox = imapc:

  sieve_extdata_dict_uri = proxy::sieve

  sieve_global_extensions = +vnd.dovecot.extdata

  sieve_plugins = sieve_extdata

sieve_vacation_send_from_recipient = yes

sieve_before = /var/lib/dovecot/before.sieve

}

pop3c_host = mail.halmex.com.mx

service auth-worker {

  user = root

}

service auth {

  unix_listener /var/spool/postfix/private/auth {

    group = postfix

    mode = 0660

    user = postfix

  }

  unix_listener auth-master {

    mode = 0600

    user = vmail

  }

  user = root

}

service dict {

  unix_listener dict {

    group = vmail

    mode = 0600

    user = vmail

  }

}

service lmtp {

  unix_listener /var/spool/postfix/private/dovecot-lmtp {

    group = postfix

    mode = 0600

    user = postfix

  }

}


userdb {

  args = uid=5000 gid=5000 home=/var/vmail/%d/%Ln allow_all_users=yes

  driver = static

}

protocol pop3 {

  disable_plaintext_auth = no

}

protocol doveadm {

  mail_plugins = " pop3_migration"

}

protocol lmtp {

  mail_plugins = " sieve"

}


============================


An important bit of information it's that the dict service was trying to read the /etc/my.cnf file, but SELinux prevent it, and the sieve script worked fine, once I solved the SELinux access problem, the errors began to appear.


This is a postfix server working great for years, with a local MariaDB.


The remote MySQL server it’s in the same LAN and It’s reachable by the mail server and other servers, the account has access, and like I’ve mention, before I gave access to the local /etc/my.cnf the sieve script worked fine (just the SELinux warnings).

Looks like the dict service has problems with the local MariaDB configuration file, but in this scenario it’s not required


Any information or help you can provide me would be greatly appreciated.


Hugo Manuel Ojendiz Lemus

Desarrollo | Recursos Humanos | HALMEX


((°J°))



Can you get backtrace on the corefile using gdb? bt full should give it. See https://dovecot.org/bugreport.html
---
Aki Tuomi