Data corruption in .cvmfsreflog

Dear all

I have a repo using a S3 backend implemented using OpenStack swift

I have a problem that I am not able to understand (and recover a working environment).

I start a transaction and I try to add a file to the repo:

[root@cvmfs2v209 centos]# cvmfs_server transaction gmalatesta.infn.it
[root@cvmfs2v209 centos]# ll /cvmfs/gmalatesta.infn.it/
total 1
-rw-r–r–. 1 root root 0 May 25 16:29 azqdd
[root@cvmfs2v209 centos]# touch /cvmfs/gmalatesta.infn.it/file2
[root@cvmfs2v209 centos]# ll /cvmfs/gmalatesta.infn.it/
total 1
-rw-r–r–. 1 root root 0 May 25 16:29 azqdd
-rw-r–r–. 1 root root 0 May 25 18:15 file2

The publish fails reporting data corruption with cvmfsreflog:

[root@cvmfs2v209 centos]# cvmfs_server publish gmalatesta.infn.it
Using auto tag ‘generic-2023-05-25T16:16:05Z’
Processing changes…
Waiting for upload of files before committing…
Committing file catalogs…
Wait for all uploads to finish
Exporting repository manifest
Statistics stored at: /var/spool/cvmfs/gmalatesta.infn.it/stats.db
Tagging gmalatesta.infn.it
Flushing file system buffers
Signing new manifest
data corruption in .cvmfsreflog for gmalatesta.infn.it, run cvmfs_server check -r to fix
reflog missing
Signing failed

I then try to abort the transaction:

[root@cvmfs2v209 centos]# cvmfs_server abort gmalatesta.infn.it
You are about to DISCARD ALL CHANGES OF THE CURRENT TRANSACTION for gmalatesta.infn.it! Are you sure (y/N)? y
[root@cvmfs2v209 centos]#

I am not able to I fix the data corruption using “cvmfs_server check -r” as suggested by the error message [*]

Any hint would be really appreciated :slight_smile:

In general: we are seeing a lot of problems with repos hosted on this S3 swift backend. I am trying to see if there are some problems with the infrastructure, but first of all I would like to undertand if there are known problems with swift

Thanks, Massimo

[*]

[root@cvmfs2v209 centos]# cvmfs_server check -r gmalatesta.infn.it
Verifying integrity of gmalatesta.infn.it…
Info: found https://stor.cloud.infn.it/v1/AUTH_79322ee743c74382ad9de8b1d895616a/cvmfsc7v209/gmalatesta.infn.it/.cvmfsreflog with content hash ca87040c78650a6ec85bcbde36106b9b6922c17d
Warning: restored reflog checksum as ca87040c78650a6ec85bcbde36106b9b6922c17d (was: 7c0e551e4b1bbbbaf2fccb690d4ddac649afb6c3)
Warning: a reflog hash is registered in the manifest, re-creating missing reflog
Certificate: 2a8d2b12974b126ab3af60d42f83624854a89294
Metainfo: 85e4f386da0d5d77c7f66cf2f58e10951f24b653
Catalog: cf258553004dc3a94fd02b36024528464043001a Revision: 61
Catalog: 51c6219e4c3409421a89bad4bd900c6ae254bc06 Revision: 60
Catalog: 8bd37a006d60575984bea719a02578b6c8903238 Revision: 59
Catalog: ac2f752c44ea14eeb02a00a12b070d1b63cd5c1e Revision: 58

History: 3483cb99e5c528933c4bdd6269ad6a2c6cafe263
History: 0cbf37e8c4c7efff23b8e1fd9fdca3f9cf67493b
found 212 entries
Inspecting log of references
The .cvmfsreflog has unexpected content hash ca87040c78650a6ec85bcbde36106b9b6922c17d (expected 495cea1516cd58ea64023f59065a1de9f247d7cd)
failed to verify reflog
[root@cvmfs2v209 centos]#

I retried this morning and I don’t see anymore the problem
However I see another issue with the same problem.

I start a transaction and I write a new file in that repo:

[root@cvmfs2v209 centos]# cvmfs_server transaction gmalatesta.infn.it
CernVM-FS transaction error: another transaction is already open

[root@cvmfs2v209 centos]# cvmfs_server publish gmalatesta.infn.it
Using auto tag ‘generic-2023-05-26T06:03:30Z’
Processing changes…
Waiting for upload of files before committing…
Committing file catalogs…
Wait for all uploads to finish
Exporting repository manifest
Statistics stored at: /var/spool/cvmfs/gmalatesta.infn.it/stats.db
Tagging gmalatesta.infn.it
Flushing file system buffers
Signing new manifest
Remounting newly created repository revision

[root@cvmfs2v209 centos]#
[root@cvmfs2v209 centos]# ll /cvmfs/gmalatesta.infn.it/
total 4
-rw-r–r–. 1 root root 0 May 25 16:29 azqdd
-rw-r–r–. 1 root root 3523 May 26 08:03 fstab

So far so good

If then start another transaction I am told that the repo is not based on the newest published revision:

[root@cvmfs2v209 centos]# cvmfs_server transaction gmalatesta.infn.it
gmalatesta.infn.it is not based on the newest published revision
Trying to unmount /cvmfs/gmalatesta.infn.it… success
Trying to unmount /var/spool/cvmfs/gmalatesta.infn.it/rdonly… success
Trying to mount /var/spool/cvmfs/gmalatesta.infn.it/rdonly… success
Trying to mount /cvmfs/gmalatesta.infn.it… success

and the content of the repo is empty:

[root@cvmfs2v209 centos]# ll /cvmfs/gmalatesta.infn.it/
total 1
-rw-r–r–. 1 root root 0 May 25 16:29 azqdd
[root@cvmfs2v209 centos]#

This is not unexpected, but still, you should see your updated show up in the repository. You also don’t see them in the client on a different machine?

If there a public stratum1 where this repository is replicated, could you send us the URL? Otherwise, would it be possible to get access to the publisher?

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.