1

今日、Jenkin で奇妙なエラーが発生しました。調査の結果、Jenkin SVN プラグインで問題を引き起こす SVN の一部のファイルを削除したことが原因であることがわかりました。

私が調査したところ、このバグは既知のようでしたが、まだ修正されていません。そのため、新しい SVN プラグイン バージョンへのアップグレードは解決策ではありません (Jenkin 1.474 を使用しています)。

私たちの一時的な修正は、「ビルドする前に常にチェックアウトする」ことです。しかし、これは明らかに非常に遅く、大きなプロジェクトでは時間がかかります。そのため、ビルド後のスクリプトで SVN の問題が発生したときにそれを (少なくとも) 検出し、開発者に通知するために電子メールを送信する方法を探しています。

誰もこれについて経験がありますか?私はジェンキンにあまり慣れていないので、助けやポインタがあれば大歓迎です。

エラーログは次のとおりです。

Building in workspace /workspace-directory/workspace
Cleaning up /var/lib/jenkins/jobs/aaa/workspace/.
Deleting /var/lib/jenkins/jobs/aaa/workspace/logs
Deleting /var/lib/jenkins/jobs/aaa/workspace/target
Updating svn://address/trunk@HEAD
U         src/main/some_file.java
D         src/main/another_file.java
U         src/main/other_files.java
ERROR: Failed to update svn://address/trunk@HEAD
org.tmatesoft.svn.core.SVNException: svn: E155017: Checksum mismatch while updating '/var/lib/jenkins/jobs/aaa/workspace/src/main/address/.svn/text-base/StudioSignUpController.java.svn-base'; expected: '39fc987bbeb8cd332e6b94abfb934720', actual: 'e9fa300ee28a2b1e15b2273f4b14ae18'
    at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:85)
    at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:69)
    at org.tmatesoft.svn.core.internal.io.svn.SVNEditModeReader.driveEditor(SVNEditModeReader.java:250)
    at org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.update(SVNRepositoryImpl.java:1503)
    at org.tmatesoft.svn.core.internal.wc16.SVNUpdateClient16.update(SVNUpdateClient16.java:557)
    at org.tmatesoft.svn.core.internal.wc16.SVNUpdateClient16.doUpdate(SVNUpdateClient16.java:414)
    at org.tmatesoft.svn.core.internal.wc16.SVNUpdateClient16.doUpdate(SVNUpdateClient16.java:324)
    at org.tmatesoft.svn.core.internal.wc2.old.SvnOldUpdate.run(SvnOldUpdate.java:27)
    at org.tmatesoft.svn.core.internal.wc2.old.SvnOldUpdate.run(SvnOldUpdate.java:11)
    at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:20)
    at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1221)
    at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:292)
    at org.tmatesoft.svn.core.wc.SVNUpdateClient.doUpdate(SVNUpdateClient.java:315)
    at org.tmatesoft.svn.core.wc.SVNUpdateClient.doUpdate(SVNUpdateClient.java:295)
    at org.tmatesoft.svn.core.wc.SVNUpdateClient.doUpdate(SVNUpdateClient.java:391)
    at hudson.scm.subversion.UpdateUpdater$TaskImpl.perform(UpdateUpdater.java:136)
    at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:144)
    at hudson.scm.SubversionSCM$CheckOutTask.perform(SubversionSCM.java:789)
    at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:770)
    at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:753)
    at hudson.FilePath.act(FilePath.java:842)
    at hudson.FilePath.act(FilePath.java:824)
    at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:743)
    at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:685)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1245)
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:589)
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:494)
    at hudson.model.Run.execute(Run.java:1488)
    at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:477)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:236)
Caused by: org.tmatesoft.svn.core.SVNException: svn: E155017: Checksum mismatch while updating '/xxxxx/.svn/text-base/SignUpController.java.svn-base'; expected: '39fc987bbeb8cd332e6b94abfb934720', actual: 'e9fa300ee28a2b1e15b2273f4b14ae18'
    at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:64)
    at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:51)
    at org.tmatesoft.svn.core.internal.wc.SVNUpdateEditor15.textDeltaEnd(SVNUpdateEditor15.java:637)
    at org.tmatesoft.svn.core.internal.wc.SVNAmbientDepthFilterEditor.textDeltaEnd(SVNAmbientDepthFilterEditor.java:221)
    at org.tmatesoft.svn.core.internal.wc.SVNCancellableEditor.textDeltaEnd(SVNCancellableEditor.java:130)
    at org.tmatesoft.svn.core.internal.io.svn.SVNEditModeReader.processCommand(SVNEditModeReader.java:176)
    at org.tmatesoft.svn.core.internal.io.svn.SVNEditModeReader.driveEditor(SVNEditModeReader.java:232)
    ... 29 more
Caused by: svn: E155017: Checksum mismatch while updating '/xxxx/.svn/text-base/SignUpController.java.svn-base'; expected: '39fc987bbeb8cd332e6b94abfb934720', actual: 'e9fa300ee28a2b1e15b2273f4b14ae18'
    at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:208)
    at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:189)
    at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:141)
    at org.tmatesoft.svn.core.internal.wc.SVNUpdateEditor15.textDeltaEnd(SVNUpdateEditor15.java:634)
    ... 33 more
no change for svn://some_address/trunk since the previous build
No emails were triggered.
4

2 に答える 2

2

一部のビルドで時折問題が発生することがありますが、通常はワークスペースをクリアしてから再ビルドします。(Jenkins から、ジョブに移動し、次に「ワークスペース」に移動します。)

問題を検出し、実際に問題に基づいて何らかのアクションを実行するのに役立つ可能性のあるプラグインがいくつかあります。

  • 警告プラグイン- コンソール出力を解析し、警告として報告する組み込みおよびユーザー定義のパターンを探します。
  • ログ トリガー プラグイン- コンソール ログに特定のトリガーが見つかった場合、ダウンストリーム ジョブをトリガーします。(おそらく、トリガーされるSVN「クリーンアップ」ジョブがありますか?)

これらのうち、私は警告プラグインのみを使用しました。

于 2013-01-22T16:27:42.240 に答える
0

Jenkins JIRAとJetBrainsからのこれらのスレッドは興味深いものです: https : //issues.jenkins-ci.org/browse/JENKINS-14550 http://youtrack.jetbrains.com/issue/IDEA-83673#comment=27-379397

あなたが言ったように、問題はジェンキンスで未解決のままです。JetBrainsは、更新されたsvnkit:svnkit1.7.5-v1でIDEAを修正したと考えています。

また、jetbrainsの問題には、「管理領域の検証」という特別な機能を備えたsvnクライアントである商用ツールSmartSvnを使用して問題を修正するためのいくつかの戦略も記載されています。

Jenkins JIRAの問題をsvnkitに関するメモで更新して、修正されるかどうかを確認します。

編集:実際には、JanuaryJenkinsSubversionプラグイン1.4.5がこの問題を処理しているようです。インストールして手動で再起動した後、不一致はなくなりました。

于 2013-03-20T17:57:26.383 に答える