2013-07-17 11 views
5

Also, meine Google-Fu ist schwach ... Ich konnte keine andere Instanz meiner Fehler finden.Teamcity NuGet Repository Korruption

Ich habe seit einem Tag Probleme mit meinem teamcity nugget Repository. NuGet-Downloads vom Repo schlagen mit unerwarteten EOF- oder beschädigten Paketwarnungen fehl.

Soweit ich feststellen kann, ist dies kein Hardwarefehler, der vm und der vm-host melden keine Festplattenfehler.

Um die Verletzung hinzuzufügen, wird die teamcity Logdatei 'teamcity-javaLogging-2013-07-17.log' unbegrenzt (+3GB in der Zeit, um dies zu schreiben, wobei 10MB pro Tag normal ist) mit den Stacktraces wie der eine darunter.

Meine Teamcity Version 7.1.5 (Build 24400)

Wer weiß, wie aus diesem Fehler zu erholen?

Ich habe noch nicht genug Mut gesammelt, um alle Caches zu löschen, die ich auf der Teamcity-Admin-Seite (Administration> Diagnose> Caches) finden kann, da auf dieser Seite eine Warnung in gruseligem Gelb dazu existiert.

Unten ist ein Beispiel der Stacktraces, die ich bekomme.

17-jul-2013 3:00:02 net.sf.ehcache.store.DiskStore get 
SEVERE: provider-nugetCache: Could not read disk store element for key 2731. Error was unexpected EOF in middle of data block 
java.io.StreamCorruptedException: unexpected EOF in middle of data block 
     at java.io.ObjectInputStream$BlockDataInputStream.refill(Unknown Source) 
     at java.io.ObjectInputStream$BlockDataInputStream.read(Unknown Source) 
     at java.io.DataInputStream.readInt(Unknown Source) 
     at java.io.ObjectInputStream$BlockDataInputStream.readInt(Unknown Source) 
     at java.io.ObjectInputStream.readInt(Unknown Source) 
     at jetbrains.buildServer.serverSide.metadata.impl.metadata.SerializableEntry.readSplitted(SerializableEntry.java:5) 
     at jetbrains.buildServer.serverSide.metadata.impl.metadata.EntryImpl.readObjectInternal(EntryImpl.java:34) 
     at jetbrains.buildServer.serverSide.metadata.impl.metadata.SerializableEntry.readExternal(SerializableEntry.java:16) 
     at java.io.ObjectInputStream.readExternalData(Unknown Source) 
     at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) 
     at java.io.ObjectInputStream.readObject0(Unknown Source) 
     at java.io.ObjectInputStream.defaultReadFields(Unknown Source) 
     at java.io.ObjectInputStream.readSerialData(Unknown Source) 
     at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) 
     at java.io.ObjectInputStream.readObject0(Unknown Source) 
     at java.io.ObjectInputStream.readObject(Unknown Source) 
     at net.sf.ehcache.store.DiskStore.loadElementFromDiskElement(DiskStore.java:313) 
     at net.sf.ehcache.store.DiskStore.get(DiskStore.java:268) 
     at net.sf.ehcache.Cache.searchInDiskStore(Cache.java:1290) 
     at net.sf.ehcache.Cache.get(Cache.java:904) 
     at net.sf.ehcache.Cache.get(Cache.java:879) 
     at jetbrains.buildServer.serverSide.metadata.impl.cache.TypedCacheImpl.getValue(TypedCacheImpl.java:3) 
     at jetbrains.buildServer.serverSide.metadata.impl.metadata.MetadataStorageImpl.getReportedKeys(MetadataStorageImpl.java:7) 
     at jetbrains.buildServer.serverSide.metadata.impl.metadata.MetadataStorageImpl.removeBuild(MetadataStorageImpl.java:45) 
     at jetbrains.buildServer.serverSide.metadata.impl.indexer.BuildIndexCleaner.performCleanup(BuildIndexCleaner.java:16) 
     at jetbrains.buildServer.serverSide.impl.cleanup.HistoryEntryCleaner.cleanupExtensionsData(HistoryEntryCleaner.java:38) 
     at jetbrains.buildServer.serverSide.impl.cleanup.HistoryEntryCleaner.performCleanup(HistoryEntryCleaner.java:138) 
     at jetbrains.buildServer.serverSide.impl.cleanup.HistoryEntryCleaner.performCleanup(HistoryEntryCleaner.java:132) 
     at jetbrains.buildServer.serverSide.impl.cleanup.ServerCleanupManagerImpl$3.performCleanup(ServerCleanupManagerImpl.java) 
     at jetbrains.buildServer.serverSide.db.DBFacade$1$1.doInConnection(DBFacade.java:178) 
     at jetbrains.buildServer.serverSide.db.DBFacade$6.doInConnection(DBFacade.java:415) 
     at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:341) 
     at jetbrains.buildServer.serverSide.db.DBFacade._runSql(DBFacade.java:411) 
     at jetbrains.buildServer.serverSide.db.DBFacade.access$000(DBFacade.java:33) 
     at jetbrains.buildServer.serverSide.db.DBFacade$1.doInTransaction(DBFacade.java:174) 
     at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130) 
     at jetbrains.buildServer.serverSide.db.DBFacade.compact(DBFacade.java:171) 
     at jetbrains.buildServer.serverSide.impl.cleanup.ServerCleanupManagerImpl.startCleanup(ServerCleanupManagerImpl.java:74) 
     at jetbrains.buildServer.serverSide.impl.cleanup.ServerCleanupManagerImpl$2.run(ServerCleanupManagerImpl.java:0) 
     at java.util.TimerThread.mainLoop(Unknown Source) 
     at java.util.TimerThread.run(Unknown Source) 
17-jul-2013 3:00:02 net.sf.ehcache.store.DiskStore remove 
SEVERE: provider-nugetCache: Could not remove disk store entry for key 2731. Error was unexpected EOF in middle of data block 
java.io.StreamCorruptedException: unexpected EOF in middle of data block 
     at java.io.ObjectInputStream$BlockDataInputStream.refill(Unknown Source) 
     at java.io.ObjectInputStream$BlockDataInputStream.read(Unknown Source) 
     at java.io.DataInputStream.readInt(Unknown Source) 
     at java.io.ObjectInputStream$BlockDataInputStream.readInt(Unknown Source) 
     at java.io.ObjectInputStream.readInt(Unknown Source) 
     at jetbrains.buildServer.serverSide.metadata.impl.metadata.SerializableEntry.readSplitted(SerializableEntry.java:5) 
     at jetbrains.buildServer.serverSide.metadata.impl.metadata.EntryImpl.readObjectInternal(EntryImpl.java:34) 
     at jetbrains.buildServer.serverSide.metadata.impl.metadata.SerializableEntry.readExternal(SerializableEntry.java:16) 
     at java.io.ObjectInputStream.readExternalData(Unknown Source) 
     at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) 
     at java.io.ObjectInputStream.readObject0(Unknown Source) 
     at java.io.ObjectInputStream.defaultReadFields(Unknown Source) 
     at java.io.ObjectInputStream.readSerialData(Unknown Source) 
     at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) 
     at java.io.ObjectInputStream.readObject0(Unknown Source) 
     at java.io.ObjectInputStream.readObject(Unknown Source) 
     at net.sf.ehcache.store.DiskStore.loadElementFromDiskElement(DiskStore.java:313) 
     at net.sf.ehcache.store.DiskStore.remove(DiskStore.java:483) 
     at net.sf.ehcache.Cache.remove(Cache.java:1465) 
     at net.sf.ehcache.Cache.remove(Cache.java:1392) 
     at net.sf.ehcache.Cache.remove(Cache.java:1350) 
     at net.sf.ehcache.Cache.remove(Cache.java:1328) 
     at jetbrains.buildServer.serverSide.metadata.impl.cache.TypedCacheImpl.remove(TypedCacheImpl.java:16) 
     at jetbrains.buildServer.serverSide.metadata.impl.metadata.MetadataStorageImpl.removeBuild(MetadataStorageImpl.java:30) 
     at jetbrains.buildServer.serverSide.metadata.impl.indexer.BuildIndexCleaner.performCleanup(BuildIndexCleaner.java:16) 
     at jetbrains.buildServer.serverSide.impl.cleanup.HistoryEntryCleaner.cleanupExtensionsData(HistoryEntryCleaner.java:38) 
     at jetbrains.buildServer.serverSide.impl.cleanup.HistoryEntryCleaner.performCleanup(HistoryEntryCleaner.java:138) 
     at jetbrains.buildServer.serverSide.impl.cleanup.HistoryEntryCleaner.performCleanup(HistoryEntryCleaner.java:132) 
     at jetbrains.buildServer.serverSide.impl.cleanup.ServerCleanupManagerImpl$3.performCleanup(ServerCleanupManagerImpl.java) 
     at jetbrains.buildServer.serverSide.db.DBFacade$1$1.doInConnection(DBFacade.java:178) 
     at jetbrains.buildServer.serverSide.db.DBFacade$6.doInConnection(DBFacade.java:415) 
     at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:341) 
     at jetbrains.buildServer.serverSide.db.DBFacade._runSql(DBFacade.java:411) 
     at jetbrains.buildServer.serverSide.db.DBFacade.access$000(DBFacade.java:33) 
     at jetbrains.buildServer.serverSide.db.DBFacade$1.doInTransaction(DBFacade.java:174) 
     at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130) 
     at jetbrains.buildServer.serverSide.db.DBFacade.compact(DBFacade.java:171) 
     at jetbrains.buildServer.serverSide.impl.cleanup.ServerCleanupManagerImpl.startCleanup(ServerCleanupManagerImpl.java:74) 
     at jetbrains.buildServer.serverSide.impl.cleanup.ServerCleanupManagerImpl$2.run(ServerCleanupManagerImpl.java:0) 
     at java.util.TimerThread.mainLoop(Unknown Source) 
     at java.util.TimerThread.run(Unknown Source) 

Antwort

4

Soweit ich weiß, ist Teamcity NuGet Server unter der Bereinigungspolitik Artefakt in definierten „Administration | Projektbezogene Einstellungen | Erstellen Geschichte Aufräumarbeiten“, so stellen Sie sicher, dass Ihr Paket ist immer noch da !!

Mein persönlicher Rat ist IMMER, einen dedizierten nugget Server einzurichten. Sie können eine kostenlos für das Klonen der offiziellen NugetGallery project on GitHub einrichten: das ist die gleiche Codebase von nuget.org, so dass Sie eine vertraute Benutzeroberfläche und erhöhte Leistungen haben (NugetGallery Lucene.NET Indexing-Funktionen nutzen).

1

Es scheint, dass der Index für den TeamCity NuGet Server irgendwie beschädigt wurde, die Pakete waren in Ordnung, also war das Löschen des Caches die Lösung.

Allerdings habe ich nicht herausgefunden, wie der Index neu bevölkert werden könnte.

gewarnt, die nuget Paket-Cache zu löschen entfernt alle Pakete aus dem Teamcity NuGet Server, so dass Sie mit einer sauberen Weste starten ...

2

Wie Remco sagte, können Sie die Paket-Cache löschen, indem Sie auf http gehen: //{teamcity}/admin/admin.html?item=diagnostics & Tab = Cache und klicken Sie auf "Reset" neben "BuildsMetadata". Dadurch werden alle NuGet-Pakete aus Ihrem Feed entfernt, bis Sie erneut indizieren.

Sie können die von einem einzelnen Build generierten NuGet-Pakete neu indizieren, indem Sie die REST-API von TeamCity aufrufen. Um alle Builds neu zu indizieren, müssten Sie ein Skript schreiben, um alle Builds zu durchlaufen und jeden neu zu indizieren.

Bugreports:
http://youtrack.jetbrains.com/issue/TW-25384
http://youtrack.jetbrains.com/issue/TW-23576

Probe reindex Skript:
http://youtrack.jetbrains.com/issue/TW-19411#comment=27-408230