[Dovecot] Dovecot 2.0beta5 Quota/Dict tested patch solved

Robert Schetterer robert at schetterer.org
Mon May 17 12:36:07 EEST 2010


Am 16.05.2010 17:10, schrieb Robert Schetterer:
> Am 16.05.2010 16:08, schrieb Henrique Fernandes:
>> Some one said it was already included!
>> gonna apply the patch and post results!
>>
>> []'sf.rique
>>
>>
>> On Sun, May 16, 2010 at 4:43 AM, e-frog <e-frog at gmx.de> wrote:
>>
>>> On 16.05.2010 08:34, wrote Henrique Fernandes:
>>>> Confirmed, erro stils. code update at 14-05-10
>>>>
>>>> []'sf.rique
>>>>
>>>>
>>>> On Sat, May 15, 2010 at 6:47 PM, Robert Schetterer <
>>> robert at schetterer.org>wrote:
>>>>
>>>>> Am 15.05.2010 18:28, schrieb e-frog:
>>>>>
>>>>>  On 15.05.2010 17:17, wrote Robert Schetterer:
>>>>>>
>>>>>>> Am 15.05.2010 16:56, schrieb Henrique Fernandes:
>>>>>>>
>>>>>>>> To get mny server to work i have to change de permissions like this,
>>>>>>>>
>>>>>>>>      sleep 1
>>>>>>>>      chmod 777 /var/run/dovecot/auth-userdb
>>>>>>>>      chmod 777 /var/run/dovecot/dict
>>>>>>>>
>>>>>>>>
>>>>>>>> But about this i guess is just miss configuration
>>>>>>>>
>>>>>>>> i am gonna test the new code today! I dowloaded from mercurial!
>>>>>>>>
>>>>>>>
>>>>>>> last tests showed dict sql quota seems to be complete broken with last
>>>>>>> mercurial, apearing now with i.e imap copy actions now too
>>>>>>> ( cant calculate quota etc )
>>>>>>>
>>>>>>> perhaps i try chmod... but youre right this should not be needed
>>>>>>>
>>>>>>
>>>>>> No need to chmod. You can set this in 10-master.conf e.g.:
>>>>>>
>>>>>> service auth {
>>>>>>   unix_listener auth-userdb {
>>>>>>     mode = 0666
>>>>>>   }
>>>>>>
>>>>>>   # Postfix smtp-auth
>>>>>>   unix_listener /var/spool/postfix/private/auth {
>>>>>>     mode = 0666
>>>>>>     group = postfix
>>>>>>     user = postfix
>>>>>>   }
>>>>>> }
>>>>>>
>>>>>> service dict {
>>>>>>   unix_listener dict {
>>>>>>     mode = 0666
>>>>>>   }
>>>>>> }
>>>>>>
>>>>>>
>>>>>>
>>>>> allready tried
>>>>>
>>>>> error stays
>>>>>
>>>>> May 15 23:45:46 dict: Panic: file driver-mysql.c: line 482
>>>>> (transaction_send_query): assertion failed: (rows != (my_ulonglong)-1)
>>>>> May 15 23:45:46 dict: Error: Raw backtrace:
>>>>> /usr/lib/dovecot/libdovecot.so.0(+0x33c61) [0x482c61] ->
>>>>> /usr/lib/dovecot/libdovecot.so.0(+0x33ccf) [0x482ccf] ->
>>>>> /usr/lib/dovecot/libdovecot.so.0(i_error+0) [0x45d6ae] -> dovecot/dict()
>>>>> [0x80521aa] -> dovecot/dict() [0x80521e6] ->
>>>>> dovecot/dict(sql_transaction_commit_s+0x20) [0x804f9e0] ->
>>> dovecot/dict()
>>>>> [0x805144e] -> dovecot/dict(sql_transaction_commit_s+0x20) [0x804f9e0]
>>> ->
>>>>> dovecot/dict() [0x804e982] ->
>>>>> /usr/lib/dovecot/libdovecot.so.0(dict_transaction_commit_async+0x2f)
>>>>> [0x4627ff] -> dovecot/dict() [0x804cc40] -> dovecot/dict() [0x804c6ad]
>>> ->
>>>>> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0xe2) [0x48f1f2] ->
>>>>> /usr/lib/dovecot/libdovecot.so.0(io_loop_run+0x30) [0x48e240] ->
>>>>> /usr/lib/dovecot/libdovecot.so.0(master_service_run+0x2a) [0x47b9ea] ->
>>>>> dovecot/dict(main+0x19c) [0x804d30c] ->
>>>>> /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe6) [0x4cdbd6] ->
>>>>> dovecot/dict() [0x804c391]
>>>>> May 15 23:45:46 lmtp(13429, robert at schetterer.com): Error:
>>>>> read(/var/run/dovecot/dict) failed: Remote disconnected
>>>>
>>>
>>> You of course need to apply the patch posted earlier in this thread.
>>> It's not including in hg yet.
>>>
>>
> 
> i always use latest sources from
> http://xi.rename-it.nl/debian/pool/testing-auto/dovecot-2.0
> to recompile it for lucid
> usally in sync with lates hg
> 
> i would guess still isnt there yet
> cause cant find it here
> http://hg.dovecot.org/dovecot-2.0/
> 
> so the error still stays here
> 
> May 16 17:03:35 dict: Panic: file driver-mysql.c: line 482
> (transaction_send_query): assertion failed: (rows != (my_ulonglong)-1)
> 
> 
> May 16 17:03:35 dict: Error: Raw backtrace:
> /usr/lib/dovecot/libdovecot.so.0(+0x33c61) [0x893c61] ->
> /usr/lib/dovecot/libdovecot.so.0(+0x33ccf) [0x893ccf] ->
> /usr/lib/dovecot/libdovecot.so.0(i_error+0) [0x86e6ae] -> dovecot/dict()
> [0x80521aa] -> dovecot/dict() [0x80521e6] ->
> dovecot/dict(sql_transaction_commit_s+0x20) [0x804f9e0] ->
> dovecot/dict() [0x805144e] ->
> dovecot/dict(sql_transaction_commit_s+0x20) [0x804f9e0] ->
> dovecot/dict() [0x804e982] ->
> /usr/lib/dovecot/libdovecot.so.0(dict_transaction_commit_async+0x2f)
> [0x8737ff] -> dovecot/dict() [0x804cc40] -> dovecot/dict() [0x804c6ad]
> -> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0xe2) [0x8a01f2]
> -> /usr/lib/dovecot/libdovecot.so.0(io_loop_run+0x30) [0x89f240] ->
> /usr/lib/dovecot/libdovecot.so.0(master_service_run+0x2a) [0x88c9ea] ->
> dovecot/dict(main+0x19c) [0x804d30c] ->
> /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe6) [0x149bd6] ->
> dovecot/dict() [0x804c391]
> 

ok wich small tests ,bug gets fixed with earlier patch

For 2.0.b5 need slightly other patch:
> >>>> --- dovecot-2.0.beta5/src/lib-sql/driver-mysql.c~       2010-05-05
> >>>> 21:20:17.000000000 +0400
> >>>> +++ dovecot-2.0.beta5/src/lib-sql/driver-mysql.c        2010-05-05
> >>>> 21:20:17.000000000 +0400
> >>>> @@ -479,7 +479,9 @@
> >>>>                 struct mysql_db *db = (struct mysql_db *)result->db;
> >>>>
> >>>>                 rows = mysql_affected_rows(db->mysql);
> >>>> -               i_assert(rows != (my_ulonglong)-1);
> >>>> +               if (mysql_errno(db->mysql))
> >>>> +                       i_assert(rows != (my_ulonglong)-1);
> >>>> +               else rows = 0;
> >>>>                 *ctx->ctx.head->affected_rows = rows;
> >>>>         }
> >>>>         sql_result_unref(result);

should get into hg asap

-- 
Best Regards

MfG Robert Schetterer

Germany/Munich/Bavaria


More information about the dovecot mailing list