【问题标题】:Hudson build freezes after writing 60K to disk将 60K 写入磁盘后,Hudson 构建冻结
【发布时间】:2010-07-29 14:39:31
【问题描述】:

环境:

  • WinXP SP3
  • Git:1.7.0.2.msysgit.0
  • 哈德逊 1.367
  • 具有 Gitosis 和 GitWeb 的本地网络上的 Git 服务器

我们正准备从 SVN 迁移到 Git,并且有很多使用 SVN 的工作版本。最初尝试构建 Hudson Git 时使用了 Git 插件。我开始构建,它将进入 git clone 阶段。正好 60k 的磁盘空间将被写入 .git 目录,然后 Hudson/Git 将冻结。 Hudson 只是坐在构建上等待永远。

我禁用了 Git 插件,而是通过 Hudson Execute Windows Batch Command 工具启动了一个 Python 脚本。当 .git 目录使用正好 60k 的磁盘空间时,它会运行并冻结。

我捕获了 Hudson 构建的批处理文件并在命令行上运行它并运行完成。

我的一个想法是作业在 stdout 或 stderr 上阻塞,所以我将两者都重定向到 NULL。不,仍然达到了 60k 的障碍。然后我尝试使用 -q 标志(安静)启动 git clone。还是不行。

哈德逊原木显示很少。这是一次运行的示例:
Jul 28, 2010 5:07:56 PM hudson.model.Run run
INFO: 540UnitTesting-GitTest #32 aborted
java.lang.InterruptedException
at java.lang.ProcessImpl.waitFor(Native Method)
at hudson.Proc$LocalProc.join(Proc.java:222)
at hudson.Launcher$ProcStarter.join(Launcher.java:280)
at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:83)
at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:58)
at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)
at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:601)
at hudson.model.Build$RunnerImpl.build(Build.java:174)
at hudson.model.Build$RunnerImpl.doRun(Build.java:138)
at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:416)
at hudson.model.Run.run(Run.java:1257)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:129)

我的下一步是将 Hudson 迁移到 Linux,尽管我宁愿在未来的某个时候这样做。 是否有人对如何在 Windows 上解决此问题(使用或不使用 Git 插件)有任何想法?

【问题讨论】:

    标签: windows git hudson


    【解决方案1】:

    Git 是否使用一些特定于用户的配置文件?如果是这样,这可能是一个许可问题。大多数人似乎使用 local_system 帐户将 Hudson 作为服务器运行。您有两个选择,首先您可以以不同的用户身份运行 hudson 并通过交互登录并设置 git 创建必要的文件,或者您可以识别丢失的文件并将它们复制到 local_system 帐户的工作区。对于本地系统工作区的正确路径,您需要稍微搜索一下。它通常位于 Windows 文件夹中的某个位置。

    编辑:你检查过哈德逊日志吗?

    【讨论】:

    • 我不认为这是问题所在。看起来 Hudson 和 Git 都以 Windows 管理员身份运行。有 C:\Documents and Settings\administrator\.hudson\ 和 C:\Documents and Settings\administrator\.gitconfig
    • 打开服务工具(在control panel -> administrative tools 下)并检查运行它的用户。如果是 local_system 则不会使用 C:\Documents and Settings\administrator 进行设置。
    • 你是对的,彼得。 Hudson 作为 LocalSystem 运行。我将它设置为管理员用户,但仍然达到了 60k 的障碍。我想周一我会在 Linux 上使用 Hudson 尝试这个设置。
    • 使用管理员帐户登录并手动运行这些步骤。可能你需要接受一些证书。
    • 我在发布问题前几天就这样做了。我复制了 Hudson 执行的确切命令并在命令行上运行它,它成功了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-19
    • 1970-01-01
    • 2021-08-18
    • 1970-01-01
    相关资源
    最近更新 更多