lib/commit: Add some error prefixing for txn commit/tmpdir
To help debug this: https://lists.projectatomic.io/projectatomic-archives/atomic-devel/2017-September/msg00001.html Currently we just get: `error: Commit: unlinkat: Directory not empty` Closes: #1147 Approved by: jlebon
This commit is contained in:
parent
ea4d3d1ac4
commit
3f476ac547
|
|
@ -1131,6 +1131,7 @@ rename_pending_loose_objects (OstreeRepo *self,
|
||||||
GCancellable *cancellable,
|
GCancellable *cancellable,
|
||||||
GError **error)
|
GError **error)
|
||||||
{
|
{
|
||||||
|
GLNX_AUTO_PREFIX_ERROR ("rename pending", error);
|
||||||
g_auto(GLnxDirFdIterator) dfd_iter = { 0, };
|
g_auto(GLnxDirFdIterator) dfd_iter = { 0, };
|
||||||
|
|
||||||
if (!glnx_dirfd_iterator_init_at (self->commit_stagedir_fd, ".", FALSE, &dfd_iter, error))
|
if (!glnx_dirfd_iterator_init_at (self->commit_stagedir_fd, ".", FALSE, &dfd_iter, error))
|
||||||
|
|
@ -1223,11 +1224,10 @@ cleanup_tmpdir (OstreeRepo *self,
|
||||||
GCancellable *cancellable,
|
GCancellable *cancellable,
|
||||||
GError **error)
|
GError **error)
|
||||||
{
|
{
|
||||||
|
GLNX_AUTO_PREFIX_ERROR ("tmpdir cleanup", error);
|
||||||
|
const guint64 curtime_secs = g_get_real_time () / 1000000;
|
||||||
|
|
||||||
g_auto(GLnxDirFdIterator) dfd_iter = { 0, };
|
g_auto(GLnxDirFdIterator) dfd_iter = { 0, };
|
||||||
guint64 curtime_secs;
|
|
||||||
|
|
||||||
curtime_secs = g_get_real_time () / 1000000;
|
|
||||||
|
|
||||||
if (!glnx_dirfd_iterator_init_at (self->tmp_dir_fd, ".", TRUE, &dfd_iter, error))
|
if (!glnx_dirfd_iterator_init_at (self->tmp_dir_fd, ".", TRUE, &dfd_iter, error))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
|
@ -1255,7 +1255,7 @@ cleanup_tmpdir (OstreeRepo *self,
|
||||||
{
|
{
|
||||||
if (errno == ENOENT) /* Did another cleanup win? */
|
if (errno == ENOENT) /* Did another cleanup win? */
|
||||||
continue;
|
continue;
|
||||||
return glnx_throw_errno (error);
|
return glnx_throw_errno_prefix (error, "fstatat(%s)", dent->d_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* First, if it's a directory which needs locking, but it's
|
/* First, if it's a directory which needs locking, but it's
|
||||||
|
|
@ -1282,7 +1282,7 @@ cleanup_tmpdir (OstreeRepo *self,
|
||||||
* from *other* boots
|
* from *other* boots
|
||||||
*/
|
*/
|
||||||
if (!glnx_shutil_rm_rf_at (dfd_iter.fd, dent->d_name, cancellable, error))
|
if (!glnx_shutil_rm_rf_at (dfd_iter.fd, dent->d_name, cancellable, error))
|
||||||
return FALSE;
|
return glnx_prefix_error (error, "Removing %s", dent->d_name);
|
||||||
}
|
}
|
||||||
/* FIXME - move OSTREE_REPO_TMPDIR_FETCHER underneath the
|
/* FIXME - move OSTREE_REPO_TMPDIR_FETCHER underneath the
|
||||||
* staging/boot-id scheme as well, since all of the "did it get
|
* staging/boot-id scheme as well, since all of the "did it get
|
||||||
|
|
@ -1307,7 +1307,7 @@ cleanup_tmpdir (OstreeRepo *self,
|
||||||
if (delta > self->tmp_expiry_seconds)
|
if (delta > self->tmp_expiry_seconds)
|
||||||
{
|
{
|
||||||
if (!glnx_shutil_rm_rf_at (dfd_iter.fd, dent->d_name, cancellable, error))
|
if (!glnx_shutil_rm_rf_at (dfd_iter.fd, dent->d_name, cancellable, error))
|
||||||
return FALSE;
|
return glnx_prefix_error (error, "Removing %s", dent->d_name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue