def METHOD_NAME(vm, handler_path, mem_path):
    """Spawn page fault handler process."""
    # Copy snapshot memory file into chroot of microVM.
    jailed_mem = vm.create_jailed_resource(mem_path)
    # Copy the valid page fault binary into chroot of microVM.
    jailed_handler = vm.create_jailed_resource(handler_path)
    handler_name = os.path.basename(jailed_handler)
    args = [SOCKET_PATH, jailed_mem]
    uffd_handler = UffdHandler(handler_name, args)
    real_root = os.open("/", os.O_RDONLY)
    working_dir = os.getcwd()
    os.chroot(vm.chroot())
    os.chdir("/")
    st = os.stat(handler_name)
    os.chmod(handler_name, st.st_mode | stat.S_IEXEC)
    uffd_handler.spawn()
    try:
        outs, errs = uffd_handler.proc().communicate(timeout=1)
        print(outs)
        print(errs)
        assert False, "Could not start PF handler!"
    except TimeoutExpired:
        print("This is the good case!")
    # The page fault handler will create the socket path with root rights.
    # Change rights to the jailer's.
    os.chown(SOCKET_PATH, vm.jailer.uid, vm.jailer.gid)
    os.fchdir(real_root)
    os.chroot(".")
    os.chdir(working_dir)
    return uffd_handler