Uploaded image for project: 'Qt Quality Assurance Infrastructure'
  1. Qt Quality Assurance Infrastructure
  2. QTQAINFRA-499

Build may fail in init-repository on "The remote end hung up unexpectedly"

    XMLWordPrintable

Details

    • Bug
    • Resolution: Out of scope
    • P3: Somewhat important
    • None
    • 2012q1
    • Git, Test scripts
    • None

    Description

      It seems it's possible for a git server hangup to cause a build to terminate, despite the "automatic retry" logic apparently working correctly.

      From http://testresults.qt-project.org/ci/QtPim_master_Integration/build_00575/macx-clang_developer-build_OSX_10.7/log.txt.gz :

      4/12/12 6:29:59 PM EST: + git clone git://gitorious.org/qt/qtjsbackend.git qtjsbackend
      4/12/12 6:29:59 PM EST: Initialized empty Git repository in /Users/qt/.pulse2-agent/data/recipes/179082499/base/qt/qtjsbackend/.git/
      4/12/12 6:30:01 PM EST: fatal: The remote end hung up unexpectedly
      4/12/12 6:30:01 PM EST: [GitMirror::try_local WARNING] Problem with the local object cache - will try mirror"/usr/bin/git fetch git___gitorious_org____qt_qtjsbackend" unexpectedly returned exit value 128 at (eval 60) line 13
      4/12/12 6:30:01 PM EST:  at /Users/qt/bin/git line 90
      
      4/12/12 6:30:01 PM EST: fatal: The remote end hung up unexpectedly
      4/12/12 6:30:01 PM EST: Cloning into qtjsbackend...
      4/12/12 6:30:01 PM EST: git clone git://gitorious.org/qt/qtjsbackend.git qtjsbackend exited with status 32768 at ./init-repository line 289
      4/12/12 6:30:01 PM EST: 	Qt::InitRepository::exe('Qt::InitRepository=HASH(0x7fa492828938)', 'git', 'clone', 'git://gitorious.org/qt/qtjsbackend.git', 'qtjsbackend') called at ./init-repository line 566
      4/12/12 6:30:01 PM EST: 	Qt::InitRepository::git_clone_one_submodule('Qt::InitRepository=HASH(0x7fa492828938)', 'qtjsbackend', 'git://gitorious.org/qt/qtjsbackend.git') called at ./init-repository line 486
      4/12/12 6:30:01 PM EST: 	Qt::InitRepository::git_clone_all_submodules('Qt::InitRepository=HASH(0x7fa492828938)') called at ./init-repository line 620
      4/12/12 6:30:01 PM EST: 	Qt::InitRepository::run('Qt::InitRepository=HASH(0x7fa492828938)') called at ./init-repository line 629
      4/12/12 6:30:01 PM EST: QtQA::TestScript: The first attempt at running this command:
      4/12/12 6:30:01 PM EST: QtQA::TestScript:     $command = ['perl','./init-repository','-no-webkit','--module-subset=qtjsbackend,qtjsondb,qtbase,qtdeclarative,qtxmlpatterns,qtpim','-force'];
      4/12/12 6:30:01 PM EST: QtQA::TestScript: ... failed with exit code 2.
      4/12/12 6:30:01 PM EST: QtQA::TestScript: It will be retried because this error:
      4/12/12 6:30:01 PM EST: QtQA::TestScript:    fatal: The remote end hung up unexpectedly
      4/12/12 6:30:01 PM EST: QtQA::TestScript: ...was considered possibly junk due to matching (?msi-x:^fatal: The remote end hung up unexpectedly$)
      4/12/12 6:30:01 PM EST: QtQA::TestScript:  at _qtqa_latest/scripts/qt/qtmod_test.pl line 517
      4/12/12 6:30:01 PM EST: 	QtQA::ModuleTest::run_git_checkout('QtQA::ModuleTest=HASH(0x7ff773158ad8)') called at _qtqa_latest/scripts/qt/qtmod_test.pl line 200
      4/12/12 6:30:01 PM EST: 	QtQA::ModuleTest::run('QtQA::ModuleTest=HASH(0x7ff773158ad8)') called at _qtqa_latest/scripts/qt/qtmod_test.pl line 1128
      4/12/12 6:30:01 PM EST: 	QtQA::ModuleTest::main('QtQA::ModuleTest') called at _qtqa_latest/scripts/qt/qtmod_test.pl line 1133
      4/12/12 6:30:01 PM EST: + git config --remove-section submodule.qtbase
      4/12/12 6:30:01 PM EST: + git config --remove-section submodule.qtdeclarative
      4/12/12 6:30:02 PM EST: + git config --remove-section submodule.qtjsbackend
      4/12/12 6:30:02 PM EST: + git config --remove-section submodule.qtjsondb
      4/12/12 6:30:02 PM EST: + git config --remove-section submodule.qtpim
      4/12/12 6:30:02 PM EST: + git config --remove-section submodule.qtxmlpatterns
      4/12/12 6:30:02 PM EST: + git submodule init
      4/12/12 6:30:02 PM EST: Submodule 'qlalr' (git://gitorious.org/qt/qlalr.git) registered for path 'qlalr'
      4/12/12 6:30:02 PM EST: Submodule 'qt3d' (git://gitorious.org/qt/qt3d.git) registered for path 'qt3d'
      4/12/12 6:30:02 PM EST: Submodule 'qtactiveqt' (git://gitorious.org/qt/qtactiveqt.git) registered for path 'qtactiveqt'
      4/12/12 6:30:02 PM EST: Submodule 'qtbase' (git://gitorious.org/qt/qtbase.git) registered for path 'qtbase'
      4/12/12 6:30:02 PM EST: Submodule 'qtconnectivity' (git://gitorious.org/qt/qtconnectivity.git) registered for path 'qtconnectivity'
      4/12/12 6:30:02 PM EST: Submodule 'qtdeclarative' (git://gitorious.org/qt/qtdeclarative.git) registered for path 'qtdeclarative'
      4/12/12 6:30:02 PM EST: Submodule 'qtdoc' (git://gitorious.org/qt/qtdoc.git) registered for path 'qtdoc'
      4/12/12 6:30:02 PM EST: Submodule 'qtdocgallery' (git://gitorious.org/qt/qtdocgallery.git) registered for path 'qtdocgallery'
      4/12/12 6:30:02 PM EST: Submodule 'qtfeedback' (git://gitorious.org/qt/qtfeedback.git) registered for path 'qtfeedback'
      4/12/12 6:30:02 PM EST: Submodule 'qtgraphicaleffects' (git://gitorious.org/qt/qtgraphicaleffects.git) registered for path 'qtgraphicaleffects'
      4/12/12 6:30:02 PM EST: Submodule 'qtimageformats' (git://gitorious.org/qt/qtimageformats.git) registered for path 'qtimageformats'
      4/12/12 6:30:02 PM EST: Submodule 'qtjsbackend' (git://gitorious.org/qt/qtjsbackend.git) registered for path 'qtjsbackend'
      4/12/12 6:30:02 PM EST: Submodule 'qtjsondb' (git://gitorious.org/qt/qtjsondb.git) registered for path 'qtjsondb'
      4/12/12 6:30:02 PM EST: Submodule 'qtlocation' (git://gitorious.org/qt/qtlocation.git) registered for path 'qtlocation'
      4/12/12 6:30:02 PM EST: Submodule 'qtmultimedia' (git://gitorious.org/qt/qtmultimedia.git) registered for path 'qtmultimedia'
      4/12/12 6:30:02 PM EST: Submodule 'qtphonon' (git://gitorious.org/qt/qtphonon.git) registered for path 'qtphonon'
      4/12/12 6:30:02 PM EST: Submodule 'qtpim' (git://gitorious.org/qt/qtpim.git) registered for path 'qtpim'
      4/12/12 6:30:02 PM EST: Submodule 'qtqa' (git://gitorious.org/qt/qtqa.git) registered for path 'qtqa'
      4/12/12 6:30:02 PM EST: Submodule 'qtquick1' (git://gitorious.org/qt/qtquick1.git) registered for path 'qtquick1'
      4/12/12 6:30:02 PM EST: Submodule 'qtrepotools' (git://gitorious.org/qt/qtrepotools.git) registered for path 'qtrepotools'
      4/12/12 6:30:03 PM EST: Submodule 'qtscript' (git://gitorious.org/qt/qtscript.git) registered for path 'qtscript'
      4/12/12 6:30:03 PM EST: Submodule 'qtsensors' (git://gitorious.org/qt/qtsensors.git) registered for path 'qtsensors'
      4/12/12 6:30:03 PM EST: Submodule 'qtsvg' (git://gitorious.org/qt/qtsvg.git) registered for path 'qtsvg'
      4/12/12 6:30:03 PM EST: Submodule 'qtsystems' (git://gitorious.org/qt/qtsystems.git) registered for path 'qtsystems'
      4/12/12 6:30:03 PM EST: Submodule 'qttools' (git://gitorious.org/qt/qttools.git) registered for path 'qttools'
      4/12/12 6:30:03 PM EST: Submodule 'qttranslations' (git://gitorious.org/qt/qttranslations.git) registered for path 'qttranslations'
      4/12/12 6:30:03 PM EST: Submodule 'qtwayland' (git://gitorious.org/qt/qtwayland.git) registered for path 'qtwayland'
      4/12/12 6:30:03 PM EST: Submodule 'qtwebkit' (git://gitorious.org/qtwebkit/qt5-module.git) registered for path 'qtwebkit'
      4/12/12 6:30:03 PM EST: Submodule 'qtwebkit-examples-and-demos' (git://gitorious.org/qt/qtwebkit-examples-and-demos.git) registered for path 'qtwebkit-examples-and-demos'
      4/12/12 6:30:03 PM EST: Submodule 'qtxmlpatterns' (git://gitorious.org/qt/qtxmlpatterns.git) registered for path 'qtxmlpatterns'
      4/12/12 6:30:03 PM EST: + git config commit.template /Users/qt/.pulse2-agent/data/recipes/179082499/base/qt/.commit-template
      4/12/12 6:30:04 PM EST: + git config --remove submodule.qtwebkit
      4/12/12 6:30:04 PM EST: + git config --remove submodule.qtwebkit-examples-and-demos
      4/12/12 6:30:04 PM EST: + git config --remove submodule.qlalr
      4/12/12 6:30:04 PM EST: + git config --remove submodule.qt3d
      4/12/12 6:30:04 PM EST: + git config --remove submodule.qtactiveqt
      4/12/12 6:30:04 PM EST: + git config --remove submodule.qtconnectivity
      4/12/12 6:30:04 PM EST: + git config --remove submodule.qtdoc
      4/12/12 6:30:04 PM EST: + git config --remove submodule.qtdocgallery
      4/12/12 6:30:04 PM EST: + git config --remove submodule.qtfeedback
      4/12/12 6:30:04 PM EST: + git config --remove submodule.qtgraphicaleffects
      4/12/12 6:30:04 PM EST: + git config --remove submodule.qtimageformats
      4/12/12 6:30:04 PM EST: + git config --remove submodule.qtlocation
      4/12/12 6:30:06 PM EST: + git config --remove submodule.qtmultimedia
      4/12/12 6:30:06 PM EST: + git config --remove submodule.qtphonon
      4/12/12 6:30:06 PM EST: + git config --remove submodule.qtqa
      4/12/12 6:30:06 PM EST: + git config --remove submodule.qtquick1
      4/12/12 6:30:06 PM EST: + git config --remove submodule.qtrepotools
      4/12/12 6:30:06 PM EST: + git config --remove submodule.qtscript
      4/12/12 6:30:06 PM EST: + git config --remove submodule.qtsensors
      4/12/12 6:30:06 PM EST: + git config --remove submodule.qtsvg
      4/12/12 6:30:06 PM EST: + git config --remove submodule.qtsystems
      4/12/12 6:30:06 PM EST: + git config --remove submodule.qttools
      4/12/12 6:30:06 PM EST: + git config --remove submodule.qttranslations
      4/12/12 6:30:06 PM EST: + git config --remove submodule.qtwayland
      4/12/12 6:30:06 PM EST: + git config submodule.qtbase.url git://gitorious.org/qt/qtbase.git
      4/12/12 6:30:06 PM EST: + git config submodule.qtdeclarative.url git://gitorious.org/qt/qtdeclarative.git
      4/12/12 6:30:06 PM EST: + git config submodule.qtjsbackend.url git://gitorious.org/qt/qtjsbackend.git
      4/12/12 6:30:06 PM EST: + git config submodule.qtjsondb.url git://gitorious.org/qt/qtjsondb.git
      4/12/12 6:30:06 PM EST: + git config submodule.qtpim.url git://gitorious.org/qt/qtpim.git
      4/12/12 6:30:06 PM EST: + git config submodule.qtxmlpatterns.url git://gitorious.org/qt/qtxmlpatterns.git
      4/12/12 6:30:06 PM EST: + git config remote.origin.url git://gitorious.org/qt/qtbase.git
      4/12/12 6:30:06 PM EST: + git fetch git://gitorious.org/qt/qtbase.git
      4/12/12 6:30:09 PM EST: From git://gitorious.org/qt/qtbase
      4/12/12 6:30:09 PM EST:  * branch            HEAD       -> FETCH_HEAD
      4/12/12 6:30:09 PM EST: + git config commit.template /Users/qt/.pulse2-agent/data/recipes/179082499/base/qt/qtbase/../.commit-template
      4/12/12 6:30:09 PM EST: + git config remote.gerrit.url ssh://codereview.qt-project.org/qt/qtbase
      4/12/12 6:30:09 PM EST: + git config remote.gerrit.fetch +refs/heads/*:refs/remotes/gerrit/*
      4/12/12 6:30:09 PM EST: + git config remote.origin.url git://gitorious.org/qt/qtdeclarative.git
      4/12/12 6:30:09 PM EST: + git fetch git://gitorious.org/qt/qtdeclarative.git
      4/12/12 6:30:09 PM EST: From git://gitorious.org/qt/qtdeclarative
      4/12/12 6:30:09 PM EST:  * branch            HEAD       -> FETCH_HEAD
      4/12/12 6:30:09 PM EST: + git config commit.template /Users/qt/.pulse2-agent/data/recipes/179082499/base/qt/qtdeclarative/../.commit-template
      4/12/12 6:30:09 PM EST: + git config remote.gerrit.url ssh://codereview.qt-project.org/qt/qtdeclarative
      4/12/12 6:30:09 PM EST: + git config remote.gerrit.fetch +refs/heads/*:refs/remotes/gerrit/*
      4/12/12 6:30:14 PM EST: + git config remote.origin.url git://gitorious.org/qt/qtjsbackend.git
      4/12/12 6:30:14 PM EST: + git fetch git://gitorious.org/qt/qtjsbackend.git
      4/12/12 6:32:34 PM EST: From git://gitorious.org/qt/qtjsbackend
      4/12/12 6:32:34 PM EST:  * branch            HEAD       -> FETCH_HEAD
      4/12/12 6:32:34 PM EST: + git config commit.template /Users/qt/.pulse2-agent/data/recipes/179082499/base/qt/qtjsbackend/../.commit-template
      4/12/12 6:32:34 PM EST: + git config remote.gerrit.url ssh://codereview.qt-project.org/qt/qtjsbackend
      4/12/12 6:32:34 PM EST: + git config remote.gerrit.fetch +refs/heads/*:refs/remotes/gerrit/*
      4/12/12 6:32:34 PM EST: + git clone git://gitorious.org/qt/qtjsondb.git qtjsondb
      4/12/12 6:32:34 PM EST: Initialized empty Git repository in /Users/qt/.pulse2-agent/data/recipes/179082499/base/qt/qtjsondb/.git/
      4/12/12 6:32:34 PM EST: From git://gitorious.org/qt/qtjsondb
      4/12/12 6:32:34 PM EST:  * [new branch]      buildsystem -> git___gitorious_org____qt_qtjsondb/buildsystem
      4/12/12 6:32:34 PM EST:  * [new branch]      hbtree     -> git___gitorious_org____qt_qtjsondb/hbtree
      4/12/12 6:32:34 PM EST:  * [new branch]      kvs        -> git___gitorious_org____qt_qtjsondb/kvs
      4/12/12 6:32:34 PM EST:  * [new branch]      master     -> git___gitorious_org____qt_qtjsondb/master
      4/12/12 6:32:44 PM EST: From git://gitorious.org/qt/qtjsondb
      4/12/12 6:32:44 PM EST:  * [new branch]      buildsystem -> origin/buildsystem
      4/12/12 6:32:44 PM EST:  * [new branch]      hbtree     -> origin/hbtree
      4/12/12 6:32:44 PM EST:  * [new branch]      kvs        -> origin/kvs
      4/12/12 6:32:44 PM EST:  * [new branch]      master     -> origin/master
      4/12/12 6:32:49 PM EST: origin/HEAD set to master
      4/12/12 6:32:49 PM EST: Already on 'master'
      4/12/12 6:32:49 PM EST: Branch master set up to track remote branch master from origin.
      4/12/12 6:32:49 PM EST: + git config remote.origin.url git://gitorious.org/qt/qtjsondb.git
      4/12/12 6:32:49 PM EST: + git config commit.template /Users/qt/.pulse2-agent/data/recipes/179082499/base/qt/qtjsondb/../.commit-template
      4/12/12 6:32:49 PM EST: + git config remote.gerrit.url ssh://codereview.qt-project.org/qt/qtjsondb
      4/12/12 6:32:49 PM EST: + git config remote.gerrit.fetch +refs/heads/*:refs/remotes/gerrit/*
      4/12/12 6:32:49 PM EST: + git clone git://gitorious.org/qt/qtpim.git qtpim
      4/12/12 6:32:49 PM EST: Initialized empty Git repository in /Users/qt/.pulse2-agent/data/recipes/179082499/base/qt/qtpim/.git/
      4/12/12 6:32:54 PM EST: From git://gitorious.org/qt/qtpim
      4/12/12 6:32:54 PM EST:  * [new branch]      master     -> git___gitorious_org____qt_qtpim/master
      4/12/12 6:32:59 PM EST: From git://gitorious.org/qt/qtpim
      4/12/12 6:32:59 PM EST:  * [new branch]      master     -> origin/master
      4/12/12 6:33:04 PM EST: origin/HEAD set to master
      4/12/12 6:33:04 PM EST: Already on 'master'
      4/12/12 6:33:04 PM EST: Branch master set up to track remote branch master from origin.
      4/12/12 6:33:04 PM EST: + git config remote.origin.url git://gitorious.org/qt/qtpim.git
      4/12/12 6:33:04 PM EST: + git config commit.template /Users/qt/.pulse2-agent/data/recipes/179082499/base/qt/qtpim/../.commit-template
      4/12/12 6:33:04 PM EST: + git config remote.gerrit.url ssh://codereview.qt-project.org/qt/qtpim
      4/12/12 6:33:04 PM EST: + git config remote.gerrit.fetch +refs/heads/*:refs/remotes/gerrit/*
      4/12/12 6:33:04 PM EST: + git clone git://gitorious.org/qt/qtxmlpatterns.git qtxmlpatterns
      4/12/12 6:33:04 PM EST: Initialized empty Git repository in /Users/qt/.pulse2-agent/data/recipes/179082499/base/qt/qtxmlpatterns/.git/
      4/12/12 6:33:09 PM EST: From git://gitorious.org/qt/qtxmlpatterns
      4/12/12 6:33:09 PM EST:  * [new branch]      master     -> git___gitorious_org____qt_qtxmlpatterns/master
      4/12/12 6:33:19 PM EST: From git://gitorious.org/qt/qtxmlpatterns
      4/12/12 6:33:19 PM EST:  * [new branch]      master     -> origin/master
      4/12/12 6:33:19 PM EST:  * [new tag]         qt-v5.0.0-alpha1 -> qt-v5.0.0-alpha1
      4/12/12 6:33:22 PM EST: origin/HEAD set to master
      4/12/12 6:33:22 PM EST: Already on 'master'
      4/12/12 6:33:22 PM EST: Branch master set up to track remote branch master from origin.
      4/12/12 6:33:22 PM EST: + git config remote.origin.url git://gitorious.org/qt/qtxmlpatterns.git
      4/12/12 6:33:22 PM EST: + git config commit.template /Users/qt/.pulse2-agent/data/recipes/179082499/base/qt/qtxmlpatterns/../.commit-template
      4/12/12 6:33:22 PM EST: + git config remote.gerrit.url ssh://codereview.qt-project.org/qt/qtxmlpatterns
      4/12/12 6:33:22 PM EST: + git config remote.gerrit.fetch +refs/heads/*:refs/remotes/gerrit/*
      4/12/12 6:33:22 PM EST: + git submodule update --recursive
      4/12/12 6:33:22 PM EST: Submodule path 'qtbase': checked out 'c75ef6e2231163493b0d8878670ec7cada291001'
      4/12/12 6:33:22 PM EST: Submodule path 'qtdeclarative': checked out 'df2adc4a45a94c332104ef4114a8d25da21f8c98'
      4/12/12 6:33:22 PM EST: fatal: Needed a single revision
      4/12/12 6:33:22 PM EST: Unable to find current revision in submodule path 'qtjsbackend'
      4/12/12 6:33:22 PM EST: git submodule update --recursive exited with status 256 at ./init-repository line 289
      4/12/12 6:33:22 PM EST: 	Qt::InitRepository::exe('Qt::InitRepository=HASH(0x7fbf6a028938)', 'git', 'submodule', 'update', '--recursive') called at ./init-repository line 490
      4/12/12 6:33:22 PM EST: 	Qt::InitRepository::git_clone_all_submodules('Qt::InitRepository=HASH(0x7fbf6a028938)') called at ./init-repository line 620
      4/12/12 6:33:22 PM EST: 	Qt::InitRepository::run('Qt::InitRepository=HASH(0x7fbf6a028938)') called at ./init-repository line 629
      4/12/12 6:33:22 PM EST:  exited with status 512 at /Users/qt/.pulse2-agent/data/recipes/179082499/base/_qtqa_latest/scripts/qt/../lib/perl5/QtQA/TestScript.pm line 234
      4/12/12 6:33:22 PM EST: 	QtQA::TestScript::_handle_exe_status('QtQA::ModuleTest=HASH(0x7ff773158ad8)', 512) called at /Users/qt/.pulse2-agent/data/recipes/179082499/base/_qtqa_latest/scripts/qt/../lib/perl5/QtQA/TestScript.pm line 267
      4/12/12 6:33:22 PM EST: 	QtQA::TestScript::_reliable_exe('QtQA::ModuleTest=HASH(0x7ff773158ad8)', 'HASH(0x7ff773234b08)', 'perl', './init-repository', '-no-webkit', '--module-subset=qtjsbackend,qtjsondb,qtbase,qtdeclarative,qtx...', '-force') called at /Users/qt/.pulse2-agent/data/recipes/179082499/base/_qtqa_latest/scripts/qt/../lib/perl5/QtQA/TestScript.pm line 225
      4/12/12 6:33:22 PM EST: 	QtQA::TestScript::exe('QtQA::ModuleTest=HASH(0x7ff773158ad8)', 'HASH(0x7ff773350f98)', 'perl', './init-repository', '-no-webkit', '--module-subset=qtjsbackend,qtjsondb,qtbase,qtdeclarative,qtx...', '-force') called at _qtqa_latest/scripts/qt/qtmod_test.pl line 517
      4/12/12 6:33:22 PM EST: 	QtQA::ModuleTest::run_git_checkout('QtQA::ModuleTest=HASH(0x7ff773158ad8)') called at _qtqa_latest/scripts/qt/qtmod_test.pl line 200
      4/12/12 6:33:23 PM EST: 	QtQA::ModuleTest::run('QtQA::ModuleTest=HASH(0x7ff773158ad8)') called at _qtqa_latest/scripts/qt/qtmod_test.pl line 1128
      4/12/12 6:33:23 PM EST: 	QtQA::ModuleTest::main('QtQA::ModuleTest') called at _qtqa_latest/scripts/qt/qtmod_test.pl line 1133
      4/12/12 6:33:23 PM EST: `perl _qtqa_latest/scripts/setup.pl --install && perl _qtqa_latest/scripts/qt/qtmod_test.pl' exited with code 3 at _testconfig/test.pl line 1103.
      

      The initial qtjsbackend clone failed. It can be seen from the QtQA::TestScript messages that the failure was decided to be bogus and thus retried. However, eventually a "Unable to find current revision in submodule path 'qtjsbackend'" error occurred, almost certainly meaning that the qtjsbackend directory exists but was not a complete git clone.

      The bug may be either in the git_mirror.pl wrapper script, or in init-repository. init-repository ought to be idempotent, or as close to idempotent as feasible.

      Attachments

        Activity

          People

            tosaraja Tony Sarajärvi
            rmcgover Rohan McGovern (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: