Browse Source

avoid that a system crash can cause messages to be propagated twice

fdatasync() the journal after creating the pair record and recording
the TUID, but before the message propagation actually starts.

all other writes to the journal are not flushed, as they will at worst
cause some unnecessary network traffic without visible effect.
wip/maildir-uid-dupes-test
Oswald Buddenhagen 12 years ago
parent
commit
49223b2df2
  1. 1
      src/sync.c

1
src/sync.c

@ -1202,6 +1202,7 @@ box_loaded( int sts, void *aux )
cv->srec = srec;
cv->msg = tmsg;
Fprintf( svars->jfp, "# %d %d %." stringify(TUIDL) "s\n", srec->uid[M], srec->uid[S], srec->tuid );
fdatasync( fileno( svars->jfp ) );
debug( " -> %sing message, TUID %." stringify(TUIDL) "s\n", str_hl[t], srec->tuid );
if (copy_msg( cv ))
return;

Loading…
Cancel
Save