Re: NFC normalization rename errors after 2.3 to 2.4 upgrade (mdbox)

Timo Sirainen via dovecot <[email protected]> Mon, 6 Jul 2026 21:53:20 +0300
Newsgroups gmane.mail.imap.dovecot
Message-ID <[email protected]>
--===============2563656347521616169==
Content-Type: multipart/alternative;
	boundary="Apple-Mail=_60149094-51E6-4734-AB66-2BFDAACD26DF"


--Apple-Mail=_60149094-51E6-4734-AB66-2BFDAACD26DF
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

On 6. Jul 2026, at 8.39, Michael Goth via dovecot <[email protected]> =
wrote:
>=20
> So I think updating the mailbox name to NFC should also update any =
matching subscriptions of the user. Otherwise, the subscription gets =
lost and we get constant errors in the logs.

I thought this was already fixed, but looks like accidentally the test =
was using mailbox_list_utf8=3Dyes. With the default =3Dno it was broken. =
Attached a fix.

=EF=BF=BC


--Apple-Mail=_60149094-51E6-4734-AB66-2BFDAACD26DF
Content-Type: multipart/mixed;
	boundary="Apple-Mail=_82094318-590E-4212-A020-6B8FDE78CEED"


--Apple-Mail=_82094318-590E-4212-A020-6B8FDE78CEED
Content-Transfer-Encoding: 7bit
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"

   On 6. Jul 2026, at 8.39, Michael Goth via dovecot <[email protected]>
   wrote:

     So I think updating the mailbox name to NFC should also update any
     matching subscriptions of the user. Otherwise, the subscription gets
     lost and we get constant errors in the logs.

   I thought this was already fixed, but looks like accidentally the test was
   using mailbox_list_utf8=yes. With the default =no it was broken. Attached
   a fix.

--Apple-Mail=_82094318-590E-4212-A020-6B8FDE78CEED
Content-Disposition: attachment;
	filename=utf8.diff
Content-Type: application/octet-stream;
	x-unix-mode=0644;
	name="utf8.diff"
Content-Transfer-Encoding: 7bit

diff --git a/obox-tests/obox-user-delete-dangling/test.d/common.sh b/obox-tests/obox-user-delete-dangling/test.d/common.sh
index 98452a1aa..63f6a3dbf 100644
--- a/obox-tests/obox-user-delete-dangling/test.d/common.sh
+++ b/obox-tests/obox-user-delete-dangling/test.d/common.sh
@@ -29,6 +29,18 @@ dangling_delete_from_storage() {
 	done
 }
 
+# Like stderr_expect_multi, but first drops the stderr lines that don't match
+# any of the given regexps. "doveadm obox user delete" logs a variable number
+# of per-folder recovery lines when it resyncs lost folders, so only the
+# deterministic summary lines can be matched exactly.
+stderr_expect_at_least_multi() {
+	local re pat
+	for re in "$@"; do pat="${pat:+$pat|}$re"; done
+	egrep -a "$pat" $TEST_STDERR >$TEST_STDERR.tmp || true
+	mv $TEST_STDERR.tmp $TEST_STDERR
+	stderr_expect_multi "$@"
+}
+
 # Run "doveadm obox user delete" for the user $1 and assert that it removes
 # every dict pointer and every object-storage blob of the user. The command's
 # log output is left in $TEST_STDERR for the caller to check.

--Apple-Mail=_82094318-590E-4212-A020-6B8FDE78CEED
Content-Transfer-Encoding: 7bit
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"


--Apple-Mail=_82094318-590E-4212-A020-6B8FDE78CEED--

--Apple-Mail=_60149094-51E6-4734-AB66-2BFDAACD26DF--

--===============2563656347521616169==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
dovecot mailing list -- [email protected]
To unsubscribe send an email to [email protected]

--===============2563656347521616169==--