I'm struggling to make an isolated example of this, but the app where I found this is pretty simple so hopefully it's not too challenging to track down.

So I was profiling https://the-react-bookshelf.netlify.com (locally) and got this when I clicked on the "login" button:

![image](https://user-images.githubusercontent.com/1500684/66011343-fe4dc580-e47f-11e9-9220-50ba884640f3.png)

![image](https://user-images.githubusercontent.com/1500684/66011358-0dcd0e80-e480-11e9-80fb-86c0f2196ef9.png)

The fact that there was no profile data for a commit is interesting. Each commit should be associated to a state update somewhere in the tree, and wherever that happened should trigger at least one component to re-render, but that didn't appear to happen here.

I also verified that I don't have any components filtered out:

![image](https://user-images.githubusercontent.com/1500684/66011428-57b5f480-e480-11e9-9e66-7cf86f8ba48f.png)

And I didn't filter any commits either:

![image](https://user-images.githubusercontent.com/1500684/66011433-5ab0e500-e480-11e9-97a8-be202351870d.png)

Here's the exported profile data:

https://gist.github.com/kentcdodds/dbff66043653333cd22cb9261a08550b

And here's the repo where you can pull it down and reproduce yourself: https://github.com/kentcdodds/bookshelf. The component we're looking at is here: https://github.com/kentcdodds/bookshelf/blob/master/src/unauthenticated-app.js

Sorry I can't give a more direct reproduction.
}
   If necessary, we can revisit optimizing this operation.
   For example, we could add a new recursive unmount tree operation.
   The unmount operations are already significantly smaller than mount operations though.
   This is something to keep in mind for later.
  function updateComponentFilters(componentFilters: Array<ComponentFilter>) {
    if (isProfiling) {
       R
       I
      throw Error('Cannot modify filter preferences while profiling');
    }
     Recursively unmount all roots.
    hook.getFiberRoots(rendererID).forEach(root => {
      currentRootID = getOrGenerateFiberID(root.current);
       T
       1
       2
      pushOperation(TREE_OPERATION_REMOVE_ROOT);
      flushPendingEvents(root);
      currentRootID = -1;
    });
    applyComponentFilters(componentFilters);
     Reset pseudo counters so that new path selections will be persisted.
    rootDisplayNameCounter.clear();
     Recursively re-mount all roots with new filter criteria applied.
    hook.getFiberRoots(rendererID).forEach(root => {
      currentRootID = getOrGenerateFiberID(root.current);
      setRootPseudoKey(currentRootID, root.current);
      mountFiberRecursively(root.current, null, false, false);
      flushPendingEvents(root);