Note: this problem was previously reported elsewhere (at http://www.macecraft.com/phpBB2/viewtopic.php?p=3732#3732 and ff. ) mixed with other problems. This post focuses on the synchronization problem.
Situation:
Preliminary: one RC scan picked up 61 lines instead of the expected 41. The 20 extra lines were duplicates of other lines in the list. Simply rescanning then showed the expected 41 lines.
-- Ran RC which displayed 41 lines -- all were HKCU & HKUS high-level keys and "File or directory "path" does not exist" type errors -- there were 19 HKCU/HKUS "synonym pairs" (high-level keys point to or have the same entry-name/value) and 3 unique lines (all HKUS)
Test #1: did a select all and clicked "Remove" -- a completed progress bar appeared and all lines dropped from the list -- backup entries.reg contained 22 entry-name/value items (all were HKUS) -- RC rescan showed no lines -- after restore, RC rescan showed the original 41 lines
Test #2: did a select all and clicked "Fix" -- a progress bar appeared; when it completed, all lines dropped from the list and a message said 15 lines were fixed and the rest removed -- backup entries.reg contained 28 entry-name/value items (there was a mix of HKUS and HKCU) -- by definition, there were 6 redundant items -- RC rescan showed 1 line -- in one of the fixed lines, a value "1" was replaced with a value "path" (see below at (*1*)) -- after restore, RC rescan showed the original 41 lines
Test #3: did a select all and clicked "Custom fix..." -- the Custom fix... window appeared -- clicked the OK button repeatedly, in each instance taking the default action -- on the RC list: sometimes a line was removed, sometimes nothing happened, sometimes the line stayed on the list but the value was blanked out -- after the 41st "OK" nothing further happened -- closed CF -- the RC list still showed 25 selected lines; 3 had the value blanked out and one had the value changed to "N/A" -- at this point, backup entries.reg contained 29 entry-name/value items (there was a mix of HKUS and HKCU) -- by definition, there were 7 redundant items -- clicked "Fix" -- a progress bar appeared; when it completed, all lines dropped from the list and a message said 7 lines were fixed and the rest removed -- backup entries.reg contained 7 entry-name/value items (there was a mix of HKUS (one) and HKCU (six)) -- by definition, there were 7 redundant items -- did not do a rescan at this point -- the prior backup restored the registry state -- RC rescan showed the original 41 lines
Test #4: repeated Test #3, but after closing CF, did not fix or remove the 25 lines still on the list -- at this point, backup entries.reg contained 27 entry-name/value items (there was a mix of HKUS and HKCU) -- by definition, there were 5 redundant items -- instead, closed RC and PT, restarted PT and RC -- the new list displayed 12 lines, a subset of the original 41 -- removed them, backup entries.reg contained 7 items, all redundant -- did an RC rescan which showed no lines -- restored the first Test #4 backup, and did an RC rescan -- list showed 40 lines, the HKUS part of one "synonym pair" was not on the list; regedit showed it was in the registry with the original value; restored and scanned again, still got only 40 lines -- restored the backup from Test #1 and rescanned, still got only 40 lines -- maybe it will show tomorrow (regedit does show that the error value missing from the list is in the registry) ...
Conclusions:
1. Tests #2, #3, and #4 all generated redundant items in the backup entries.reg -- this did no harm since the backups restored the original registry state in each case.
2. Test #2 revealed a bug that places a "fix" in the value of the wrong registry item.
3. Tests #3 and #4 showed that "remove/backup/list purge" processing from Custom Fix is not synchronized. Since since the backups restored the original registry state in each case, this did no identified harm, but the Custom Fix and list purge behavior is very confusing.
4. Preliminary and Test #4 showed that the errors picked up by RC can vary for no obvious reason.
5. The "cleanest" way to run RC is as in Test #1 (just "Remove").
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
(*1*) Key: HKUS\S-1-5-21-3503787427-2573848751-2203751120-1003\Soft\BillP Studios\WinPatrol\Run\
.......Entry's name: %systemroot%\system32\dumprep 0 -k
.......Value: C:\Documents and Settings\Owner\Desktop\Action later\Scrapbook dt1\Scrapbook dt1\Annoyances.org_-_Problems_with_Microsoft_Tun_Miniport_Adapter_(W\logo.gif -- ("logo.gif" was a filename in a value in a different line in the original list; the rest of "path" shown here is a "fix" change to that line)
.......Error description: File or directory "C:\WINDOWS\system32\dumprep 0 -k" does not exist -- (this is an interesting bug ... the only case in the test where the error was in the entry-name, not in the value)
Note: the original for this line was the last item in the backup; the preceding line in the backup was one the "fix" might have applied to; regedit showed that RC actually applied the "fix" to that line)