539ba5fb87
We should not hold locks on the master's database while waiting for network I/O which may take a terribly long time to complete as this will block out all writers and could therefore be slightly problematic. ipropd-master was holding a shared lock on the database while sending a complete propation to slaves which are out of sync with the log file. We fix this by writing what we intend to send in record format into a file hdb_db_dir()/ipropd.dumpfile while holding a shared lock on the database and then we send the contents of the file after releasing the lock. We also save and re-use the file that we generated during future complete propagation events as long as the log is long enough to get us back to the state previously dumped.