Page 2 of 2 FirstFirst 12
Results 11 to 20 of 20
  1. #11
    Join Date
    Feb 2011
    Posts
    144

    Default

    Same. Windows 10 on both machines and a personal OneDrive account. Since this is just a folder compare, and since OneDrive is only being used to sync a timestamp change, it may be that OneDrive has nothing to do with it.

    I'm starting the compare by right-clicking the local folder and choosing 'Select Left Folder for Compare' and then right-clicking the network folder and choosing to compare it to the left folder. So the comparison is starting with one set of rules (the quick compare rules I outlined a couple posts ago). I bet that the key factor is due to changing the rules to to a contents comparison after the initial quick compare, running the content comparison, and then changing the rules back to a quick compare immediately before trying to Full Refresh. And maybe the number of files, or the depth of the folder structure is a factor too.

    Perhaps the developers need to look at the code to see what code path is being followed when doing a Full Refresh after changing the rules, compared to what code path is being followed when doing a normal refresh in the same circumstance.

  2. #12
    Join Date
    Oct 2007
    Location
    Madison, WI
    Posts
    4,584

    Default

    I followed all 8 steps in your earlier post, including unchecking Compare Contents before Full Refresh, but I haven't been able to duplicate the issue. My test environment used Windows 10 machines and OneDrive personal on both ends, along with BC 4.2.3.

    Sometimes antivirus software can introduce odd behavior. Are you using the built-in Windows Defender for anti-virus, or are you using some other antivirus software?
    Chris K Scooter Software

  3. #13
    Join Date
    Feb 2011
    Posts
    144

    Default

    I'm just using the built-in Windows Defender.

  4. #14
    Join Date
    Oct 2007
    Location
    Madison, WI
    Posts
    11,375

    Default

    What kind of devices are on your network, and how exactly are the configured and connected? We've been referring to them as local and remote. Are they both Windows 10 machines? Are the OneDrive locations under the same Windows Account control?

    If you test outside of OneDrive, does the issue reproduce?
    Aaron P Scooter Software

  5. #15
    Join Date
    Feb 2011
    Posts
    144

    Default

    Quote Originally Posted by Aaron View Post
    What kind of devices are on your network, and how exactly are the configured and connected?
    Both PCs are in the same location (under my desk), connected to the same gigabit switch on my desk.

    Quote Originally Posted by Aaron View Post
    We've been referring to them as local and remote. Are they both Windows 10 machines? Are the OneDrive locations under the same Windows Account control?
    Quote Originally Posted by grindax View Post
    Windows 10 on both machines and a personal OneDrive account
    Quote Originally Posted by Aaron View Post
    If you test outside of OneDrive, does the issue reproduce?
    Yes. It has nothing to do with OneDrive. And in the test I've just run, the side where the Full Refresh hasn't seen the new timestamp is the local side (left).

    Quote Originally Posted by grindax View Post
    Perhaps the developers need to look at the code to see what code path is being followed when doing a Full Refresh after changing the rules, compared to what code path is being followed when doing a normal refresh in the same circumstance.
    How are you getting on with this? Also, are you making sure to update the timestamps manually with an external program in your tests, like me, and not BC itself?

  6. #16
    Join Date
    Oct 2007
    Location
    Madison, WI
    Posts
    2,503

    Default

    Quote Originally Posted by grindax View Post
    Perhaps the developers need to look at the code to see what code path is being followed when doing a Full Refresh after changing the rules, compared to what code path is being followed when doing a normal refresh in the same circumstance
    I don't want to take over Aaron's troubleshooting, but to answer this specific question: Full Refresh and Refresh both go through the same code path to retrieve directory listings and update last modified times.

    We have a global data structure that represents all of the directories and files we know about, and a separate structure that represents the comparison of two directories and and just stores references to those files/folders. In both Refresh and Full Refresh, we retrieve a directory listing and update that first structure in place. The only difference between them is that in Refresh's case, the comparison structure gets notifications for every file that's changed, and in Full Refresh's case the comparison structure is thrown out and rebuilt from scratch. There are some other, irrelevant, differences, but in the end, there's only one copy of each file's last modified time in the system, and there's only one routine that updates that last modified time.

    I'd happily look into the code further if there was an obvious place to do so, but there isn't, especially if rules-based comparisons are disabled and if Full Refresh is the failing one.

    If I had to guess, a possible culprit could be if you somehow had two directories with identical names (maybe differing only in case) in the same parent directory, or if there were accented characters that were messing thing up. Creating duplicate entries requires bypassing the Windows APIs (e.g., using the Linux subsystem) and the second isn't terribly likely, since BC is conservative in how it handles Unicode filenames, but if you wanted to rule them out, try testing with a new directory structure/share where all of the paths are ASCII characters.
    ZoŽ P Scooter Software

  7. #17
    Join Date
    Feb 2011
    Posts
    144

    Default

    Thanks ZoŽ. Based on your input, I've re-examined the folder structure.

    There are no directories with identical names in the same parent directory. All of the files and folders were created under Windows.

    I've run a PowerShell script to recursively scan the entire folder structure and identify any non-ASCII characters. One of the folders (not the one containing the file I'm modifying the timestamp of) contains web links (.url files). A dozen of those .url files contained one or more non-ASCII characters in their filenames. I went ahead and renamed them to delete the non-ASCII characters. There were 7 unique non-ASCII characters in total, across the 12 filenames.

    Ė (en dash)
    \x{A0} (no-break space)
    Ľ

    ď
    Ē
    ē

    After making these changes to the filenames to ensure that there are no non-ASCII characters anywhere, I've re-run the same test. Unfortunately the bug is still evident and I get the same result as before. After changing the timestamp of the file in both locations and then immediately changing the folder comparison rules, hitting 'Full Refresh' did not update the timestamp on the local (left) side, so the file is shown as being different to the corresponding one on the right. I then hit 'Full Refresh' about another 10 times, with it making no difference. Then, when I hit 'Refresh', the timestamp of the file on the left updated correctly, and therefore all files were shown as being matches.

  8. #18
    Join Date
    Oct 2007
    Location
    Madison, WI
    Posts
    2,503

    Default

    If you make other changes to the directory, external to BC, are those picked up? Are size changes? What about if you create a new file or delete one? You said it has nothing to do with OneDrive, but is it only occurring if you make a change to both directories, or does it also affect if only one side or the other is changed? Is it showing up if you compare two local directories? Also, in an earlier post you said "Full Refresh doesn't refresh the timestamp of the file on the right". Is it always the right side of the comparison? What happens if you swap sides?
    ZoŽ P Scooter Software

  9. #19
    Join Date
    Oct 2007
    Location
    Madison, WI
    Posts
    11,375

    Default

    In addition to Zoe's questions:
    How large are the directories you are comparing?

    Earlier, you've been testing with OneDrive folders that are theoretically mostly equal, with Skip content scans if quick tests are equal, so almost all files should be performing a meta-data only scan, with no center column/content scanning between file pairs, correct? And these two computers are directly connected on an internal LAN with a gigabit switch, hardwired? But this mostly meta-data scan is taking an hour to complete? When you look at the file pairs, is there a center column icon population occurring, showing content scan results?
    Aaron P Scooter Software

  10. #20
    Join Date
    Feb 2011
    Posts
    144

    Default

    The whole dataset (which starts off identical in every way on both sides at the beginning) is 30GB, made up of just over 8000 files in just over 600 directories. And in the test I'm doing, all I'm changing is the timestamp on a single file, to the same value, on both PCs.

    The initial folder comparison I do, using quick tests only, takes just a few seconds. Then I check the 'Compare contents' box so it does a rules-based contents comparison, which takes quite a while, and then when that is finished I uncheck the 'Compare contents' box, click OK, and then hit the Full Refresh button on the toolbar so that it does another comparison using quick tests only, which only takes a few seconds. (This is all already explained in detail in the conversation we've had so far).

    Yes, like I've said, both computers, which I explained are under my desk (i.e. they are desktop PCs, not laptops) are connected to the gigabit switch on my desk (not to a wireless access point). Of course, this means wired (Cat 6a, gigabit, wired connections).

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •