Hello list, I am another person who has encountered this bug. I also have some new findings. E.g. that this assertion can be hit even on v1.5.0!
I wanted to do a git bisect, but the build process fails if I specify a checkout instead of a release tarball (even for v1.5.1). It's probably an issue with how isync is packaged by GNU Guix, but I don't really know how to debug it. And I don't have the time right now to set up a build environment manually, the traditional way. Moreover, I checked that applying a revert of the commit 1e0b661d on top of v1.5.1 restores the v1.5.0 behaviour. This narrows down the recent increased prevalence of this bug to that tiny change. Also, here's an anonymized version of the rc file I was using: #+BEGIN_EXAMPLE IMAPAccount [...] Host [...] User [...] PassCmd "pass show [...] | head -n1" TLSType IMAPS CertificateFile /etc/ssl/certs/ca-certificates.crt IMAPStore remote Account [...] MaildirStore local SubFolders Verbatim Path ~/[...]/maildir/ Inbox ~/[...]/maildir/local-inbox Channel synchronizer Far :remote: Near :local: Sync Pull Create Near Remove None Expunge None ExpungeSolo None CopyArrivalDate yes SyncState * #+END_EXAMPLE * an already-downloaded maildir prevents the crash #+BEGIN_EXAMPLE me@host$ guix shell isync [email protected]=isync-1.5.1.tar.gz me@guix$ rm -r maildir/* [...] removed directory 'maildir/local-inbox' me@guix$ mbsync --config rc-file synchronizer Maildir notice: no UIDVALIDITY in $PWD/maildir/local-inbox, creating new. Channels: 1 Boxes: 1 Far: +0 *0 #0 -0 Near: +440 *0 #0 -0 me@guix$ mbsync --config rc-file --dry-run synchronizer Channels: 1 Boxes: 1 Far: +0 *0 #0 -0 Near: +0 *0 #0 -0 #+END_EXAMPLE * silent in v1.5.0; present in v1.5.1 #+BEGIN_EXAMPLE me@host$ guix shell isync [email protected]=isync-1.5.0.tar.gz me@guix$ rm -r maildir/* [...] removed directory 'maildir/local-inbox' me@guix$ mbsync --config rc-file --dry-run synchronizer Maildir notice: no UIDVALIDITY in $PWD/maildir/local-inbox, creating new. Processed 1 box(es) in 1 channel(s), would pull 440 new message(s) and 0 flag update(s). #+END_EXAMPLE (this was not in fact a dry run – it populated the maildir with a lot of files) #+BEGIN_EXAMPLE me@host$ guix shell isync [email protected]=isync-1.5.1.tar.gz me@guix$ rm -r maildir/* [...] removed directory 'maildir/local-inbox' me@guix$ mbsync --config rc-file --dry-run synchronizer Maildir notice: no UIDVALIDITY in $PWD/maildir/local-inbox, creating new. mbsync: drv_maildir.c:1680: maildir_find_new_msgs: Assertion `DFlags & FAKEDUMBSTORE' failed. zsh: IOT instruction (core dumped) mbsync --config rc-file --dry-run synchronizer #+END_EXAMPLE * v1.5.1 + revert seems to "fix" it #+BEGIN_EXAMPLE me@host$ guix shell isync [email protected]=./revert.diff me@guix$ rm -r maildir/* [...] removed directory 'maildir/local-inbox' me@guix$ mbsync --config rc-file --dry-run synchronizer Maildir notice: no UIDVALIDITY in $PWD/maildir/local-inbox, creating new. Channels: 1 Boxes: 1 Far: +0 *0 #0 -0 Near: +440 *0 #0 -0 #+END_EXAMPLE (unsurprisingly, this is not a dry run – it populates the maildir; it doesn't crash) * v1.5.1 + revert + =--debug= uncovers it again #+BEGIN_EXAMPLE me@host$ guix shell isync [email protected]=./revert.diff me@guix$ rm -r maildir/* [...] removed directory 'maildir/local-inbox' me@guix$ mbsync --config rc-file --dry-run --debug synchronizer 1>crash-huh.stdout 2>crash-huh.stderr zsh: IOT instruction (core dumped) mbsync --config rc-file --dry-run --debug synchronizer > crash-huh.stdout 2> #+END_EXAMPLE (+seems to be a dry run;+ it crashes and does not populate the maildir) * v1.5.0 is also affected #+BEGIN_EXAMPLE me@host$ [email protected]=isync-1.5.0.tar.gz me@guix$ rm -r maildir/* [...] removed directory 'maildir/local-inbox' me@guix$ mbsync --config rc-file --dry-run --debug synchronizer 1>crash-huh-too.stdout 2>crash-huh-too.stderr zsh: IOT instruction (core dumped) mbsync --config rc-file --dry-run --debug synchronizer > crash-huh-too.stdout #+END_EXAMPLE (just like above) ** diff between =crash-huh.*= and =crash-huh-too.*= – not much to see here #+BEGIN_EXAMPLE --- crash-huh.stderr 2026-05-01 22:46:31.738887271 +0200 +++ crash-huh-too.stderr 2026-05-02 00:19:32.139762496 +0200 @@ -1 +1 @@ -mbsync: drv_maildir.c:1680: maildir_find_new_msgs: Assertion `DFlags & FAKEDUMBSTORE' failed. +mbsync: drv_maildir.c:1674: maildir_find_new_msgs: Assertion `DFlags & FAKEDUMBSTORE' failed. #+END_EXAMPLE #+BEGIN_EXAMPLE --- crash-huh.stdout 2026-05-01 22:46:31.738887271 +0200 +++ crash-huh-too.stdout 2026-05-02 00:19:32.139762496 +0200 @@ -1,4 +1,4 @@ -isync 1.5.1 called with: '--config' 'rc-file' '--dry-run' '--debug' 'synchronizer' +isync 1.5.0 called with: '--config' 'rc-file' '--dry-run' '--debug' 'synchronizer' Reading configuration file ./rc-file merge ops (in Channel 'synchronizer'): common: XOP_PULL @@ -47,7 +47,7 @@ Opening near side box INBOX... N: [ 4] Enter open_box Maildir notice: no UIDVALIDITY in $PWD/maildir/local-inbox, creating new. -N: [ 4] Callback enter open_box, sts=0, uidvalidity=1777668391 +N: [ 4] Callback enter open_box, sts=0, uidvalidity=1777673971 N: [ 4] Callback leave open_box N: [ 4] Leave open_box F: [ 1] Callback leave connect_store @@ -963,7 +963,7 @@ uid=4540 flags=S size=0 tuid=? far side: 440 messages, 0 recent matching messages on far side against sync records --> log: | 1 1777668391 (new UIDVALIDITYs) +-> log: | 1 1777673971 (new UIDVALIDITYs) Synchronizing... F: Called get_supported_flags, ret=0xff N: Called get_supported_flags, ret=0xff @@ -1414,446 +1414,446 @@ propagating new messages N: Called get_uidnext, ret=0 -> log: F 1 0 (save UIDNEXT of near side) [...] N: Called get_memory_usage, ret=0 F: [ 7] Enter fetch_msg [DRY], uid=257, want_flags=no, want_date=yes F: [ 7] Callback enter fetch_msg, sts=0, flags=, date=-1, size=0 #+END_EXAMPLE * doesn't happen unless I use =--dry-run= #+BEGIN_EXAMPLE me@host$ guix shell isync [email protected]=isync-1.5.1.tar.gz me@guix$ rm -r maildir/* [...] removed directory 'maildir/local-inbox' me@guix$ mbsync --config rc-file synchronizer Maildir notice: no UIDVALIDITY in $PWD/maildir/local-inbox, creating new. Channels: 1 Boxes: 1 Far: +0 *0 #0 -0 Near: +440 *0 #0 -0 #+END_EXAMPLE Curiously, this seemed to be much slower than the buggy not-so-dry runs. Either this actually does more work or maybe the server is starting to rate-limit me. * here's how the =crash.std*= files were gathered #+BEGIN_EXAMPLE me@host$ guix shell isync [email protected]=isync-1.5.1.tar.gz me@guix$ rm -r maildir/* [...] removed directory 'maildir/local-inbox' me@guix$ mbsync --config rc-file --dry-run --debug synchronizer 1>crash.stdout 2>crash.stderr zsh: IOT instruction (core dumped) mbsync --config rc-file --dry-run --debug synchronizer > crash.stdout 2> #+END_EXAMPLE If anyone has an idea how to obtain =--debug= logs *without the crash* that differ the least for these, I'm all ears. Cheers, Piotr Masłowski _______________________________________________ isync-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/isync-devel
