txn_checkpoint() returns EINVAL if the environment isn't properly opened. We want to ignore that case -- if we don't, then we exit cleanup_fs() early which causes a second call to cleanup_fs() when the pool is cleaned, which fails again, which (typically) means cleanup_fs_apr() calls fs->warning() which is the defalt_warning_func, which aborts.
txn_checkpoint() returns EINVAL if the environment isn't properly opened. We
want to ignore that case -- if we don't, then we exit cleanup_fs() early
which causes a second call to cleanup_fs() when the pool is cleaned, which
fails again, which (typically) means cleanup_fs_apr() calls fs->warning()
which is the defalt_warning_func, which aborts.

Solution: ignore the EINVAL and complete the close (zero out fs->env).
cleanup_fs() returns quickly on the invocation from cleanup_fs_apr() and all
is well.

(cleanup_fs): handle EINVAL from txn_checkpoint()


git-svn-id: f8a4e5e023278da1e04e203c7fe051e3c4285d88@838396 13f79535-47bb-0310-9956-ffa450edef68

YueLinHo/Subversion,wbond/subversion,YueLinHo/Subversion,wbond/subversion,YueLinHo/Subversion,wbond/subversion,YueLinHo/Subversion,YueLinHo/Subversion,wbond/subversion,wbond/subversion,YueLinHo/Subversion,YueLinHo/Subversion,wbond/subversion,wbond/subversion,YueLinHo/Subversion