--
You received this message because you are subscribed to the Google Groups "pmem" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pmem+uns...@googlegroups.com.
To post to this group, send email to pm...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pmem/5c5d3413-709f-4290-82dd-1d95df95757b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
The reason why the bugs in the examples I linked weren't found earlier was that we simply didn't yet have automatic pmemcheck tests for those specific examples.When we finally added those tests, they revealed the new issues. You can see this in https://github.com/pmem/pmdk/pull/3134/files, where@marcinslusarz wrote new tests for examples, and then he fixed the issues those tests found.
And just to be extra clear, pmemcheck has a very limited ability to find any bugs with application logic. It simply verifies if all persistent memory
modifications are followed by appropriate flushing/fencing instructions, and it also detects missing snapshots in undo log transactions. That's it.By no means does that guarantee that pmemobj's internal mechanisms are bug free ;) That's why we've built the pmemreorder tool which I linked in
my previous email.
Hi Piotr,The reason why the bugs in the examples I linked weren't found earlier was that we simply didn't yet have automatic pmemcheck tests for those specific examples.When we finally added those tests, they revealed the new issues. You can see this in https://github.com/pmem/pmdk/pull/3134/files, where@marcinslusarz wrote new tests for examples, and then he fixed the issues those tests found.Got it. But, did you stumble upon these test cases randomly? The ability of pmemcheck to find bugs seems to rely on the test cases written. Do you employ any fuzzing techniques to generate random test cases and test them with pmemcheck?
And just to be extra clear, pmemcheck has a very limited ability to find any bugs with application logic. It simply verifies if all persistent memory
modifications are followed by appropriate flushing/fencing instructions, and it also detects missing snapshots in undo log transactions. That's it.By no means does that guarantee that pmemobj's internal mechanisms are bug free ;) That's why we've built the pmemreorder tool which I linked in
my previous email.We are interested in finding bugs that pmemcheck or pmemreorder would not find (in a reasonable amount of time). I see that the pmreorder tool is pretty new; Is it integrated into your testing, just like pmemcheck? If not, were there any interesting bugs found using pmreorder?