crashmonkey icon indicating copy to clipboard operation
crashmonkey copied to clipboard

Implement stub program and API for users to create file watches

Open ashmrtn opened this issue 8 years ago • 0 comments

File watches are a feature that would make checking for data consistency a lot easier on users. Therefore, CrashMonkey should support a system where a user can tell CrashMonkey what files should no longer change. These watches may be tied to certain checkpoints in the workload, or they may be something that holds through the entire workload.

For watches, we can assume a few things:

  1. the call will block until the watch has been setup
  2. the watch will either reference a checkpoint, or be before any file system operations have completed
  3. if the watch references a checkpoint, the watch function is called directly after a call to checkpoint

This part of the watch infrastructure gives user workloads the ability to tell CrashMonkey to watch a file. Since workloads can be run either by CrashMonkey (by subclassing BaseTest.h) or with CrashMonkey in the background, we need to provide both a stub binary and a simple API to setup watches. Watch setup should use sockets to communicate with the CrashMonkey test harness (see utils/communication/).

When the user requests a watch on a file, the stub should do the following:

  1. send the file path and checkpoint number (or some "null" checkpoint number if the workload is just starting) to the CrashMonkey test harness via socket
  2. wait for the CrashMonkey test harness that either the watch has been successfully setup or there was a problem with the watch.

ashmrtn avatar Sep 13 '17 17:09 ashmrtn