Closed olidal closed 3 years ago
Arg. I messed up and inadvertantly pushed another change I made in this PR branch.
It is pretty harmless: It adds generation of a new log line that shows the names of the snapshots being sent (and not only the dataset). this is actually useful for computing the actual size of the data being sent by simply parsing the logs and running running zfs send -Pvn
on corresponding log lines.
I still observe duplicates, the proposed change does not seem to be fixing the issue.
As shown on the following log excerpt, I had duplicate snapshoting and sending actions. Those seem to be due to a race-condition: a process could decide that a job was still to be done because it found the snapPid/sendPid value to be still equal to zero while a fork was already initiated for the corresponding tasks. My fix is quite simple: assign a non-zero value to these variables before starting the fork. Since at this time the new process id is not yet known, I just assign a value that is not available for a pid (I believe) : ~0 (binary bitwise opposite of zero); I havent extensively tested potential side effects, but at least this seems to fix the duplicate issue I had.
Log excerpt showing the snapshot duplicates:
The following shows similar issue observed with send duplicate worker: