def _find_rr_record(self, rr_path):
        '''
        An internal method to find an directory record on the ISO given a Rock
        Ridge path.  If the entry is found, it returns the directory record
        object corresponding to that entry.  If the entry could not be found, a
        pycdlibexception.PyCdlibInvalidInput is raised.
        Parameters:
         rr_path - The Rock Ridge path to lookup.
        Returns:
         The directory record entry representing the entry on the ISO.
        '''
        if not utils.starts_with_slash(rr_path):
            raise pycdlibexception.PyCdlibInvalidInput('Must be a path starting with /')
        root_dir_record = self.pvd.root_directory_record()
        if rr_path == b'/':
            return root_dir_record
        splitpath = utils.split_path(rr_path)
        currpath = splitpath.pop(0).decode('utf-8').encode('utf-8')
        entry = root_dir_record
        while True:
            child = None
            thelist = entry.rr_children
            lo = 0
            hi = len(thelist)
            while lo < hi:
                mid = (lo + hi) // 2
                tmpchild = thelist[mid]
                if tmpchild.rock_ridge is None:
                    raise pycdlibexception.PyCdlibInvalidInput('Record without Rock Ridge entry on Rock Ridge ISO')
                if tmpchild.rock_ridge.name() < currpath:
                    lo = mid + 1
                else:
                    hi = mid
            index = lo
            tmpchild = thelist[index]
            if index != len(thelist) and tmpchild.rock_ridge is not None and tmpchild.rock_ridge.name() == currpath:
                child = thelist[index]
            if child is None:
                break
            if child.rock_ridge is not None and child.rock_ridge.child_link_record_exists():
                child = child.rock_ridge.cl_to_moved_dr
                if child is None:
                    break
            if not splitpath:
                return child
            if not child.is_dir():
                break
            entry = child
            currpath = splitpath.pop(0).decode('utf-8').encode('utf-8')
        raise pycdlibexception.PyCdlibInvalidInput('Could not find path')