doveadm backup abort in imapc-client.c
Evan Klitzke
evan at eklitzke.org
Sun Sep 30 02:14:08 EEST 2018
Admin <admin at awib.it> writes:
> "Reliably" means what exactly?
> - At progress of 66%?
> - after e.g. 9611 Mails?
> - whenever a specific Mail is touched?
Reliably means "before the sync finishes", but not at a specific point.
I have about 2GB of mail I'm trying to sync, and the furthest the sync
has gotten is about 1GB of the way in.
I looked at the core dump some more and I sort of get what's going on,
although I don't understand the code well enough to fix the issue. The
imapc_client is being called in a re-entrant way, in the sense that
imapc_client_run() is called, and then while that imapc_client_run()
function is being invoked and is on the call stack, the event loop gets
triggered again and calls imapc_connection_input(). That causes
imapc_client_run() to be called with the same imapc_client object, and
this is what causes the assertion to fail. You can see this in the stack
trace I posted, and I was able to confirm in GDB that the two
invocations of imapc_client_run_pre() on the call stack both refer to
the same imapc_client struct.
--
Evan Klitzke pgp: 0x157EFCACBC648422
e: evan at eklitzke.org w: https://eklitzke.org
More information about the dovecot
mailing list