Re: sync_log_chain - is it always needed?

2020-04-30 Thread ellie timoney
On Thu, Apr 30, 2020, at 12:29 AM, Olaf Frączyk wrote:
> However why the sync_log_chain could be not always active? As the server 
> catches all changes from LMTP, IMAP, POP anyway, why to use a special 
> option for the synchronization protocol? Why to treat replication 
> changes differently from LMTP/IMAP? If we want replication - we want to 
> catch all changes - regardless of the source, if we don't do replication 
> - we don't need to catch any changes.

The rolling sync_client takes care of cleaning up each sync_log file as it 
finishes replicating it downstream.

Now consider the case where your replica is an end point, not a link in a 
chain: it does not have a rolling sync_client forwarding replications on, so if 
it automatically logged incoming replications to the sync_log, the sync_log 
would simply grow forever and fill the disk.  You would need to set up a 
special job to delete it Better to simply not write it in the first place!

Thus, the default is to sync_log_chain: off, and if you need the special-case 
chaining behaviour, you turn it on.

Cheers,

ellie

Cyrus Home Page: http://www.cyrusimap.org/
List Archives/Info: http://lists.andrew.cmu.edu/pipermail/info-cyrus/
To Unsubscribe:
https://lists.andrew.cmu.edu/mailman/listinfo/info-cyrus

conversation db home

2020-04-30 Thread Marco

Hello,

 I have some doubts, maybe you could help me to understand. I see these 
user-level files in the "configdirectory" path:


 domain//.[conversations|counters|sub|xapianactive]

Why don't these files stay in the metapartition- path?

My config is:

metapartition_files: header index cache expunge squat annotations lock 
dav archivecache


No option for conversation.
And the xapianactive file is in the configdirectory even if the "squat" 
is named in the list of "metapartition_files".


In particular the conversation db seems to become very large, so we 
could better manage the fs space, if it could stay in the metapartition 
path.


In other words, I wouldn't like to see the domain/ path in 
configdirectory. Is there a way to achieve this?


Other detail:
name   : Cyrus IMAPD
version: 3.0.13-6.el8
vendor : Project Cyrus
support-url: https://www.cyrusimap.org
os : Linux
os-version : 4.18.0-147.8.1.el8_1.x86_64
environment: Built w/Cyrus SASL 2.1.27
 Running w/Cyrus SASL 2.1.27
 Built w/OpenSSL 1.1.1c FIPS  28 May 2019
 Running w/OpenSSL 1.1.1c FIPS  28 May 2019
 Built w/zlib 1.2.11
 Running w/zlib 1.2.11
 CMU Sieve 3.0
 NET-SNMP
 mmap = shared
 lock = fcntl
 nonblock = fcntl
 idle = idled


#defaultpartition: default
#partition-default: /var/spool/imap

partition-maildata4: /maildata/example.com/maildata1
partition-maildata40: /maildata/example.com/maildata2
archivepartition-maildata4: /sysarchivio/example.com/maildata1
archivepartition-maildata40: /sysarchivio/example.com/maildata2

metapartition-maildata4: /metamaildata/example.com/maildata1
metapartition-maildata40: /metamaildata/example.com/maildata2

# Metapartition files
metapartition_files: header index cache expunge squat annotations lock 
dav archivecache



Thank you very much
Kind Regards

Marco

Cyrus Home Page: http://www.cyrusimap.org/
List Archives/Info: http://lists.andrew.cmu.edu/pipermail/info-cyrus/
To Unsubscribe:
https://lists.andrew.cmu.edu/mailman/listinfo/info-cyrus


Re: Mailbox rename and Cyrus murder

2020-04-30 Thread ego...@sarenet.es
Hi!,

I have been reading this interesting thread 
https://lists.andrew.cmu.edu/pipermail/cyrus-devel/2015-March/003165.html from 
2015. As a curiosity, did finally that ended in some sort of production env?. I 
have seen this kind of pages 
https://www.cyrusimap.org/imap/concepts/features/server-aggregation.html but 
have not seen their publish date or similar…

I’m in the state at which, operations in mail servers are being more and more 
frequent… they are starting not being able to be done without automation, but 
before that.. and writing code… I wanted to know if someone could share some 
experience in horizontal scaling (backend or mailbox server clustering), 
because live moving mailboxes without interruption or in the most possible easy 
way (just as examples), are important things to know before writing all the 
automation stuff… knowing if a Cyrus Murder could failover from backend 
automatically (after a crash) or similar…

Reading at present 
https://www.cyrusimap.org/imap/concepts/features/server-aggregation.html …

Any shared experience would be highly appreciated,

Cheers!





Egoitz Aurrekoetxea
Dpto. de sistemas
944 209 470
Parque Tecnológico. Edificio 103
48170 Zamudio (Bizkaia)
ego...@sarenet.es 
www.sarenet.es 
Antes de imprimir este correo electrónico piense si es necesario hacerlo.


> El 29 abr 2020, a las 17:58, ego...@sarenet.es escribió:
> 
> Hi,
> 
> Sometimes, we need to redistribute mailboxes between different Cyrus 
> partitions in the same server. We do it by blocking previously any kind of 
> accesses to the mailbox and after stopping any kind of active connection to 
> that mailbox. I was wondering, if this exactly, is really needed because it’s 
> really something that could cause problems to the mailbox (we do it this way 
> always, as a procedure for avoiding problems, but is it really needed??). I’m 
> in the process of automating this kind of operation, but reading some info 
> before writing code, I have seen that Cyrus murder allows “live” mailbox 
> migration… perhaps is this another option for avoid doing mailbox rename 
> operations for moving a mailbox to a different partition?.
> 
> I have read too (perhaps have not understand properly), that a Cyrus Murder 
> can redirect requests to another mailbox server, in case one of them fails?. 
> Is it like a automated way of changing master/slave roles?.
> 
> How is your experience with murders?. Do they allow this what I have asked?. 
> If they do have you ever seen any kind of issue with it?,
> 
> Cheers,
> 
> 
> Cyrus Home Page: http://www.cyrusimap.org/
> List Archives/Info: http://lists.andrew.cmu.edu/pipermail/info-cyrus/
> To Unsubscribe:
> https://lists.andrew.cmu.edu/mailman/listinfo/info-cyrus


Cyrus Home Page: http://www.cyrusimap.org/
List Archives/Info: http://lists.andrew.cmu.edu/pipermail/info-cyrus/
To Unsubscribe:
https://lists.andrew.cmu.edu/mailman/listinfo/info-cyrus

Re: METADATA help

2020-04-30 Thread Marco

Oh, I have found the solution!

It seems that in the annotation_definitions file the *name* of the 
third-party annotation MUST be down-case.


The RFC5464 says:

"Except as noted otherwise, all alphabetic characters are case-
   insensitive.  The use of upper or lower case characters to define
   token strings is for editorial clarity only.  Implementations MUST
   accept these strings in a case-insensitive fashion."

So this could be a bug...

Interesting this: if I define a downcase name in the file, then the 
GET/SETMETADATA works case insensitive as expected. But if the name in 
annotation file is uppercase, the imap metadata commands return NIL or 
Permission denied.


Kind Regards
Marco


Il 28/04/2020 12:49, Marco ha scritto:

Hello,

   I have some problems in Cyrus 3.0.13 with user defined metadata.

Let suppose I define in imapd.conf

 annotation_definitions: /etc/annoIMAP.conf

and annoIMAP.conf is:

/vendor/example/partition/comune.prova.it,server,string,backend,value.priv,lrswipkxtea 



With this configuration all works fine with the old annotatemore 
"standard". I can set and read annotations.


But time will crawl, so I have to adopt the new METADATA standard 
(RFC5464) to manage these values.


If I try

a SETMETADATA "" (/private/vendor/example/partition/comune.prova.it 
"prova1")

a NO Permission denied

I have to do this to set the value:

a SETANNOTATION "" "/vendor/example/partition/comune.prova.it" 
("value.priv" "prova1")

a OK Completed


Now, with

a GETMETADATA "" "/private/*"
* METADATA "" ("/private/vendor/example/partition/comune.prova.it" 
"prova1" "/private/vendor/cmu/cyrus-imapd/squat" NIL 
"/private/vendor/cmu/cyrus-imapd/expire" NIL 
"/private/vendor/cmu/cyrus-imapd/usercounters" "3 0 0 0 0 0 0 0 0 0 0" 
"/private/vendor/cmu/cyrus-imapd/usermodseq" "0" "/private/comment" NIL 
"/private/admin" NIL)


but if I ask only my user defined metadata:
a GETMETADATA "" "/private/vendor/example/partition/comune.prova.it"
* METADATA "" ("/private/vendor/example/partition/comune.prova.it" NIL)

the server tell me NIL in place of "prova1".

I would ask an help with this protocol:

- I would like to know why SETMETADATA fails with "Permission denied" in 
above example.


- Then I have to know why a wildcard query show me the "prova1" value in
"/private/vendor/example/partition/comune.prova.it", but when I query 
only the value of "/private/vendor/example/partition/comune.prova.it" 
the answer is NIL.


Other detail:
name   : Cyrus IMAPD
version    : 3.0.13-6.el8
vendor : Project Cyrus
support-url: https://www.cyrusimap.org
os : Linux
os-version : 4.18.0-147.8.1.el8_1.x86_64
environment: Built w/Cyrus SASL 2.1.27
  Running w/Cyrus SASL 2.1.27
  Built w/OpenSSL 1.1.1c FIPS  28 May 2019
  Running w/OpenSSL 1.1.1c FIPS  28 May 2019
  Built w/zlib 1.2.11
  Running w/zlib 1.2.11
  CMU Sieve 3.0
  NET-SNMP
  mmap = shared
  lock = fcntl
  nonblock = fcntl
  idle = idled


Thank you very much
Kind Regards

Marco

Cyrus Home Page: http://www.cyrusimap.org/
List Archives/Info: http://lists.andrew.cmu.edu/pipermail/info-cyrus/
To Unsubscribe:
https://lists.andrew.cmu.edu/mailman/listinfo/info-cyrus




Cyrus Home Page: http://www.cyrusimap.org/
List Archives/Info: http://lists.andrew.cmu.edu/pipermail/info-cyrus/
To Unsubscribe:
https://lists.andrew.cmu.edu/mailman/listinfo/info-cyrus