Cyrus Imap: Fatal error: Internal error: assertion failed: seen_db.c: 127: *seendbptr == NULL

Publicado por Fabio Soares Schmidt em 15/07/2011

[ Hits: 4.557 ]

 


Cyrus Imap: Fatal error: Internal error: assertion failed: seen_db.c: 127: *seendbptr == NULL



Essa dica é para quem necessita compilar o Cyrus Imap 2.4.8 com suporte a replicação direto dos fontes, porém há um erro no código do sync_client que resulta no erro "Fatal error: Internal error: assertion failed: seen_db.c: 127:  *seendbptr == NULL" ao tentar efetuar a replicação com o sync_client, afetando dessa forma o sincronismo dos arquivos .seen e scripts sieve.

É necessário aplicar um patch no arquivo imap/sync_client.c, esse é o conteúdo:

From 5de9eee60d947243a4b4b2f4eccc63cff2771b30 Mon Sep 17 00:00:00 2001
From: Bron Gondwana <[email protected]>
Date: Thu, 31 Mar 2011 05:03:10 +0000
Subject: seen: fix seen_db related crash

---
--- a/imap/sync_client.c
+++ b/imap/sync_client.c
@@ -1423,7 +1423,7 @@ static int update_seen_work(const char *
static int do_seen(char *user, char *uniqueid)
{
     int r = 0;
-    struct seen *seendb;
+    struct seen *seendb = NULL;
     struct seendata sd;

     if (verbose)
@@ -1437,12 +1437,8 @@ static int do_seen(char *user, char *uni
     if (r) return 0;

     r = seen_read(seendb, uniqueid, &sd);
-    if (r) {
-       seen_close(&seendb);
-       return 0;
-    }

-    r = update_seen_work(user, uniqueid, &sd);
+    if (!r) r = update_seen_work(user, uniqueid, &sd);

     seen_close(&seendb);
     seen_freedata(&sd);
@@ -1876,7 +1872,7 @@ static int do_user_seen(char *user, stru
{
     int r;
     struct sync_seen *mseen, *rseen;
-    struct seen *seendb;
+    struct seen *seendb = NULL;
     struct sync_seen_list *list;

     /* silently ignore errors */

Copie o conteúdo acima, salve o arquivo no diretório raiz dos fontes e mande aplicar o patch:

# patch -p1 < arquivo.patch

Feito isso, compile o Cyrus normalmente.

Link informando sobre o problema: www.mail-archive.com/[email protected]/msg904344.html

Fabio Soares Schmidt
respirandolinux.wordpress.com


Outras dicas deste autor

Postfix: Adicionando disclaimer - Exceções de remetentes e arquivos diferentes por domínio

Thunderbird: Removendo (de fato) mensagens do servidor IMAP

Cyrus Aggregator - Resolvendo inconsistências entre servidores Back-end e Mupdate Master (Murder)

Dovecot: userdb reply doesn't contain uid (change userdb socket permissions)

Thunderbird: Distribuindo o aplicativo com certificados próprios

Leitura recomendada

Envio dos resultados das atualizações do Clamav para seu e-mail

Cliente de e-mail que funciona com Hotmail no Linux

Instalar pacote dcc-client no Debian Etch

Cliente de e-mail: você ainda usa?

Evolution em ambiente Exchange 2007/2010

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário