autocreate.sieve doesn't work correct. temporary files
ellie timoney
ellie at fastmail.com
Thu Oct 15 18:57:17 EDT 2015
Aha!
Okay, it was calling cyrus_mkdir() with the wrong path: cyrus_mkdir()
expects to get a path to a *file*, and it ensures all the directory
components exist (but ignores the file part). But we were passing it
only the directory component (/var/spool/sieve/r/root). It was
ignoring "root", assuming that was a filename, and only creating as far
as ...../r/.
Attached is a patch that fixes the cyrus_mkdir() to give it one of the
filenames instead. It also removes a redundant syslog line, since
cyrus_mkdir() already logs all the information we need when it fails.
Please let me know how it oes,
ellie
On Thu, Oct 15, 2015, at 07:20 AM, Artyom Aleksandrov wrote:
> I'm glad to help =) After applying all patches I got follow
>
> Oct 14 23:11:18 imapsync cyrus/imap[28525]: User root, Inbox
> subfolders, created 4, subscribed 4 Oct 14 23:11:18 imapsync
> cyrus/imap[28525]: autocreate_sieve: Unable to create
> /var/spool/sieve/r/root/default.script.bc.NEW: No such file or
> directory Oct 14 23:11:18 imapsync cyrus/imap[28525]:
> autocreate_sieve: User root, default sieve script creation failed It's
> absolutely right error now, because no one directory/files is creating
> under */var/spool/sieve/r *directory But tmp files gone from
> */var/lib/cyrus/*
>
> On Fri, Oct 9, 2015 at 2:36 AM, ellie timoney
> <ellie at fastmail.com> wrote:
>> __
>> Hi again,
>>
>> A couple more patches:
>>
>>
>>>> First I guest we need NOT here (?)
>>>
>>> Doh!
>>
>>
>> acsieve-sievedir.patch corrects this (though it sounds like you've
>> already made this change yourself -- included for completion though)
>>
>>
>>>> Oct 7 16:54:10 imapsync cyrus/imap[4062]: autocreate_sieve:
>>>> Unable to
create /var/spool/sieve/r/root/default.script.bc.NEW. Unknown error
>>
>>
>> This wouldn't be an "unknown error" if it would bother to tell us
>> what the error was....
>>
>> acsieve-syslog.patch fixes this, so the actual error will be logged.
>> It also fixes a bunch of similar syslog calls through this function
>> that were doing the same unhelpful thing (i.e. logging an error
>> without including the error message).
>>
>> I haven't had a chance to put together a test case for this yet,
>> sorry. In the meantime hopefully the improved error messages will
>> help us track this down. Thanks for sending through these
>> reports! :)
>>
>> Cheers,
>>
>>
>> ellie
>>
>>
>> On Fri, Oct 9, 2015, at 08:41 AM, ellie timoney wrote:
>>>> First I guest we need NOT here (?)
>>>
>>> Doh!
>>>
>>>> And second creating are failing with follow logs (yes I use 'root'
>>>> user for testing)
>>>>
>>>> Oct 7 16:54:10 imapsync cyrus/imap[4062]: User root, Inbox
>>>> subfolders, created 4, subscribed 4 Oct 7 16:54:10 imapsync
>>>> cyrus/imap[4062]: autocreate_sieve: Unable to create
>>>> /var/spool/sieve/r/root/default.script.bc.NEW. Unknown error Oct 7
>>>> 16:54:10 imapsync cyrus/imap[4062]: autocreate_sieve: User root,
>>>> default sieve script creation failed No one files/folders are
>>>> creating.
>>>>
>>>
>>> That path looks okay, at least. I expected more problems to shake
>>> out when the paths were fixed, so I'll look into this some more.
>>>
>>> - ellie
>>>
>>> On Thu, Oct 8, 2015, at 01:04 AM, Artyom Aleksandrov wrote:
>>>> Hi, thank you for patch. But it does not work. (( First I guest we
>>>> need NOT here (?)
>>>>
>>>> @@ -139,7 +138,7 @@ static int autocreate_sieve(const char *userid,
>>>> const char *source_script) }
>>>>
>>>> /* Check if sievedir is defined in imapd.conf */ -
>>>> if(!(sieve_dir = config_getstring(IMAPOPT_SIEVEDIR))) { +
>>>> if(config_getstring(IMAPOPT_SIEVEDIR)) { And second creating are
>>>> failing with follow logs (yes I use 'root' user for testing)
>>>>
>>>> Oct 7 16:54:10 imapsync cyrus/imap[4062]: User root, Inbox
>>>> subfolders, created 4, subscribed 4 Oct 7 16:54:10 imapsync
>>>> cyrus/imap[4062]: autocreate_sieve: Unable to create
>>>> /var/spool/sieve/r/root/default.script.bc.NEW. Unknown error Oct 7
>>>> 16:54:10 imapsync cyrus/imap[4062]: autocreate_sieve: User root,
>>>> default sieve script creation failed No one files/folders are
>>>> creating.
>>>>
>>>> On Tue, Oct 6, 2015 at 3:51 AM, ellie timoney <ellie at fastmail.com>
>>>> wrote:
>>>>> __
>>>>> Hi Artyom,
>>>>>
>>>>> Yeah wow, this is really gross.
>>>>>
>>>>> I'm pretty sure the gibberish in those "??????Default.script.bc"
>>>>> filenames is just whatever junk was in the (uninitialised)
>>>>> sieve_script_dir variable.
>>>>>
>>>>> I've had a rummage around, and there's a user_sieve_path()
>>>>> function in imap/user.c that does the heavy lifting of finding a
>>>>> user's sieve script directory. Looks like sieve_script_dir wanted
>>>>> to be the result of that. Your fix is on the right track. :)
>>>>>
>>>>> I've attached a patch for 2.5.x that fixes these paths using
>>>>> user_sieve_path(). It also fixes the assumption that the sievedir
>>>>> value will end in a "/", which it doesn't by default, and
>>>>> shouldn't need to. Can you try it out and see how it goes? (The
>>>>> patch should apply cleanly on any version of 2.5, this file has
>>>>> barely changed since it was created.)
>>>>>
>>>>> The rest of the autocreate_sieve() function is pretty awful too --
>>>>> there's almost certainly more bugs in there, and fixing the paths
>>>>> might just shake them out. I'd like to tidy this up significantly
>>>>> (and make some test cases for it), but in the meantime hopefully
>>>>> this will get you moving forward.
>>>>>
>>>>> Cheers,
>>>>>
>>>>>
>>>>> ellie
>>>>>
>>>>>
>>>>> On Tue, Oct 6, 2015, at 12:56 AM, Artyom Aleksandrov wrote:
>>>>>> Guys I don't understand hot it can work.
>>>>>>
>>>>>> I added additional logging and found that sieve_script_dir is not
>>>>>> defined. After adding this definition the problem gone.
>>>>>>
>>>>>>
>>>>>> 147 /* Check if autocreate_sieve_compiledscript is defined in
>>>>>> imapd.conf */ 148 if(!(compiled_source_script =
>>>>>> config_getstring(IMAPOPT_AUTOCREATE_SIEVE_SCRIPT_COMPILED))) {
>>>>>> 149 syslog(LOG_WARNING, "autocreate_sieve:
>>>>>> autocreate_sieve_compiledscript option is not defined. Compiling
>>>>>> it"); 150 do_compile = 1; 151 } 152 153 char
>>>>>> userletter[1]; 154 userletter[0]=userid[0]; 155
>>>>>> snprintf(sieve_script_dir, MAX_FILENAME,
>>>>>> "%s%s/%s/",sieve_dir,userletter,userid);
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Thu, Oct 1, 2015 at 8:49 PM, Artyom Aleksandrov
>>>>>> <mailing.list at tem4uk.ru> wrote:
>>>>>>> Is it works? Which version do you use? Could you guest the
>>>>>>> reason of the problem? How I can troubleshoot it?
>>>>>>>
>>>>>>> :/var/lib/cyrus# ls -la
>>>>>>> total 2176 -rw------- 1 cyrus mail 124 Sep 25 16:04
>>>>>>> ??????Default.script.bc -rw------- 1 cyrus mail 231 Sep 25
>>>>>>> 16:04 ??????Default.script.script lrwxrwxrwx 1 cyrus mail
>>>>>>> 17 Sep 25 16:04 ??????defaultbc -> Default.script.bc -rw-------
>>>>>>> 1 cyrus mail 124 Jul 2 12:38 ??N???Default.script.bc -rw-------
>>>>>>> 1 cyrus mail 231 Jul 2 12:38 ??N???Default.script.script
>>>>>>> lrwxrwxrwx 1 cyrus mail 17 Jul 2 12:38 ??N???defaultbc ->
>>>>>>> Default.script.bc -rw------- 1 cyrus mail 124 Sep 22 15:10
>>>>>>> 0#?>??Default.script.bc -rw------- 1 cyrus mail 231 Sep 22
>>>>>>> 15:10 0#?>??Default.script.script lrwxrwxrwx 1 cyrus mail
>>>>>>> 17 Sep 22 15:10 0#?>??defaultbc -> Default.script.bc
>>>>>>>
>>>>>>>
>>>>>>> On Thu, Oct 1, 2015 at 7:55 PM, Alvin Starr <alvin at netvel.net>
>>>>>>> wrote:
>>>>>>>> I use autocreate.
>>>>>>>>
>>>>>>>> So there is at least one.
>>>>>>>>
>>>>>>>>
>>>>>>>> On 10/01/2015 12:18 PM, Artyom Aleksandrov wrote:
>>>>>>>>> Does anybody use autocreate_sieve?
>>>>>>>>>
>>>>>>>>> On Sat, Sep 26, 2015 at 1:30 AM, Artyom
Aleksandrov <mailing.list at tem4uk.ru> wrote:
>>>>>>>>>>
>>>>>>>>>> Hello,I want to create default sieve scipt for
all my users but I stuck with strange problem that
looks like the bug. Unfortunately I've never wrote
on C so it's difficult for me to find it.
>>>>>>>>>>
When Cyrus (2.5.3 or 2.5.6) create default sieve
script it doesn't put file in sieve_dir/?/user
folder. It jist creates tmp files in configdirectory
with names like this
>>>>>>>>>> -rw------- 1 cyrus
mail 124 Sep 26 00:41 ?&?P??default.script.bc
>>>>>>>>>>
-rw------- 1 cyrus mail 231 Sep 26 00:41
?&?P??default.script.script
>>>>>>>>>>
lrwxrwxrwx 1 cyrus mail 17 Sep 26 00:41
?&?P??defaultbc -> default.script.bc
>>>>>>>>>>
>>>>>>>>>> There are not checks in this stage so my syslog is
clean of error.
>>>>>>>>>> Everything seems fine. Sep 26 00:41:34 imapsync
cyrus/imap[26117]: autocreate_sieve: Problem
opening compiled script file: default.script.bc.
Compiling it
>>>>>>>>>>
Sep 26 00:41:34 imapsync cyrus/imap[26117]:
autocreate_sieve: Compiled sieve script was
successfully saved in default.script.bc
>>>>>>>>>>
Sep 26 00:41:34 imapsync cyrus/imap[26117]:
autocreate_sieve: User XXXX, default sieve script
creation succeeded
>>>>>>>>>>
>>>>>>>>>> My setting: autocreate_sieve_script:
/var/spool/sieve/global/default.script
>>>>>>>>>>
autocreate_sieve_script_compile: yes
>>>>>>>>>>
autocreate_sieve_script_compiled: default.script.bc
>>>>>>>>>>
sievedir: /var/spool/sieve/
>>>>>>>>>>
Distributive: Ubuntu 14.04.3
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> I'll be glad for any help. )
>>>>>>>>>>
>>>>>>>>>> Best regards, Artyom
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> ----
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
>>>>>>>>>
>>>>>>>>
>>>>>>>> --
Alvin Starr || voice: (905)513-7688[1] Netvel Inc.
|| Cell: (416)806-0133[2] alvin at netvel.net ||
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> ----
>>>>>>>> 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
>>>>>
>>>>>
>>>>> ----
>>>>> 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
>>
Links:
1. tel:%28905%29513-7688
2. tel:%28416%29806-0133
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.andrew.cmu.edu/pipermail/cyrus-devel/attachments/20151016/b73085e0/attachment-0001.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: acsieve-mkdir.patch
Type: text/x-patch
Size: 600 bytes
Desc: not available
Url : http://lists.andrew.cmu.edu/pipermail/cyrus-devel/attachments/20151016/b73085e0/attachment-0001.bin
More information about the Cyrus-devel
mailing list