[Dovecot] maildir_copy_with_hardlinks on v.2.0.19
Hi,
I'm trying to get the so-called "single instance store" (I think cyrus has got the name for the first time) with dovecot --version = 2.0.19 binary package installed from ubuntu 12.04 lts official repo.
I have checked that "maildir_copy_with_hardlinks" is enabled ("dovecot -a|grep hard" shows "yes") then I have installed and enabled the lmtp component of dovecot. The configuration "dovecot -n" is pasted here: http://paste.lug.ro/131180
Also in the same paste is a strace against dovecot and childrent showing evidence of the MTA delivering a single copy of the message via LMTP with multiple RCPT TO: headers.
However when looking in the Maildir, I see the mail break down into three separate files instead of expected hardlinked files ("stat" and "ls" shows one single link count, inodes are different)
Given the above data, what (am I | dovecot is) doing wrong?
Please cc me if you need additional input when replying as I'm not subscribed to the list (I'll watch the thread online only) Many thanks in advance.
On 2012-07-22 7:59 AM, mailing list subscriber <mailinglists35@gmail.com> wrote:
I'm trying to get the so-called "single instance store" (I think cyrus has got the name for the first time) with dovecot --version = 2.0.19 binary package installed from ubuntu 12.04 lts official repo.
For advanced/newest features, you would be well advised to use the most current stable version, which is currently 2.1.8...
I have checked that "maildir_copy_with_hardlinks" is enabled ("dovecot -a|grep hard" shows "yes") then I have installed and enabled the lmtp component of dovecot. The configuration "dovecot -n" is pasted here: http://paste.lug.ro/131180
Please don't do that - just paste the output in the email body, it is much easier to read/respond and try to help you.
--
Best regards,
Charles
On Sun, Jul 22, 2012 at 2:59 PM, mailing list subscriber <mailinglists35@gmail.com> wrote:
Hi,
I'm trying to get the so-called "single instance store" (I think cyrus has got the name for the first time) with dovecot --version = 2.0.19 binary package installed from ubuntu 12.04 lts official repo.
As requested, here is my update. As you can see I am running now the latest release however emails delivered through lmtp gets split into different files instead of expected hardlinked files.
Please pay attention as I'm commenting in-between different pasted outputs:
# 2.1.8 (30b0d6b1c581): /etc/dovecot/dovecot.conf # OS: Linux 3.2.0-26-generic x86_64 Ubuntu 12.04 LTS auth_username_format = %Ln auth_verbose = yes auth_verbose_passwords = plain mail_location = maildir:~/Maildir 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 = prefix = } passdb { driver = pam } plugin { autocreate = Inbox autocreate2 = Sent autocreate3 = Drafts autocreate4 = Spam autocreate5 = Trash autosubscribe = Inbox autosubscribe2 = Sent autosubscribe3 = Drafts autosubscribe4 = Spam autosubscribe5 = Trash mail_log_events = delete expunge mailbox_delete mailbox_rename mail_log_fields = uid box msgid size sieve = ~/.dovecot.sieve sieve_dir = ~/sieve } protocols = imap pop3 sieve lmtp service auth { unix_listener /var/spool/postfix/private/dovecot-auth { group = postfix mode = 0660 user = postfix } } service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0660 user = postfix } } ssl_cert = </etc/ssl/certs/dovecot.pem ssl_cipher_list = ALL:!LOW:!SSLv2:ALL:!aNULL:!ADH:!eNULL:!EXP:RC4+RSA:+HIGH:+MEDIUM ssl_key = </etc/ssl/private/dovecot.pem userdb { driver = passwd } verbose_proctitle = yes protocol imap { imap_client_workarounds = delay-newmail mail_max_userip_connections = 10 mail_plugins = " autocreate" } protocol pop3 { mail_max_userip_connections = 10 pop3_client_workarounds = outlook-no-nuls oe-ns-eoh } protocol lda { deliver_log_format = msgid=%m: %$ mail_plugins = sieve postmaster_address = postmaster quota_full_tempfail = yes rejection_reason = Your message to <%t> was automatically rejected:%n%r }
for your pleasure, here is the transaction (note the same queue id and a single lmtp session for all three recipients)
Jul 23 21:47:32 imap postfix/qmgr[27463]: 6746C27C687: from=<root@imap.mydomain.ro>, size=532, nrcpt=3 (queue active) Jul 23 21:47:32 imap dovecot: lmtp(40609): Connect from local Jul 23 21:47:32 imap dovecot: lmtp(40609, anotheruser): pnuDHkScDVChngAA7nOI2A: msgid=<20120723184732.6746C27C687@imap.mydomain.ro>: saved mail to INBOX Jul 23 21:47:32 imap postfix/lmtp[40608]: 6746C27C687: to=<anotheruser@mydomain.ro>, relay=imap.mydomain.ro[private/dovecot-lmtp], delay=0.26, delays=0.15/0.01/0/0.1, dsn=2.0.0, status=sent (250 2.0.0 <anotheruser@mydomain.ro> pnuDHkScDVChngAA7nOI2A Saved) Jul 23 21:47:32 imap dovecot: lmtp(40609, firstuser): pnuDHkScDVChngAA7nOI2A: msgid=<20120723184732.6746C27C687@imap.mydomain.ro>: saved mail to INBOX Jul 23 21:47:32 imap postfix/lmtp[40608]: 6746C27C687: to=<firstuser@mydomain.ro>, relay=imap.mydomain.ro[private/dovecot-lmtp], delay=0.37, delays=0.15/0.01/0/0.2, dsn=2.0.0, status=sent (250 2.0.0 <firstuser@mydomain.ro> pnuDHkScDVChngAA7nOI2A Saved) Jul 23 21:47:32 imap dovecot: lmtp(40609, firstuser): pnuDHkScDVChngAA7nOI2A: msgid=<20120723184732.6746C27C687@imap.mydomain.ro>: saved mail to INBOX Jul 23 21:47:32 imap postfix/lmtp[40608]: 6746C27C687: to=<firstuser@anothermydomain.ro>, relay=imap.mydomain.ro[private/dovecot-lmtp], delay=0.44, delays=0.15/0.01/0/0.28, dsn=2.0.0, status=sent (250 2.0.0 <firstuser@anothermydomain.ro> pnuDHkScDVChngAA7nOI2A Saved) Jul 23 21:47:32 imap dovecot: lmtp(40609): Disconnect from local: Client quit (in reset) Jul 23 21:47:32 imap postfix/qmgr[27463]: 6746C27C687: removed
for whoever wants to blame postfix 2.9.3 without reason, here is the postconf -n
alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases biff = no broken_sasl_auth_clients = yes config_directory = /etc/postfix home_mailbox = Maildir/ html_directory = /usr/share/doc/postfix/html inet_interfaces = all mailbox_command = /usr/lib/dovecot/deliver -c /etc/dovecot/conf.d/01-mail-stack-delivery.conf -m "${EXTENSION}" mailbox_size_limit = 0 mydestination = imap.mydomain.ro, localhost.mydomain.ro, localhost myhostname = imap.mydomain.ro mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 readme_directory = /usr/share/doc/postfix recipient_delimiter = + relayhost = smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtp_use_tls = yes smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) smtpd_recipient_restrictions = reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination smtpd_sasl_auth_enable = yes smtpd_sasl_authenticated_header = yes smtpd_sasl_local_domain = $myhostname smtpd_sasl_path = private/dovecot-auth smtpd_sasl_security_options = noanonymous smtpd_sasl_type = dovecot smtpd_sender_restrictions = reject_unknown_sender_domain smtpd_tls_auth_only = yes smtpd_tls_cert_file = /etc/ssl/certs/ssl-mail.pem smtpd_tls_key_file = /etc/ssl/private/ssl-mail.key smtpd_tls_mandatory_ciphers = medium smtpd_tls_mandatory_protocols = SSLv3, TLSv1 smtpd_tls_received_header = yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtpd_use_tls = yes tls_random_source = dev:/dev/urandom virtual_alias_maps = hash:/etc/postfix/valid_recipients_alias virtual_mailbox_domains = mydomain.ro, anothermydomain.ro virtual_mailbox_maps = $virtual_alias_maps virtual_transport = lmtp:unix:private/dovecot-lmtp
and the dialogue between postfix lmtp client and dovecot lmtp server:
Process 40677 attached (waiting for parent)
Process 40677 resumed (parent 40562 ready)
[pid 40676] write(4,
"VERSION\tconfig\t2\t0\nREQ\tmodule=lmtp\tservice=lmtp\n", 48) = 48
[pid 40676] read(4, <unfinished ...>
[Process 40678 attached
Process 40677 suspended
[pid 40678] write(1, "SIEVE: fileinto reject envelope
encoded-character vacation subaddress comparator-i;ascii-numeric
relational regex imap4flags copy include variables body enotify
environment mailbox date ihave, NOTIFY: mailto\n", 208) = 208
Process 40677 resumed
Process 40678 detached
[pid 40677] --- SIGCHLD (Child exited) @ 0 (0) ---
[pid 40677] read(11, "SIEVE: fileinto reject envelope
encoded-character vacation subaddress comparator-i;ascii-numeric
relational regex imap4flags copy include variables body enotify
environment mailbox date ihave, NOTIFY: mailto\n", 4096) = 208
[pid 40677] read(11, "", 3888) = 0
[pid 40677] read(21, "", 1024) = 0
[pid 40677] read(21, "", 1024) = 0
[pid 40677] read(10, "# /etc/nsswitch.conf\n#\n# Example configuration
of GNU Name Service Switch functionality.\n# If you have the
glibc-doc-reference' and
info' packages installed, try:\n# info libc \"Name Service Switch\"' for information about this file.\n\npasswd: compat\ngroup: compat\nshadow: compat\n\nhosts: files dns\nnetworks: files\n\nprotocols: db files\nservices: db files\nethers: db files\nrpc: db files\n\nnetgroup: nis\n", 4096) = 475 [pid 40677] read(10, "", 4096) = 0 [pid 40677] read(10, "VERSION\tconfig\t2\t0\nREQ\tmodule=lmtp\tservice=lmtp\n", 1024) = 48 [pid 40677] write(10, "\nnamespace=inbox\nnamespace/inbox/name=inbox\nnamespace/inbox/inbox=yes\nplugin=\nplugin/sieve=~/.dovecot.sieve\nplugin/sieve_dir=~/sieve\nplugin/autocreate=Inbox\nplugin/autocreate2=Sent\nplugin/autocreate3=Drafts\nplugin/autocreate4=Spam\nplugin/autocreate5=Trash\nplugin/autosubscribe=Inbox\nplugin/autosubscribe2=Sent\nplugin/autosubscribe3=Drafts\nplugin/autosubscribe4=Spam\nplugin/autosubscribe5=Trash\nplugin/mail_log_events=delete expunge mailbox_delete mailbox_rename\nplugin/mail_log_fields=uid box msgid size\nmail_location=maildir:~/Maildir\nmaildir_copy_with_hardlinks=yes\nverbose_proctitle=yes\n\n", 591) = 591 [pid 40676] <... read resumed> "\nnamespace=inbox\nnamespace/inbox/name=inbox\nnamespace/inbox/inbox=yes\nplugin=\nplugin/sieve=~/.dovecot.sieve\nplugin/sieve_dir=~/sieve\nplugin/autocreate=Inbox\nplugin/autocreate2=Sent\nplugin/autocreate3=Drafts\nplugin/autocreate4=Spam\nplugin/autocreate5=Trash\nplugin/autosubscribe=Inbox\nplugin/autosubscribe2=Sent\nplugin/autosubscribe3=Drafts\nplugin/autosubscribe4=Spam\nplugin/autosubscribe5=Trash\nplugin/mail_log_events=delete expunge mailbox_delete mailbox_rename\nplugin/mail_log_fields=uid box msgid size\nmail_location=maildir:~/Maildir\nmaildir_copy_with_hardlinks=yes\nverbose_proctitle=yes\n\n", 8192) = 591 [pid 40676] write(5, "\344\236\0\0\7\0\0\0\1\0\0\0", 12) = 12 [pid 40562] read(128, "\344\236\0\0\7\0\0\0\1\0\0\0", 1020) = 12 [pid 40676] write(5, "\344\236\0\0\7\0\0\0\0\0\0\0", 12) = 12 [pid 40562] read(128, "\344\236\0\0\7\0\0\0\0\0\0\0", 1020) = 12 [pid 40676] write(4, "VERSION\tconfig\t2\t0\nREQ\tmodule=lmtp\tservice=lmtp\tuser=\n", 54) = 54 [pid 40677] read(10, "VERSION\tconfig\t2\t0\nREQ\tmodule=lmtp\tservice=lmtp\tuser=\n", 976) = 54 [pid 40676] read(4, <unfinished ...> [pid 40677] write(10, "\nnamespace=inbox\nnamespace/inbox/name=inbox\nnamespace/inbox/inbox=yes\nplugin=\nplugin/sieve=~/.dovecot.sieve\nplugin/sieve_dir=~/sieve\nplugin/autocreate=Inbox\nplugin/autocreate2=Sent\nplugin/autocreate3=Drafts\nplugin/autocreate4=Spam\nplugin/autocreate5=Trash\nplugin/autosubscribe=Inbox\nplugin/autosubscribe2=Sent\nplugin/autosubscribe3=Drafts\nplugin/autosubscribe4=Spam\nplugin/autosubscribe5=Trash\nplugin/mail_log_events=delete expunge mailbox_delete mailbox_rename\nplugin/mail_log_fields=uid box msgid size\nmail_location=maildir:~/Maildir\nmaildir_copy_with_hardlinks=yes\nverbose_proctitle=yes\n\n", 591) = 591 [pid 40676] <... read resumed> "\nnamespace=inbox\nnamespace/inbox/name=inbox\nnamespace/inbox/inbox=yes\nplugin=\nplugin/sieve=~/.dovecot.sieve\nplugin/sieve_dir=~/sieve\nplugin/autocreate=Inbox\nplugin/autocreate2=Sent\nplugin/autocreate3=Drafts\nplugin/autocreate4=Spam\nplugin/autocreate5=Trash\nplugin/autosubscribe=Inbox\nplugin/autosubscribe2=Sent\nplugin/autosubscribe3=Drafts\nplugin/autosubscribe4=Spam\nplugin/autosubscribe5=Trash\nplugin/mail_log_events=delete expunge mailbox_delete mailbox_rename\nplugin/mail_log_fields=uid box msgid size\nmail_location=maildir:~/Maildir\nmaildir_copy_with_hardlinks=yes\nverbose_proctitle=yes\n\n", 8192) = 591 [pid 40676] read(13, "# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)\n# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN\nnameserver 192.168.17.1\nsearch mydomain.ro\n", 4096) = 202 [pid 40676] read(13, "", 4096) = 0 [pid 40676] read(13, "# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)\n# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN\nnameserver 192.168.17.1\nsearch mydomain.ro\n", 4096) = 202 [pid 40676] read(13, "", 4096) = 0 [pid 40676] read(13, "# /etc/nsswitch.conf\n#\n# Example configuration of GNU Name Service Switch functionality.\n# If you have the
glibc-doc-reference' and info' packages installed, try:\n#
info
libc \"Name Service Switch\"' for information about this
file.\n\npasswd: compat\ngroup: compat\nshadow:
compat\n\nhosts: files dns\nnetworks:
files\n\nprotocols: db files\nservices: db files\nethers:
db files\nrpc: db files\n\nnetgroup: nis\n",
4096) = 475
[pid 40676] read(13, "", 4096) = 0
[pid 40676] read(13, "# The \"order\" line is only used by old
versions of the C library.\norder hosts,bind\nmulti on\n", 4096) = 92
[pid 40676] read(13, "", 4096) = 0
[pid 40676] read(13,
"127.0.0.1\tlocalhost\n192.168.17.71\timap.mydomain.ro\timap\n\n# The
following lines are desirable for IPv6 capable hosts\n::1
ip6-localhost ip6-loopback\nfe00::0 ip6-localnet\nff00::0
ip6-mcastprefix\nff02::1 ip6-allnodes\nff02::2 ip6-allrouters\n",
4096) = 248
[pid 40676] read(13, "", 4096) = 0
[pid 40676] write(12, "220 imap.mydomain.ro Dovecot ready.\r\n", 45) = 45
[pid 40676] write(2, "\1\01040676 prefix=lmtp(40676): \n", 29) = 29
[pid 40676] write(2, "\1\00240676 Connect from local\n", 27) = 27
[pid 40676] read(12, "LHLO imap.mydomain.ro\r\n", 4096) = 31
[pid 40676] write(12,
"250-imap.mydomain.ro\r\n250-8BITMIME\r\n250-ENHANCEDSTATUSCODES\r\n250
PIPELINING\r\n", 85) = 85
[pid 40676] read(12, "MAIL FROM:<root@imap.mydomain.ro>\r\nRCPT
TO:<anotheruser@mydomain.ro>\r\nRCPT
TO:<firstuser@mydomain.ro>\r\nRCPT
TO:<firstuser@anothermydomain.ro>\r\nDATA\r\n", 4065) = 163
Process 40679 attached
[pid 40676] write(13,
"VERSION\t1\t0\nUSER\t1\tanotheruser@mydomain.ro\tservice=lmtp\n", 64)
= 64
[pid 40679] read(4, "+\267\361\217", 4) = 4
[pid 40679] write(13, "VERSION\tconfig\t2\t0\nREQ\tmodule=auth\n", 35) = 35
[pid 40679] read(13, <unfinished ...>
[pid 40677] read(11, "VERSION\tconfig\t2\t0\nREQ\tmodule=auth\n", 1024) = 35
[pid 40677] write(11,
"\nverbose_proctitle=yes\nauth_mechanisms=plain\nauth_username_chars=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@\nauth_username_format=%Ln\nauth_verbose=yes\nauth_verbose_passwords=plain\npassdb=0\npassdb/0/driver=pam\nuserdb=0\nuserdb/0/driver=passwd\n\n",
266 <unfinished ...>
[pid 40679] <... read resumed>
"\nverbose_proctitle=yes\nauth_mechanisms=plain\nauth_username_chars=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@\nauth_username_format=%Ln\nauth_verbose=yes\nauth_verbose_passwords=plain\npassdb=0\npassdb/0/driver=pam\nuserdb=0\nuserdb/0/driver=passwd\n\n",
8192) = 266
[pid 40677] <... write resumed> ) = 266
[pid 40677] read(11, "", 989) = 0
[pid 40562] read(7, "t\236\0\0\1\0\0\0\347\3\0\0", 1020) = 12
[pid 40679] write(13, "VERSION\tanvil\t1\t0\n", 18) = 18
[pid 40679] write(5, "\347\236\0\0\t\0\0\0\350\3\0\0", 12) = 12
[pid 40562] read(151, "\347\236\0\0\t\0\0\0\350\3\0\0", 1020) = 12
[pid 40679] write(17, "VERSION\t1\t1\nSPID\t40679\n", 23) = 23
[pid 40676] read(13, "VERSION\t1\t1\nSPID\t40679\n", 8192) = 23
[pid 40679] read(17,
"VERSION\t1\t0\nUSER\t1\tanotheruser@mydomain.ro\tservice=lmtp\n",
1024) = 64
[pid 40679] read(18, "# /etc/nsswitch.conf\n#\n# Example configuration
of GNU Name Service Switch functionality.\n# If you have the
glibc-doc-reference' and
info' packages installed, try:\n# `info
libc \"Name Service Switch\"' for information about this
file.\n\npasswd: compat\ngroup: compat\nshadow:
compat\n\nhosts: files dns\nnetworks:
files\n\nprotocols: db files\nservices: db files\nethers:
db files\nrpc: db files\n\nnetgroup: nis\n",
4096) = 475
[pid 40679] read(18, "", 4096) = 0
[pid 40679] write(17,
"USER\t1\tanotheruser\tsystem_groups_user=anotheruser\tuid=1002\tgid=1002\thome=/home/anotheruser\n",
91) = 91
[pid 40676] read(13,
"USER\t1\tanotheruser\tsystem_groups_user=anotheruser\tuid=1002\tgid=1002\thome=/home/anotheruser\n",
8169) = 91
[pid 40676] write(13, "USER\t2\tfirstuser@mydomain.ro\tservice=lmtp\n", 50) = 50
[pid 40679] read(17, "USER\t2\tfirstuser@mydomain.ro\tservice=lmtp\n", 960) = 50
[pid 40679] write(17,
"USER\t2\tfirstuser\tsystem_groups_user=firstuser\tuid=1001\tgid=1001\thome=/home/firstuser\n",
85) = 85
[pid 40676] read(13,
"USER\t2\tfirstuser\tsystem_groups_user=firstuser\tuid=1001\tgid=1001\thome=/home/firstuser\n",
8192) = 85
[pid 40676] write(13,
"USER\t3\tfirstuser@anothermydomain.ro\tservice=lmtp\n", 39) = 39
[pid 40679] read(17,
"USER\t3\tfirstuser@anothermydomain.ro\tservice=lmtp\n", 910) = 39
[pid 40679] write(17,
"USER\t3\tfirstuser\tsystem_groups_user=firstuser\tuid=1001\tgid=1001\thome=/home/firstuser\n",
85) = 85
[pid 40676] read(13,
"USER\t3\tfirstuser\tsystem_groups_user=firstuser\tuid=1001\tgid=1001\thome=/home/firstuser\n",
8192) = 85
[pid 40676] read(12, 0x18977e2, 3902) = -1 EAGAIN (Resource
temporarily unavailable)
[pid 40676] write(12, "250 2.1.0 OK\r\n250 2.1.5 OK\r\n250 2.1.5
OK\r\n250 2.1.5 OK\r\n354 OK\r\n", 64) = 64
[pid 40676] read(12, "Received: by imap.mydomain.ro (Postfix, from
userid 0)\r\n\tid AE18F27C687; Mon, 23 Jul 2012 22:00:37 +0300
(EEST)\r\nDate: Mon, 23 Jul 2012 22:00:37 +0300\r\nTo:
firstuser@anothermydomain.ro, firstuser@mydomain.ro\r\nCc:
anotheruser@mydomain.ro\r\nSubject: test\r\nUser-Agent: Heirloom mailx
12.5 6/20/10\r\nMIME-Version: 1.0\r\nContent-Type: text/plain;
charset=us-ascii\r\nContent-Transfer-Encoding:
quoted-printable\r\nMessage-Id:
<20120723190037.AE18F27C687@imap.mydomain.ro>\r\nFrom:
root@imap.mydomain.ro (root)\r\n\r\n=\r\n.\r\nQUIT\r\n", 3902) = 541
[pid 40676] read(14, "65536\n", 31) = 6
[pid 40676] write(16, "Return-Path: <root@imap.mydomain.ro>\nReceived:
from imap.mydomain.ro\n\tby imap.mydomain.ro (Dovecot) with LMTP id
/RqJNFWfDVDkngAA7nOI2A\n\t; Mon, 23 Jul 2012 22:00:37 +0300\nReceived:
by imap.mydomain.ro (Postfix, from userid 0)\n\tid AE18F27C687; Mon,
23 Jul 2012 22:00:37 +0300 (EEST)\nDate: Mon, 23 Jul 2012 22:00:37
+0300\nTo: firstuser@anothermydomain.ro, firstuser@mydomain.ro\nCc:
anotheruser@mydomain.ro\nSubject: test\nUser-Agent: Heirloom mailx
12.5 6/20/10\nMIME-Version: 1.0\nContent-Type: text/plain;
charset=us-ascii\nContent-Transfer-Encoding:
quoted-printable\nMessage-Id:
<20120723190037.AE18F27C687@imap.mydomain.ro>\nFrom:
root@imap.mydomain.ro (root)\n\n=\n", 713) = 713
[pid 40676] write(16, "40676:imap", 10) = 10
[pid 40676] write(15, "15
:1343070037.M903400P40676.imap,S=713,W=731\n", 46) = 46
[pid 40676] write(2, "\1\01040676 prefix=lmtp(40676, anotheruser): \n", 42) = 42
[pid 40676] write(2, "\1\00240676 /RqJNFWfDVDkngAA7nOI2A:
msgid=<20120723190037.AE18F27C687@imap.mydomain.ro>: saved mail to
INBOX\n", 113) = 113
[pid 40676] write(16, "40676:imap", 10) = 10
[pid 40676] write(12, "250 2.0.0 <anotheruser@mydomain.ro>
/RqJNFWfDVDkngAA7nOI2A Saved\r\n", 74) = 74
[pid 40676] read(18, "65536\n", 31) = 6
[pid 40676] write(21, "Return-Path: <root@imap.mydomain.ro>\nReceived:
from imap.mydomain.ro\n\tby imap.mydomain.ro (Dovecot) with LMTP id
/RqJNFWfDVDkngAA7nOI2A\n\t; Mon, 23 Jul 2012 22:00:37 +0300\nReceived:
by imap.mydomain.ro (Postfix, from userid 0)\n\tid AE18F27C687; Mon,
23 Jul 2012 22:00:37 +0300 (EEST)\nDate: Mon, 23 Jul 2012 22:00:37
+0300\nTo: firstuser@anothermydomain.ro, firstuser@mydomain.ro\nCc:
anotheruser@mydomain.ro\nSubject: test\nUser-Agent: Heirloom mailx
12.5 6/20/10\nMIME-Version: 1.0\nContent-Type: text/plain;
charset=us-ascii\nContent-Transfer-Encoding:
quoted-printable\nMessage-Id:
<20120723190037.AE18F27C687@imap.mydomain.ro>\nFrom:
root@imap.mydomain.ro (root)\n\n=\n", 713) = 713
[pid 40676] write(21, "40676:imap", 10) = 10
[pid 40676] write(20, "29
:1343070037.M903400P40676.imap,S=713,W=731\n", 46) = 46
[pid 40676] write(2, "\1\01040676 prefix=lmtp(40676, firstuser): \n", 40) = 40
[pid 40676] write(2, "\1\00240676 /RqJNFWfDVDkngAA7nOI2A:
msgid=<20120723190037.AE18F27C687@imap.mydomain.ro>: saved mail to
INBOX\n", 113) = 113
[pid 40676] write(12, "250 2.0.0 <firstuser@mydomain.ro>
/RqJNFWfDVDkngAA7nOI2A Saved\r\n", 72) = 72
[pid 40676] write(21, "Return-Path: <root@imap.mydomain.ro>\nReceived:
from imap.mydomain.ro\n\tby imap.mydomain.ro (Dovecot) with LMTP id
/RqJNFWfDVDkngAA7nOI2A\n\t; Mon, 23 Jul 2012 22:00:37 +0300\nReceived:
by imap.mydomain.ro (Postfix, from userid 0)\n\tid AE18F27C687; Mon,
23 Jul 2012 22:00:37 +0300 (EEST)\nDate: Mon, 23 Jul 2012 22:00:37
+0300\nTo: firstuser@anothermydomain.ro, firstuser@mydomain.ro\nCc:
anotheruser@mydomain.ro\nSubject: test\nUser-Agent: Heirloom mailx
12.5 6/20/10\nMIME-Version: 1.0\nContent-Type: text/plain;
charset=us-ascii\nContent-Transfer-Encoding:
quoted-printable\nMessage-Id:
<20120723190037.AE18F27C687@imap.mydomain.ro>\nFrom:
root@imap.mydomain.ro (root)\n\n=\n", 713) = 713
[pid 40676] write(21, "40676:imap", 10) = 10
[pid 40676] write(20, "30 :fe1a8934559f0d50e49e0000ee7388d8\n", 37) = 37
[pid 40676] write(2, "\1\01040676 prefix=lmtp(40676, firstuser): \n", 40) = 40
[pid 40676] write(2, "\1\00240676 /RqJNFWfDVDkngAA7nOI2A:
msgid=<20120723190037.AE18F27C687@imap.mydomain.ro>: saved mail to
INBOX\n", 113) = 113
[pid 40676] write(12, "250 2.0.0 <firstuser@anothermydomain.ro>
/RqJNFWfDVDkngAA7nOI2A Saved\r\n", 61) = 61
[pid 40676] write(2, "\1\01040676 prefix=lmtp(40676): \n", 29) = 29
[pid 40676] write(2, "\1\00240676 Disconnect from local: Client quit
(in reset)\n", 54) = 54
[pid 40676] write(12, "221 2.0.0 Client quit\r\n", 23) = 23
for the sake of readability i stripped elf binary reads and certificates from the strace output. note the dovecot lmtp process reading a single email with three RCPT TO's and writing three times three different files instead of writing content one time and hardlinking two times.
anyone care to shed a light? thanks.
On 2012-07-23 3:12 PM, mailing list subscriber wrote:
On Sun, Jul 22, 2012 at 2:59 PM, mailing list subscriber wrote:
I'm trying to get the so-called "single instance store" (I think cyrus has got the name for the first time) with dovecot --version = 2.0.19 binary package installed from ubuntu 12.04 lts official repo.
As requested, here is my update. As you can see I am running now the latest release however emails delivered through lmtp gets split into different files instead of expected hardlinked files.
Please pay attention as I'm commenting in-between different pasted outputs:
# 2.1.8 (30b0d6b1c581): /etc/dovecot/dovecot.conf
Well, apparently you haven't enabled SIS - it requires explicitly setting "mail_attachment_dir" (also be aware, this only applies to *attachments*, the messages themselves (email body, headers, etc) are still stored separately), but I discovered that this doesn't seem to be documented in the wiki either, so not surprising you missed it - I only found one reference in one email list thread:
http://www.dovecot.org/list/dovecot/2012-March/064390.html
Hth...
--
Best regards,
Charles
On 23.7.2012, at 22.12, mailing list subscriber wrote:
As requested, here is my update. As you can see I am running now the latest release however emails delivered through lmtp gets split into different files instead of expected hardlinked files. .. userdb { driver = passwd }
Looks like you're using system users. Each mail then needs to be written using different permissions, so hard linking can't work.
On Sat, Jul 28, 2012 at 8:04 PM, Timo Sirainen <tss@iki.fi> wrote:
On 23.7.2012, at 22.12, mailing list subscriber wrote:
As requested, here is my update. As you can see I am running now the latest release however emails delivered through lmtp gets split into different files instead of expected hardlinked files. .. userdb { driver = passwd }
Looks like you're using system users. Each mail then needs to be written using different permissions, so hard linking can't work.
I am afraid this is incorrect:
[root@email ~]# cd /tmp
[root@email tmp]# touch 1
[root@email tmp]# stat 1
File: 1' Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: 803h/2051d Inode: 46923784 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2012-07-30 13:34:45.000000000 +0300 Modify: 2012-07-30 13:34:45.000000000 +0300 Change: 2012-07-30 13:34:45.000000000 +0300 [root@email tmp]# ln 1 2 [root@email tmp]# stat 2 File:
2'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 46923784 Links: 2
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2012-07-30 13:34:45.000000000 +0300
Modify: 2012-07-30 13:34:45.000000000 +0300
Change: 2012-07-30 13:34:51.000000000 +0300
[root@email tmp]# chown xfs:xfs 1
[root@email tmp]# stat 1
File: 1' Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: 803h/2051d Inode: 46923784 Links: 2 Access: (0644/-rw-r--r--) Uid: ( 43/ xfs) Gid: ( 43/ xfs) Access: 2012-07-30 13:34:45.000000000 +0300 Modify: 2012-07-30 13:34:45.000000000 +0300 Change: 2012-07-30 13:35:03.000000000 +0300 [root@email tmp]# chown ntp:ntp 2 [root@email tmp]# stat 2 File:
2'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 46923784 Links: 2
Access: (0644/-rw-r--r--) Uid: ( 38/ ntp) Gid: ( 38/ ntp)
Access: 2012-07-30 13:34:45.000000000 +0300
Modify: 2012-07-30 13:34:45.000000000 +0300
Change: 2012-07-30 13:35:15.000000000 +0300
[root@email tmp]# echo test > 2
[root@email tmp]# cat 1
test
[root@email tmp]#
On 30.7.2012, at 13.36, mailing list subscriber wrote:
userdb { driver = passwd }
Looks like you're using system users. Each mail then needs to be written using different permissions, so hard linking can't work.
I am afraid this is incorrect:
The code that determines if Dovecot even attempts to use hard links is in:
http://hg.dovecot.org/dovecot-2.1/file/f74557336910/src/lib-storage/mail-cop...
So you could make it work if you chmod 0770 all of your maildir directories and chgrp them to the same group.
participants (3)
-
Charles Marcus
-
mailing list subscriber
-
Timo Sirainen