/*
* This is the iprop case. We'll fork a child to run do_standalone(). The
* parent will run do_iprop(). We try to kill the child if we get killed.
- * Catch SIGUSR1 so tests can use it to interrupt the sleep timer and force
+ * Catch SIGUSR1, which can be used to interrupt the sleep timer and force
* an iprop request.
*/
signal_wrapper(SIGHUP, kill_do_standalone);
close(s);
+ /* If we are the fullprop child in iprop mode, notify the parent
+ * process that it should poll for incremental updates. */
+ if (fullprop_child == 0)
+ kill(getppid(), SIGUSR1);
if (runonce)
exit(0);
}
# versa.
def wait_for_prop(kpropd, full_expected, expected_old, expected_new):
output('*** Waiting for sync from kpropd\n')
- full_seen = sleep_seen = prodded_after_dump = False
+ full_seen = sleep_seen = False
old_sno = new_sno = -1
while True:
line = kpropd.stdout.readline()
sleep_seen = True
if 'load process for full propagation completed' in line:
full_seen = True
- if sleep_seen and full_seen and not prodded_after_dump:
- # Prod the kpropd parent into getting incrementals after
- # it finishes a DB load. This will be unnecessary if
- # kpropd is simplified to use a single process.
- kpropd.send_signal(signal.SIGUSR1)
- prodded_after_dump = True
# Detect some failure conditions.
if 'Still waiting for full resync' in line: