Quellcode durchsuchen

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.
Oswald Buddenhagen vor 12 Jahren
Ursprung
Commit
49223b2df2
1 geänderte Dateien mit 1 neuen und 0 gelöschten Zeilen
  1. 1 0
      src/sync.c

+ 1 - 0
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;