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

 

Mais uma dica minha publicada no VivaoLinux:

http://www.vivaolinux.com.br/dica/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 <brong@opera.com>
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/debian-bugs-dist@lists.debian.org/msg904344.html

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s