Could not get content from revision

Hello,

I am using SCM-Manager 2.38.1 on Debian 11.4. There are total of 83 SVN repositories only on that server.

This system sometimes shutdown and restarted. After a restart, at the time of initial run (or after a while) of SCM-Manager, I see following errors in logs. I could not understand the reason for them.

Moreover, any repository commit over LAN after initial for the first time is very slow. Second and later are fast. I think it may be related with that indexing error. But, not quite sure.

Any help is appreciated.

2022-09-13 20:45:43.109 [CentralWorkQueue-0] [          ] ERROR sonia.scm.work.UnitOfWork - task sonia.scm.search.LuceneSimpleIndexTask@219db855 failed after 2.221 s
sonia.scm.repository.InternalRepositoryException: could not get content from revision
        at sonia.scm.repository.spi.SvnCatCommand.handleSvnException(SvnCatCommand.java:130)
        at sonia.scm.repository.spi.SvnCatCommand.getCatFromRevision(SvnCatCommand.java:119)
        at sonia.scm.repository.spi.SvnCatCommand.getCatResult(SvnCatCommand.java:92)
        at sonia.scm.repository.spi.SvnCatCommand.getCatResultStream(SvnCatCommand.java:102)
        at sonia.scm.repository.api.CatCommandBuilder.getStream(CatCommandBuilder.java:118)
        at com.cloudogu.scm.search.FileContentFactory.create(FileContentFactory.java:60)
        at com.cloudogu.scm.search.FileContentFactory.create(FileContentFactory.java:50)
        at com.cloudogu.scm.search.Indexer.store(Indexer.java:64)
        at com.cloudogu.scm.search.IndexSyncWorker.updateIndex(IndexSyncWorker.java:99)
        at com.cloudogu.scm.search.IndexSyncWorker.ensureIndexIsUpToDate(IndexSyncWorker.java:94)
        at com.cloudogu.scm.search.IndexSyncWorker.ensureIndexIsUpToDate(IndexSyncWorker.java:79)
        at com.cloudogu.scm.search.IndexSyncWorker.ensureIndexIsUpToDate(IndexSyncWorker.java:68)
        at com.cloudogu.scm.search.IndexSyncer.ensureIndexIsUpToDate(IndexSyncer.java:79)
        at com.cloudogu.scm.search.IndexSyncer.ensureIndexIsUpToDate(IndexSyncer.java:59)
        at com.cloudogu.scm.search.IndexerTask.update(IndexerTask.java:57)
        at sonia.scm.search.LuceneIndexTask.run(LuceneIndexTask.java:68)
        at sonia.scm.work.UnitOfWork.run(UnitOfWork.java:120)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.tmatesoft.svn.core.SVNException: svn: E160017: Attempted to get textual contents of a *non*-file node
        at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:70)
        at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:57)
        at org.tmatesoft.svn.core.internal.io.fs.FSInputStream.createDeltaStream(FSInputStream.java:80)
        at org.tmatesoft.svn.core.internal.io.fs.FSRoot.getFileStreamForPath(FSRoot.java:327)
        at org.tmatesoft.svn.core.internal.io.fs.FSRepository.getFile(FSRepository.java:237)
        at sonia.scm.repository.spi.SvnCatCommand.getCatFromRevision(SvnCatCommand.java:114)
        ... 18 common frames omitted
2022-09-13 20:45:43.479 [CentralWorkQueue-2] [          ] ERROR sonia.scm.work.UnitOfWork - task sonia.scm.search.LuceneSimpleIndexTask@448a6d00 failed after 2.769 s
sonia.scm.repository.InternalRepositoryException: could not get content from revision
        at sonia.scm.repository.spi.SvnCatCommand.handleSvnException(SvnCatCommand.java:130)
        at sonia.scm.repository.spi.SvnCatCommand.getCatFromRevision(SvnCatCommand.java:119)
        at sonia.scm.repository.spi.SvnCatCommand.getCatResult(SvnCatCommand.java:92)
        at sonia.scm.repository.spi.SvnCatCommand.getCatResultStream(SvnCatCommand.java:102)
        at sonia.scm.repository.api.CatCommandBuilder.getStream(CatCommandBuilder.java:118)
        at com.cloudogu.scm.search.FileContentFactory.create(FileContentFactory.java:60)
        at com.cloudogu.scm.search.FileContentFactory.create(FileContentFactory.java:50)
        at com.cloudogu.scm.search.Indexer.store(Indexer.java:64)
        at com.cloudogu.scm.search.IndexSyncWorker.updateIndex(IndexSyncWorker.java:99)
        at com.cloudogu.scm.search.IndexSyncWorker.ensureIndexIsUpToDate(IndexSyncWorker.java:94)
        at com.cloudogu.scm.search.IndexSyncWorker.ensureIndexIsUpToDate(IndexSyncWorker.java:79)
        at com.cloudogu.scm.search.IndexSyncWorker.ensureIndexIsUpToDate(IndexSyncWorker.java:68)
        at com.cloudogu.scm.search.IndexSyncer.ensureIndexIsUpToDate(IndexSyncer.java:79)
        at com.cloudogu.scm.search.IndexSyncer.ensureIndexIsUpToDate(IndexSyncer.java:59)
        at com.cloudogu.scm.search.IndexerTask.update(IndexerTask.java:57)
        at sonia.scm.search.LuceneIndexTask.run(LuceneIndexTask.java:68)
        at sonia.scm.work.UnitOfWork.run(UnitOfWork.java:120)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.tmatesoft.svn.core.SVNException: svn: E160017: Attempted to get textual contents of a *non*-file node
        at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:70)
        at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:57)
        at org.tmatesoft.svn.core.internal.io.fs.FSInputStream.createDeltaStream(FSInputStream.java:80)
        at org.tmatesoft.svn.core.internal.io.fs.FSRoot.getFileStreamForPath(FSRoot.java:327)
        at org.tmatesoft.svn.core.internal.io.fs.FSRepository.getFile(FSRepository.java:237)
        at sonia.scm.repository.spi.SvnCatCommand.getCatFromRevision(SvnCatCommand.java:114)
        ... 18 common frames omitted

In case it is needed, locale information on this system is as following

root@svn:/var/log/scm# locale
LANG=tr_TR.UTF-8
LANGUAGE=
LC_CTYPE="tr_TR.UTF-8"
LC_NUMERIC="tr_TR.UTF-8"
LC_TIME="tr_TR.UTF-8"
LC_COLLATE="tr_TR.UTF-8"
LC_MONETARY="tr_TR.UTF-8"
LC_MESSAGES="tr_TR.UTF-8"
LC_PAPER="tr_TR.UTF-8"
LC_NAME="tr_TR.UTF-8"
LC_ADDRESS="tr_TR.UTF-8"
LC_TELEPHONE="tr_TR.UTF-8"
LC_MEASUREMENT="tr_TR.UTF-8"
LC_IDENTIFICATION="tr_TR.UTF-8"
LC_ALL=
root@svn:/var/log/scm#

Thanks & Regards,
Ertan

Hey Ertan,

thanks for the report. We assume this is because we try to get the content of every single commit for the search index. Some commits may not have “content” but only contain svnprop updates or something similar. We try to fix this asap.

Regarding your slow commits i can only point out to check the workdir caches for repos. The first commit for a new repo is always “slower” but with some caching you can improve the overall speed.

Hi,

I read the Caching for Working Directories link. Since I am not experienced with SCM-Manager, I could not find how to enable and tune parameters in the documentation.

Should I add an entry in /etc/scm/server-config.xml ?
If yes, what should I actually put in there? Document only reveals parameter names, no complete example that I could understand.

Thanks & Regards,
Ertan

Hi @eheimbuch,

I am on version 2.39.0 now and I still see could not get content from revision errors logged. I do not know if they are already fixed. So, I just want to let you know.

Some extracted log lines

sonia.scm.repository.InternalRepositoryException: could not get content from revision
        at sonia.scm.repository.spi.SvnCatCommand.handleSvnException(SvnCatCommand.java:130)
        at sonia.scm.repository.spi.SvnCatCommand.getCatFromRevision(SvnCatCommand.java:119)
        at sonia.scm.repository.spi.SvnCatCommand.getCatResult(SvnCatCommand.java:92)
        at sonia.scm.repository.spi.SvnCatCommand.getCatResultStream(SvnCatCommand.java:102)
        at sonia.scm.repository.api.CatCommandBuilder.getStream(CatCommandBuilder.java:118)
        at com.cloudogu.scm.search.FileContentFactory.create(FileContentFactory.java:60)
        at com.cloudogu.scm.search.FileContentFactory.create(FileContentFactory.java:50)
        at com.cloudogu.scm.search.Indexer.store(Indexer.java:64)
        at com.cloudogu.scm.search.IndexSyncWorker.updateIndex(IndexSyncWorker.java:99)
        at com.cloudogu.scm.search.IndexSyncWorker.ensureIndexIsUpToDate(IndexSyncWorker.java:94)
        at com.cloudogu.scm.search.IndexSyncWorker.ensureIndexIsUpToDate(IndexSyncWorker.java:79)
        at com.cloudogu.scm.search.IndexSyncWorker.ensureIndexIsUpToDate(IndexSyncWorker.java:68)
        at com.cloudogu.scm.search.IndexSyncer.ensureIndexIsUpToDate(IndexSyncer.java:79)
        at com.cloudogu.scm.search.IndexSyncer.ensureIndexIsUpToDate(IndexSyncer.java:59)
        at com.cloudogu.scm.search.IndexerTask.update(IndexerTask.java:57)
        at sonia.scm.search.LuceneIndexTask.run(LuceneIndexTask.java:68)
        at sonia.scm.work.UnitOfWork.run(UnitOfWork.java:120)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.tmatesoft.svn.core.SVNException: svn: E160017: Attempted to get textual contents of a *non*-file node
        at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:70)
        at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:57)
        at org.tmatesoft.svn.core.internal.io.fs.FSInputStream.createDeltaStream(FSInputStream.java:80)
        at org.tmatesoft.svn.core.internal.io.fs.FSRoot.getFileStreamForPath(FSRoot.java:327)
        at org.tmatesoft.svn.core.internal.io.fs.FSRepository.getFile(FSRepository.java:237)
        at sonia.scm.repository.spi.SvnCatCommand.getCatFromRevision(SvnCatCommand.java:114)
        ... 18 common frames omitted
2022-09-27 18:09:19.554 [CentralWorkQueue-0] [          ] INFO  sonia.scm.repository.api.ModificationsCommandBuilder - Get modifications for ModificationsCommandRequest(revision=153, baseRevision=Optional[151]) with disabled cache
2022-09-27 18:09:19.919 [CentralWorkQueue-2] [          ] ERROR sonia.scm.work.UnitOfWork - task sonia.scm.search.LuceneSimpleIndexTask@1acc768 failed after 1.344 s
sonia.scm.repository.InternalRepositoryException: could not get content from revision
        at sonia.scm.repository.spi.SvnCatCommand.handleSvnException(SvnCatCommand.java:130)
        at sonia.scm.repository.spi.SvnCatCommand.getCatFromRevision(SvnCatCommand.java:119)
        at sonia.scm.repository.spi.SvnCatCommand.getCatResult(SvnCatCommand.java:92)
        at sonia.scm.repository.spi.SvnCatCommand.getCatResultStream(SvnCatCommand.java:102)
        at sonia.scm.repository.api.CatCommandBuilder.getStream(CatCommandBuilder.java:118)
        at com.cloudogu.scm.search.FileContentFactory.create(FileContentFactory.java:60)
        at com.cloudogu.scm.search.FileContentFactory.create(FileContentFactory.java:50)
        at com.cloudogu.scm.search.Indexer.store(Indexer.java:64)
        at com.cloudogu.scm.search.IndexSyncWorker.updateIndex(IndexSyncWorker.java:99)
        at com.cloudogu.scm.search.IndexSyncWorker.ensureIndexIsUpToDate(IndexSyncWorker.java:94)
        at com.cloudogu.scm.search.IndexSyncWorker.ensureIndexIsUpToDate(IndexSyncWorker.java:79)
        at com.cloudogu.scm.search.IndexSyncWorker.ensureIndexIsUpToDate(IndexSyncWorker.java:68)
        at com.cloudogu.scm.search.IndexSyncer.ensureIndexIsUpToDate(IndexSyncer.java:79)
        at com.cloudogu.scm.search.IndexSyncer.ensureIndexIsUpToDate(IndexSyncer.java:59)
        at com.cloudogu.scm.search.IndexerTask.update(IndexerTask.java:57)
        at sonia.scm.search.LuceneIndexTask.run(LuceneIndexTask.java:68)
        at sonia.scm.work.UnitOfWork.run(UnitOfWork.java:120)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.tmatesoft.svn.core.SVNException: svn: E160017: Attempted to get textual contents of a *non*-file node
        at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:70)
        at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:57)
        at org.tmatesoft.svn.core.internal.io.fs.FSInputStream.createDeltaStream(FSInputStream.java:80)
        at org.tmatesoft.svn.core.internal.io.fs.FSRoot.getFileStreamForPath(FSRoot.java:327)
        at org.tmatesoft.svn.core.internal.io.fs.FSRepository.getFile(FSRepository.java:237)
        at sonia.scm.repository.spi.SvnCatCommand.getCatFromRevision(SvnCatCommand.java:114)
        ... 18 common frames omitted
2022-09-27 18:09:20.296 [CentralWorkQueue-1] [          ] ERROR sonia.scm.work.UnitOfWork - task sonia.scm.search.LuceneSimpleIndexTask@1324e70a failed after 2.104 s
sonia.scm.repository.InternalRepositoryException: could not get content from revision
        at sonia.scm.repository.spi.SvnCatCommand.handleSvnException(SvnCatCommand.java:130)
        at sonia.scm.repository.spi.SvnCatCommand.getCatFromRevision(SvnCatCommand.java:119)
        at sonia.scm.repository.spi.SvnCatCommand.getCatResult(SvnCatCommand.java:92)
        at sonia.scm.repository.spi.SvnCatCommand.getCatResultStream(SvnCatCommand.java:102)
        at sonia.scm.repository.api.CatCommandBuilder.getStream(CatCommandBuilder.java:118)
        at com.cloudogu.scm.search.FileContentFactory.create(FileContentFactory.java:60)
        at com.cloudogu.scm.search.FileContentFactory.create(FileContentFactory.java:50)
        at com.cloudogu.scm.search.Indexer.store(Indexer.java:64)
        at com.cloudogu.scm.search.IndexSyncWorker.updateIndex(IndexSyncWorker.java:99)
        at com.cloudogu.scm.search.IndexSyncWorker.ensureIndexIsUpToDate(IndexSyncWorker.java:94)
        at com.cloudogu.scm.search.IndexSyncWorker.ensureIndexIsUpToDate(IndexSyncWorker.java:79)
        at com.cloudogu.scm.search.IndexSyncWorker.ensureIndexIsUpToDate(IndexSyncWorker.java:68)
        at com.cloudogu.scm.search.IndexSyncer.ensureIndexIsUpToDate(IndexSyncer.java:79)
        at com.cloudogu.scm.search.IndexSyncer.ensureIndexIsUpToDate(IndexSyncer.java:59)
        at com.cloudogu.scm.search.IndexerTask.update(IndexerTask.java:57)
        at sonia.scm.search.LuceneIndexTask.run(LuceneIndexTask.java:68)
        at sonia.scm.work.UnitOfWork.run(UnitOfWork.java:120)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.tmatesoft.svn.core.SVNException: svn: E160017: Attempted to get textual contents of a *non*-file node
        at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:70)
        at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:57)
        at org.tmatesoft.svn.core.internal.io.fs.FSInputStream.createDeltaStream(FSInputStream.java:80)
        at org.tmatesoft.svn.core.internal.io.fs.FSRoot.getFileStreamForPath(FSRoot.java:327)
        at org.tmatesoft.svn.core.internal.io.fs.FSRepository.getFile(FSRepository.java:237)
        at sonia.scm.repository.spi.SvnCatCommand.getCatFromRevision(SvnCatCommand.java:114)
        ... 18 common frames omitted
2022-09-27 18:09:20.371 [CentralWorkQueue-0] [          ] ERROR sonia.scm.work.UnitOfWork - task sonia.scm.search.LuceneSimpleIndexTask@5fa9247b failed after 873.2 ms
sonia.scm.repository.InternalRepositoryException: could not get content from revision
        at sonia.scm.repository.spi.SvnCatCommand.handleSvnException(SvnCatCommand.java:130)
        at sonia.scm.repository.spi.SvnCatCommand.getCatFromRevision(SvnCatCommand.java:119)
        at sonia.scm.repository.spi.SvnCatCommand.getCatResult(SvnCatCommand.java:92)
        at sonia.scm.repository.spi.SvnCatCommand.getCatResultStream(SvnCatCommand.java:102)
        at sonia.scm.repository.api.CatCommandBuilder.getStream(CatCommandBuilder.java:118)
        at com.cloudogu.scm.search.FileContentFactory.create(FileContentFactory.java:60)
        at com.cloudogu.scm.search.FileContentFactory.create(FileContentFactory.java:50)
        at com.cloudogu.scm.search.Indexer.store(Indexer.java:64)
        at com.cloudogu.scm.search.IndexSyncWorker.updateIndex(IndexSyncWorker.java:99)
        at com.cloudogu.scm.search.IndexSyncWorker.ensureIndexIsUpToDate(IndexSyncWorker.java:94)
        at com.cloudogu.scm.search.IndexSyncWorker.ensureIndexIsUpToDate(IndexSyncWorker.java:79)
        at com.cloudogu.scm.search.IndexSyncWorker.ensureIndexIsUpToDate(IndexSyncWorker.java:68)
        at com.cloudogu.scm.search.IndexSyncer.ensureIndexIsUpToDate(IndexSyncer.java:79)
        at com.cloudogu.scm.search.IndexSyncer.ensureIndexIsUpToDate(IndexSyncer.java:59)
        at com.cloudogu.scm.search.IndexerTask.update(IndexerTask.java:57)
        at sonia.scm.search.LuceneIndexTask.run(LuceneIndexTask.java:68)
        at sonia.scm.work.UnitOfWork.run(UnitOfWork.java:120)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.tmatesoft.svn.core.SVNException: svn: E160017: Attempted to get textual contents of a *non*-file node
        at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:70)
        at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:57)
        at org.tmatesoft.svn.core.internal.io.fs.FSInputStream.createDeltaStream(FSInputStream.java:80)
        at org.tmatesoft.svn.core.internal.io.fs.FSRoot.getFileStreamForPath(FSRoot.java:327)
        at org.tmatesoft.svn.core.internal.io.fs.FSRepository.getFile(FSRepository.java:237)
        at sonia.scm.repository.spi.SvnCatCommand.getCatFromRevision(SvnCatCommand.java:114)
        ... 18 common frames omitted

Thanks & Regards,
Ertan

We are aware of this bug and will try to fix it for the next release. Sorry for the inconvenience. :bowing_man:

Fixed with SCM-Manager 2.40.0