Skip to content

Increase in pipeline ref creation failure from 10:commit: verify file system operations: read: path was modified after read error

We are seeing an uptick of whole CI pipeline failures due to a pipeline ref not created before the runner starts a job. Sample pipeline: https://gitlab.com/gitlab-org/gitlab/-/pipelines/1821480587

Each job fails with something like:

Initialized empty Git repository in /builds/gitlab-org/gitlab/.git/
Created fresh repository.
fatal: couldn't find remote ref refs/pipelines/1821480587

If we look at the Sentry logs in https://new-sentry.gitlab.net/organizations/gitlab/issues/1521340/?project=3&query=is%3Aunresolved+correlation_id%3A01JVCS2Z586DF52K2H3GKMAGB2&referrer=issue-stream&statsPeriod=14d&stream_index=0, we see:

Gitlab::Git::CommandError

10:commit: verify file system operations: read: path was modified after read.

This error comes from ReadWriteConflictError: https://gitlab.com/gitlab-org/gitaly/-/blob/c4db6ec453df2c6b68d538ff07486e8d8554f4ae/internal/gitaly/storage/storagemgr/partition/conflict/fshistory/errors.go#L17-19

There are really only two places this is created:

% git grep NewReadWriteConflictError | grep -v test
internal/gitaly/storage/storagemgr/partition/conflict/fshistory/errors.go:// NewReadWriteConflictError returns an error detailing a conflicting read.
internal/gitaly/storage/storagemgr/partition/conflict/fshistory/errors.go:func NewReadWriteConflictError(path string, readLSN, writeLSN storage.LSN) error {
internal/gitaly/storage/storagemgr/partition/conflict/fshistory/history.go:		return NewReadWriteConflictError(path, tx.readLSN, node.writeLSN)
internal/gitaly/storage/storagemgr/partition/conflict/fshistory/tree.go:			return nil, NewReadWriteConflictError(currentPath, tx.readLSN, child.writeLSN)```

@engwan wondered if we're seeing an uptick of failures due to gitlab!187651 (merged).

@samihiltunen This error looks directly related to Gitaly transactions, however.

Edited by Stan Hu
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information