L2 Cache content corruption without offline modification(possibly without restart)
Posted: Tue Nov 10, 2020 8:27 am
Windows OS: Windows 10 64bit 2004 19041.450
Hardware Information
CPU: 8700k
Main Board: msi z390 gaming plus
Memory: 16GB x 4 G skill royale 3600 c19
Hard Drives: 1TB SN550, Samsung 860 Evo 512gb, 8TB seagate barracuda, 16tb seagate exos
PrimoCache Version: 3.0.9
Screenshot(s) of your PrimoCache's main dialog showing cache configuration and statistics:
Problem Description:
First, I really loved this software. However, I ran into issue with L2 cache twice in a span of 3 days, with cache content either out of sync or possibly corrupted. This issue doesn't happen all the time, and I am unable to systematically reproduce the problem. This issue had never happened when I used L1 cache ONLY setup. I have spent a lot of time searching through out the forums and google and was unable to find a similar issue.
I recently discovered that I have a extra 512gb Samsung 860 Evo SSD, it is in relatively good condition with only 200 days power on time and 7.5TB total writes. I decided to use it as L2 cache in addition to my L1 cache for my 8TB hard drive. However, after setting up L2 cache, I experienced errors when opening Noxplayer( android simulator). The error message both times are different. The first time error message was . And the Second time the error message was . These two issue was immediately resolved once I pause the Cache, and the issue returns once the cache was resumed.
I still unsure the root cause of this error, and unable to reproduce it with success. Resetting the L2 cache, pausing cache will solve the issue. I have default for L1, read only for L2, defer write option is disabled. Never had any offline modification, No dual booting system. I suspect the cache of L2 is out of sync. Even though I had not modified the source disk in offline setting. For the first time this error happened, I can't really recall if I restarted my PC or not, but I believe I did not restart my pc after setting up the L2 cache since the error happened. The second time the error happened I did restart my PC once, and was greeted by the error after tried to launch noxplayer. Because on FAQ stated that Primocache checks if L2 cache is in sync with source disk on boot, and resets cache content if it detects out sync issue, I wanted to test if primocache is able to see my L2 is out of sync, therefore I proceeded to restart my computer without resetting my L2 cache even knowing my L2 cache may be corrupted. Then on the next boot, the cache was not resetted by primocache, and Noxplayer error still presist.
I would like to add that I also use a program called ISLC together with primocache. ISLC is to clear windows memory cache. Because windows cache is file level, I want to have accurate primocache stats reading, therefore I setted up ISLC to clear windows file level cache periodically, I do not think this can in any way contribute to the problem I mentioned above, since the problem was only discovered on L2 cache. Since then I disabled L1 cache to double check if it is my L2 cache that is corrupted, and indeed it was.
This raises some concern for me. As I previously thought, that without enabling defer write, Primocache should not increase any additional corruption risk for the target drive, even at the event of powerloss or BSOD crashes. However, after encountering this problem, I realized that If the read cache content is out of sync and primocache was not able to self correct / notify the user in time, and this issue can accumulate and become a very large scale corruption. One good scenario is that In the case of total file corruption as my Noxplayer was not starting up at all,this gives the user the knowledge that something is wrong with the cache content, and resetting cache content solving the issue isn't a big problem because the file is completely inaccessible in the first place and will not be written to the source disk. However, what I am afraid of is a situation that, let's say I have a very important document "1.txt", and inside "1.txt"'s content is just a string "0". Some how after caching my 1.txt to L2 cache, The L2 cache is out of sync and corrupted in a way that only flipping 1 bit, making the string "0" becoming a "1" or some other arbitrary number. Since the file itself is not corrupted, it can still be accessed and opened normally by notepad.exe and loading into actual memory, but mutated in a way, So next time when I open 1.txt, it will show the content 1 instead of original 0 because it is loaded from the cache into the memory instead of target disk, and by saving this content, I basically overwrites the original content on my cached source, leading to a very different files. This could be very dangerous to file integrity. Therefore I'd like to know if primocache has any way preventing from above scenario happening, or if not, if we the user can do anything to minimize the possibility of file corruption without constantly checksum our file and imaging them(not practical and realistic). I am very much looking forwards to version 4.0 and keep up the good work during this difficult time!
Hardware Information
CPU: 8700k
Main Board: msi z390 gaming plus
Memory: 16GB x 4 G skill royale 3600 c19
Hard Drives: 1TB SN550, Samsung 860 Evo 512gb, 8TB seagate barracuda, 16tb seagate exos
PrimoCache Version: 3.0.9
Screenshot(s) of your PrimoCache's main dialog showing cache configuration and statistics:
Problem Description:
First, I really loved this software. However, I ran into issue with L2 cache twice in a span of 3 days, with cache content either out of sync or possibly corrupted. This issue doesn't happen all the time, and I am unable to systematically reproduce the problem. This issue had never happened when I used L1 cache ONLY setup. I have spent a lot of time searching through out the forums and google and was unable to find a similar issue.
I recently discovered that I have a extra 512gb Samsung 860 Evo SSD, it is in relatively good condition with only 200 days power on time and 7.5TB total writes. I decided to use it as L2 cache in addition to my L1 cache for my 8TB hard drive. However, after setting up L2 cache, I experienced errors when opening Noxplayer( android simulator). The error message both times are different. The first time error message was . And the Second time the error message was . These two issue was immediately resolved once I pause the Cache, and the issue returns once the cache was resumed.
I still unsure the root cause of this error, and unable to reproduce it with success. Resetting the L2 cache, pausing cache will solve the issue. I have default for L1, read only for L2, defer write option is disabled. Never had any offline modification, No dual booting system. I suspect the cache of L2 is out of sync. Even though I had not modified the source disk in offline setting. For the first time this error happened, I can't really recall if I restarted my PC or not, but I believe I did not restart my pc after setting up the L2 cache since the error happened. The second time the error happened I did restart my PC once, and was greeted by the error after tried to launch noxplayer. Because on FAQ stated that Primocache checks if L2 cache is in sync with source disk on boot, and resets cache content if it detects out sync issue, I wanted to test if primocache is able to see my L2 is out of sync, therefore I proceeded to restart my computer without resetting my L2 cache even knowing my L2 cache may be corrupted. Then on the next boot, the cache was not resetted by primocache, and Noxplayer error still presist.
I would like to add that I also use a program called ISLC together with primocache. ISLC is to clear windows memory cache. Because windows cache is file level, I want to have accurate primocache stats reading, therefore I setted up ISLC to clear windows file level cache periodically, I do not think this can in any way contribute to the problem I mentioned above, since the problem was only discovered on L2 cache. Since then I disabled L1 cache to double check if it is my L2 cache that is corrupted, and indeed it was.
This raises some concern for me. As I previously thought, that without enabling defer write, Primocache should not increase any additional corruption risk for the target drive, even at the event of powerloss or BSOD crashes. However, after encountering this problem, I realized that If the read cache content is out of sync and primocache was not able to self correct / notify the user in time, and this issue can accumulate and become a very large scale corruption. One good scenario is that In the case of total file corruption as my Noxplayer was not starting up at all,this gives the user the knowledge that something is wrong with the cache content, and resetting cache content solving the issue isn't a big problem because the file is completely inaccessible in the first place and will not be written to the source disk. However, what I am afraid of is a situation that, let's say I have a very important document "1.txt", and inside "1.txt"'s content is just a string "0". Some how after caching my 1.txt to L2 cache, The L2 cache is out of sync and corrupted in a way that only flipping 1 bit, making the string "0" becoming a "1" or some other arbitrary number. Since the file itself is not corrupted, it can still be accessed and opened normally by notepad.exe and loading into actual memory, but mutated in a way, So next time when I open 1.txt, it will show the content 1 instead of original 0 because it is loaded from the cache into the memory instead of target disk, and by saving this content, I basically overwrites the original content on my cached source, leading to a very different files. This could be very dangerous to file integrity. Therefore I'd like to know if primocache has any way preventing from above scenario happening, or if not, if we the user can do anything to minimize the possibility of file corruption without constantly checksum our file and imaging them(not practical and realistic). I am very much looking forwards to version 4.0 and keep up the good work during this difficult time!