Re: Sieve Internal Error

Дилян Палаузов <[email protected]>
Newsgroups gmane.mail.imap.cyrus
Message-ID <[email protected]>
Hello Andrea,

There is no Sieve-related change between 3.4.8 and 3.4.9, but FreeBSD might apply some changes to the source code.

You can insert a different syslog message on all the lines just before producing SIEVE_INTERNAL_ERROR:

$ git grep -n SIEVE_INTERNAL_ERROR
sieve/message.c:128:                return SIEVE_INTERNAL_ERROR;
sieve/message.c:175:    if (!i->fileinto) return SIEVE_INTERNAL_ERROR;
sieve/message.c:208:                ret = SIEVE_INTERNAL_ERROR;
sieve/message.c:308:                ret = SIEVE_INTERNAL_ERROR;
sieve/script.c:490:        case SIEVE_INTERNAL_ERROR: return "Internal Error"; ⇐ here not
sieve/script.c:752:                return SIEVE_INTERNAL_ERROR;
sieve/script.c:771:                return SIEVE_INTERNAL_ERROR;
sieve/script.c:787:                return SIEVE_INTERNAL_ERROR;
sieve/script.c:803:                return SIEVE_INTERNAL_ERROR;
sieve/script.c:818:                return SIEVE_INTERNAL_ERROR;
sieve/script.c:848:                    return SIEVE_INTERNAL_ERROR;
sieve/script.c:887:            ret = SIEVE_INTERNAL_ERROR;
sieve/sieve_err.et:56:ec SIEVE_INTERNAL_ERROR,  ⇐ here not

as demonstrated below.  Then recompile, install and check where exactly does the internal error come from (based on the concrete syslog message)

diff --git a/sieve/script.c b/sieve/script.c
index 477591b94..37ffeb9a5 100644
--- a/sieve/script.c
+++ b/sieve/script.c
@@ -814,8 +814,10 @@ static int do_action_list(sieve_interp_t *interp,
                          "Kept\n");
             break;
         case ACTION_REDIRECT:
-            if (!interp->redirect)
+            if (!interp->redirect) {
+                syslog(LOG_CRIT, "A");
                 return SIEVE_INTERNAL_ERROR;
+            }
             ret = interp->redirect(&a->u.red,
                                    interp->interp_context,
                                    script_context,

Greetings
  Дилян

-----Original Message-----
From: Andrea Venturoli <[email protected]>
Reply-To: Info <[email protected]>
To: Info <[email protected]>
Subject: Sieve Internal Error
Date: 22/10/24 11:40:55

Hello.

Last week I upgraded a FreeBSD 13.3 server to 14.1 and, at the same 
time, Cyrus IMAP 3.4.8 to 3.4.9.
Since then Sieve scripts have stopped working.

As an example, an user has a very simple script:
> # rule:[Inoltra]
> if true
> {
>         redirect "[email protected]";
> }

This was created through RoundCube and I deleted and recreated it 
without trouble.

However, it does nothing and in the logs I find:

> lmtpunix[66514]: sieve runtime error for xxxxxx id <[email protected]>: Redirect ([email protected]): Internal Error

I have no idea how to solve or even debug this.
Any hint?

  bye & Thanks
        av.


------------------------------------------
Cyrus: Info
Permalink: https://cyrus.topicbox.com/groups/info/T0ce14ced55a4536e-Mbe80f2da59066eae4b2fd19d
Delivery options: https://cyrus.topicbox.com/groups/info/subscription
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.