When called from vrecycle() or vgone() there is a window where the refcount
is greater than zero and another thread could get and release a reference
that would miss VOP_INACTIVE() as the refcount doesn't drop to zero.
Adjust test fs/puffs/t_basic: test VOP_INACTIVE count being greater zero.
- Make vrecycle() more robust by checking v_usecount first and preventing
further references across vn_lock(). Fixes a deadlock where one thread
starts unmount, second thread locks a directory and allocates a vnode
and first thread tries to vrecycle() the directory.
First thread holds vfs_busy and wants vnode, second thread holds vnode
and wants vfs_busy.
- With these fixes in place change cleanvnode() to use vget()/vrecycle()
to reclaim the vnode.
each one pours more and more sane garbage into the args to that
the mount progresses further and further. Level 8 (at least when
writing this comment) should be the one where mounting actually
succeeds.
Our metric of success is crash / no crash.
There's no substitute for single-stepping do_sys_rename() into ffs
when trying to figure out what error should come from what layer...
well, at least apart from TNT.
still a lot of work to do here, but I want to get to testbuilding
the tree ;)
TODO examples:
* integrate this with rump_syspuffs (and remove the stupid ``sys'' from there)
* integrate with njoly's fs-independent tests
* cleanup a lot
* write more tests
*sigh*, I wish we'd had testing tools like this 5 years ago when
I was writing puffs. It would have made a lot of things a lot
better and a lot easier.
the API? Most likely; will revise it.
Fixes atf-run breaking when running t_psshfs. This does not resolve the
underlying issue though, which is atf-run getting confused trying to
unmount the temporary mount point by itself (I think). (I'm now wondering
if atf should be bothering about unmounting stuff at all. Maybe not. It is
a tricky and uncommon thing.)
their work directory. The purpose is to be able to know which tests intend
to touch the file system and to allow a minor optimization in atf-run.
Define use.fs=true for all those tests requiring it. (This highlights that
some tests currently require modifying the file system but conceptually
they shouldn't be... which leaves room for further improvements/cleanups
later :-)
instead of the source file, because we need to set strict permissions on it.
Otherwise sshd refuses to start.
Note that we cannot set the permissions of the installed ssh_config_key file
to 400 because unprivileged users could then be unable to run the tests.
reason the parser does not accept its contents... You know, one should
always test even trivial changes!
Will review this in more depth tomorrow to find the real root cause of the
problem and rule out a fix for ATF.
be used alongside -D, but as this was not documented I thought it was a bug
and "fixed" -e's behavior locally (so I got the correct output before, but
nobody else).
Also, fix a race condition that could cause the SSH server to not be killed
if the pid file was not written before the kill, which might happen on very
fast machines. There still may be a problem when trying to do the connection
if the server has not yet finished initialization...