Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[geogig-dev] Build failed in Jenkins: geogig-master-nightly #321

See <https://build.geoserver.org/job/geogig-master-nightly/321/display/redirect>

------------------------------------------
[...truncated 1.90 MB...]
    Then the response status should be '200'                                                                   # WebAPICucumberHooks.checkStatusCode(int)
    And the xpath "/response/success/text()" equals "true"                                                     # WebAPICucumberHooks.checkXPathEquals(String,String)
    And the xpath "/response/Transaction/ID/text()" equals "{@txId2}"                                          # WebAPICucumberHooks.checkXPathEquals(String,String)
    When I call "GET /repos/repo1/endTransaction?transactionId={@txId}"                                        # WebAPICucumberHooks.callURL(String)
    Then the response status should be '200'                                                                   # WebAPICucumberHooks.checkStatusCode(int)
    And the xpath "/response/success/text()" equals "true"                                                     # WebAPICucumberHooks.checkXPathEquals(String,String)
    And the xpath "/response/Merge/theirs/text()" equals "{@ObjectId|repo1|master}"                            # WebAPICucumberHooks.checkXPathEquals(String,String)
    And the xpath "/response/Merge/ours/text()" equals "{@ObjectId|repo1|@txId|master}"                        # WebAPICucumberHooks.checkXPathEquals(String,String)
    And the xpath "/response/Merge/ancestor/text()" equals "{@ObjectId|repo1|master~1}"                        # WebAPICucumberHooks.checkXPathEquals(String,String)
    And the xpath "/response/Merge/conflicts/text()" equals "1"                                                # WebAPICucumberHooks.checkXPathEquals(String,String)
    And the xpath "/response/Merge/Feature/change/text()" equals "CONFLICT"                                    # WebAPICucumberHooks.checkXPathEquals(String,String)
    And the xpath "/response/Merge/Feature/id/text()" equals "Points/Point.1"                                  # WebAPICucumberHooks.checkXPathEquals(String,String)
    And the xpath "/response/Merge/Feature/ourvalue/text()" equals "0000000000000000000000000000000000000000"  # WebAPICucumberHooks.checkXPathEquals(String,String)
    And the xpath "/response/Merge/Feature/theirvalue/text()" equals "{@ObjectId|repo1|master:Points/Point.1}" # WebAPICucumberHooks.checkXPathEquals(String,String)
    Then I have committed "Point.1" on the "repo1" repo in the "@txId" transaction                             # WebAPICucumberHooks.I_have_committed(String,String,String)
    When I call "GET /repos/repo1/endTransaction?transactionId={@txId}"                                        # WebAPICucumberHooks.callURL(String)
    Then the response status should be '200'                                                                   # WebAPICucumberHooks.checkStatusCode(int)
    And the xpath "/response/success/text()" equals "true"                                                     # WebAPICucumberHooks.checkXPathEquals(String,String)
    And the xpath "/response/Transaction/ID/text()" equals "{@txId}"                                           # WebAPICucumberHooks.checkXPathEquals(String,String)
    When I call "GET /repos/repo1/cat?objectid={@ObjectId|repo1|master:Points/Point.1}"                        # WebAPICucumberHooks.callURL(String)
    Then the response status should be '200'                                                                   # WebAPICucumberHooks.checkStatusCode(int)
    And the xpath "/response/success/text()" equals "true"                                                     # WebAPICucumberHooks.checkXPathEquals(String,String)
    And the xpath "/response/feature/id/text()" equals "{@ObjectId|repo1|master:Points/Point.1}"               # WebAPICucumberHooks.checkXPathEquals(String,String)
    And the xml response should contain "/response/feature/attribute" 3 times                                  # WebAPICucumberHooks.checkXPathCadinality(String,int)
    And the response body should contain "StringProp1_1"                                                       # WebAPICucumberHooks.checkResponseTextContains(String)
    And the response body should contain "1000"                                                                # WebAPICucumberHooks.checkResponseTextContains(String)
    And the response body should contain "POINT (0 0)"                                                         # WebAPICucumberHooks.checkResponseTextContains(String)
@Commands @UpdateRef
Feature: UpdateRef
  The UpdateRef command allows a user to manually change the value of a ref and is supported through the "/repos/{repository}/updateref" endpoint
  The command must be executed using the HTTP GET method
[main] INFO org.locationtech.geogig.rest.repository.MultiRepositoryProvider - Loading repository repo1 using FileRepositoryResolver
[main] INFO org.locationtech.geogig.rest.repository.MultiRepositoryProvider - Disposing repository repo1. Cause: manually removed by remove() or invalidateAll()

  @Status405
  Scenario: Verify wrong HTTP method issues 405 "Method not allowed" # UpdateRef.feature:7
    Given There is an empty repository named repo1                   # WebAPICucumberHooks.setUpEmptyRepo(String)
    When I call "PUT /repos/repo1/updateref"                         # WebAPICucumberHooks.callURL(String)
    Then the response status should be '405'                         # WebAPICucumberHooks.checkStatusCode(int)
    And the response allowed methods should be "GET"                 # WebAPICucumberHooks.checkResponseAllowedMethods(String)
[main] INFO org.locationtech.geogig.rest.repository.MultiRepositoryProvider - Loading repository repo1 using FileRepositoryResolver
[main] INFO org.locationtech.geogig.rest.repository.MultiRepositoryProvider - Disposing repository repo1. Cause: manually removed by remove() or invalidateAll()

  @Status404
  Scenario: UpdateRef outside of a repository issues 404 "Not found"      # UpdateRef.feature:14
    Given There is an empty multirepo server                              # WebAPICucumberHooks.setUpEmptyMultiRepo()
    When I call "GET /repos/repo1/updateref?name=master"                  # WebAPICucumberHooks.callURL(String)
    Then the response status should be '404'                              # WebAPICucumberHooks.checkStatusCode(int)
    And the response ContentType should be "application/xml"              # WebAPICucumberHooks.checkContentType(String)
    And the xpath "/response/success/text()" equals "false"               # WebAPICucumberHooks.checkXPathEquals(String,String)
    And the xpath "/response/error/text()" equals "Repository not found." # WebAPICucumberHooks.checkXPathEquals(String,String)
[main] INFO org.locationtech.geogig.rest.repository.MultiRepositoryProvider - Loading repository repo1 using FileRepositoryResolver
[main] INFO org.locationtech.geogig.rest.repository.MultiRepositoryProvider - Disposing repository repo1. Cause: manually removed by remove() or invalidateAll()

  @Status500
  Scenario: Calling UpdateRef without a ref name issues a 500 status code                       # UpdateRef.feature:23
    Given There is an empty repository named repo1                                              # WebAPICucumberHooks.setUpEmptyRepo(String)
    When I call "GET /repos/repo1/updateref"                                                    # WebAPICucumberHooks.callURL(String)
    Then the response status should be '500'                                                    # WebAPICucumberHooks.checkStatusCode(int)
    And the xpath "/response/error/text()" equals "Required parameter 'name' was not provided." # WebAPICucumberHooks.checkXPathEquals(String,String)
[main] INFO org.locationtech.geogig.rest.repository.MultiRepositoryProvider - Loading repository repo1 using FileRepositoryResolver
[main] INFO org.locationtech.geogig.rest.repository.MultiRepositoryProvider - Disposing repository repo1. Cause: manually removed by remove() or invalidateAll()

  @Status500
  Scenario: Calling UpdateRef without a new value or delete specified issues a 500 status code                                                # UpdateRef.feature:30
    Given There is an empty repository named repo1                                                                                            # WebAPICucumberHooks.setUpEmptyRepo(String)
    When I call "GET /repos/repo1/updateref?name=master"                                                                                      # WebAPICucumberHooks.callURL(String)
    Then the response status should be '500'                                                                                                  # WebAPICucumberHooks.checkStatusCode(int)
    And the xpath "/response/error/text()" equals "Nothing specified to update with, must specify either deletion or new value to update to." # WebAPICucumberHooks.checkXPathEquals(String,String)
[main] INFO org.locationtech.geogig.rest.repository.MultiRepositoryProvider - Loading repository repo1 using FileRepositoryResolver
[main] INFO org.locationtech.geogig.rest.repository.MultiRepositoryProvider - Disposing repository repo1. Cause: manually removed by remove() or invalidateAll()

  @Status500
  Scenario: Calling UpdateRef without a nonexistent name issues a 500 status code # UpdateRef.feature:37
    Given There is an empty repository named repo1                                # WebAPICucumberHooks.setUpEmptyRepo(String)
    When I call "GET /repos/repo1/updateref?name=nonexistent&delete=true"         # WebAPICucumberHooks.callURL(String)
    Then the response status should be '500'                                      # WebAPICucumberHooks.checkStatusCode(int)
    And the xpath "/response/error/text()" equals "Invalid name: nonexistent"     # WebAPICucumberHooks.checkXPathEquals(String,String)
[main] INFO org.locationtech.geogig.rest.repository.MultiRepositoryProvider - Loading repository repo1 using FileRepositoryResolver
[main] INFO org.locationtech.geogig.rest.repository.MultiRepositoryProvider - Loading repository repo2 using FileRepositoryResolver
[main] INFO org.locationtech.geogig.rest.repository.MultiRepositoryProvider - Disposing repository repo1. Cause: manually removed by remove() or invalidateAll()
[main] INFO org.locationtech.geogig.rest.repository.MultiRepositoryProvider - Disposing repository repo2. Cause: manually removed by remove() or invalidateAll()

  Scenario: Calling UpdateRef with a new value updates the ref                              # UpdateRef.feature:43
    Given There is a default multirepo server                                               # WebAPICucumberHooks.setUpDefaultMultiRepo()
    When I call "GET /repos/repo1/updateref?name=master&newValue={@ObjectId|repo1|branch1}" # WebAPICucumberHooks.callURL(String)
    Then the response status should be '200'                                                # WebAPICucumberHooks.checkStatusCode(int)
    And the xpath "/response/success/text()" equals "true"                                  # WebAPICucumberHooks.checkXPathEquals(String,String)
    And the xpath "/response/ChangedRef/name/text()" equals "refs/heads/master"             # WebAPICucumberHooks.checkXPathEquals(String,String)
    And the xpath "/response/ChangedRef/objectId/text()" equals "{@ObjectId|repo1|branch1}" # WebAPICucumberHooks.checkXPathEquals(String,String)
    And the variable "{@ObjectId|repo1|master}" equals "{@ObjectId|repo1|branch1}"          # WebAPICucumberHooks.checkVariableEquals(String,String)
[main] INFO org.locationtech.geogig.rest.repository.MultiRepositoryProvider - Loading repository repo1 using FileRepositoryResolver
[main] INFO org.locationtech.geogig.rest.repository.MultiRepositoryProvider - Loading repository repo2 using FileRepositoryResolver
[main] INFO org.locationtech.geogig.rest.repository.MultiRepositoryProvider - Disposing repository repo1. Cause: manually removed by remove() or invalidateAll()
[main] INFO org.locationtech.geogig.rest.repository.MultiRepositoryProvider - Disposing repository repo2. Cause: manually removed by remove() or invalidateAll()

  Scenario: Calling UpdateRef with the delete parameter deletes the ref                        # UpdateRef.feature:52
    Given There is a default multirepo server                                                  # WebAPICucumberHooks.setUpDefaultMultiRepo()
    When I call "GET /repos/repo1/updateref?name=branch1&delete=true"                          # WebAPICucumberHooks.callURL(String)
    Then the response status should be '200'                                                   # WebAPICucumberHooks.checkStatusCode(int)
    And the xpath "/response/success/text()" equals "true"                                     # WebAPICucumberHooks.checkXPathEquals(String,String)
    And the xpath "/response/ChangedRef/name/text()" equals "refs/heads/branch1"               # WebAPICucumberHooks.checkXPathEquals(String,String)
    And the xpath "/response/ChangedRef/objectId/text()" equals "{@ObjectId|repo1|master^1^2}" # WebAPICucumberHooks.checkXPathEquals(String,String)
    And the variable "{@ObjectId|repo1|branch1}" equals ""                                     # WebAPICucumberHooks.checkVariableEquals(String,String)
@Commands @Version
Feature: Version
  The Version command allows a user to see the geogig version and is supported through the "/repos/{repository}/version" endpoint
  The command must be executed using the HTTP GET method
[main] INFO org.locationtech.geogig.rest.repository.MultiRepositoryProvider - Loading repository repo1 using FileRepositoryResolver
[main] INFO org.locationtech.geogig.rest.repository.MultiRepositoryProvider - Disposing repository repo1. Cause: manually removed by remove() or invalidateAll()

  @Status405
  Scenario: Verify wrong HTTP method issues 405 "Method not allowed" # Version.feature:7
    Given There is an empty repository named repo1                   # WebAPICucumberHooks.setUpEmptyRepo(String)
    When I call "PUT /repos/repo1/version"                           # WebAPICucumberHooks.callURL(String)
    Then the response status should be '405'                         # WebAPICucumberHooks.checkStatusCode(int)
    And the response allowed methods should be "GET"                 # WebAPICucumberHooks.checkResponseAllowedMethods(String)
[main] INFO org.locationtech.geogig.rest.repository.MultiRepositoryProvider - Loading repository repo1 using FileRepositoryResolver
[main] INFO org.locationtech.geogig.rest.repository.MultiRepositoryProvider - Disposing repository repo1. Cause: manually removed by remove() or invalidateAll()

  @Status404
  Scenario: Version outside of a repository issues 404 "Not found"        # Version.feature:14
    Given There is an empty multirepo server                              # WebAPICucumberHooks.setUpEmptyMultiRepo()
    When I call "GET /repos/repo1/version"                                # WebAPICucumberHooks.callURL(String)
    Then the response status should be '404'                              # WebAPICucumberHooks.checkStatusCode(int)
    And the response ContentType should be "application/xml"              # WebAPICucumberHooks.checkContentType(String)
    And the xpath "/response/success/text()" equals "false"               # WebAPICucumberHooks.checkXPathEquals(String,String)
    And the xpath "/response/error/text()" equals "Repository not found." # WebAPICucumberHooks.checkXPathEquals(String,String)
[main] INFO org.locationtech.geogig.rest.repository.MultiRepositoryProvider - Loading repository repo1 using FileRepositoryResolver
[main] INFO org.locationtech.geogig.rest.repository.MultiRepositoryProvider - Disposing repository repo1. Cause: manually removed by remove() or invalidateAll()

  Scenario: Version returns geogig version details                               # Version.feature:22
    Given There is an empty repository named repo1                               # WebAPICucumberHooks.setUpEmptyRepo(String)
    When I call "GET /repos/repo1/version"                                       # WebAPICucumberHooks.callURL(String)
    Then the response status should be '200'                                     # WebAPICucumberHooks.checkStatusCode(int)
    And the xpath "/response/success/text()" equals "true"                       # WebAPICucumberHooks.checkXPathEquals(String,String)
    And the xml response should contain "/response/ProjectVersion" 1 times       # WebAPICucumberHooks.checkXPathCadinality(String,int)
    And the xml response should contain "/response/BuildTime" 1 times            # WebAPICucumberHooks.checkXPathCadinality(String,int)
    And the xml response should contain "/response/BuildUserName" 1 times        # WebAPICucumberHooks.checkXPathCadinality(String,int)
    And the xml response should contain "/response/BuildUserEmail" 1 times       # WebAPICucumberHooks.checkXPathCadinality(String,int)
    And the xml response should contain "/response/GitBranch" 1 times            # WebAPICucumberHooks.checkXPathCadinality(String,int)
    And the xml response should contain "/response/GitCommitID" 1 times          # WebAPICucumberHooks.checkXPathCadinality(String,int)
    And the xml response should contain "/response/GitCommitTime" 1 times        # WebAPICucumberHooks.checkXPathCadinality(String,int)
    And the xml response should contain "/response/GitCommitAuthorName" 1 times  # WebAPICucumberHooks.checkXPathCadinality(String,int)
    And the xml response should contain "/response/GitCommitAuthorEmail" 1 times # WebAPICucumberHooks.checkXPathCadinality(String,int)
    And the xml response should contain "/response/GitCommitMessage" 1 times     # WebAPICucumberHooks.checkXPathCadinality(String,int)

Failed scenarios:
RemoteManagement.feature:113 # Scenario: Supplying a new name with the update parameter renames a remote

381 Scenarios (1 failed, 380 passed)
2972 Steps (1 failed, 10 skipped, 2961 passed)
6m49.810s

java.lang.IllegalStateException: Repository has no HEAD, can't commit
	at com.google.common.base.Preconditions.checkState(Preconditions.java:504)
	at org.locationtech.geogig.porcelain.CommitOp._call(CommitOp.java:278)
	at org.locationtech.geogig.porcelain.CommitOp._call(CommitOp.java:57)
	at org.locationtech.geogig.repository.AbstractGeoGigOp.call(AbstractGeoGigOp.java:154)
	at org.locationtech.geogig.test.TestData.commit(TestData.java:291)
	at org.locationtech.geogig.test.TestData.commit(TestData.java:282)
	at org.locationtech.geogig.test.TestData.addAndCommit(TestData.java:297)
	at org.locationtech.geogig.test.TestData.loadDefaultData(TestData.java:232)
	at org.geogig.web.functional.FunctionalTestContext.setUpDefaultMultiRepoServerWithRemotes(FunctionalTestContext.java:189)
	at org.geogig.web.functional.WebAPICucumberHooks.setUpDefaultMultiRepoWithRemotes(WebAPICucumberHooks.java:193)
	at ✽.Given There is a default multirepo server with remotes(RemoteManagement.feature:114)

Tests run: 3353, Failures: 0, Errors: 2, Skipped: 10, Time elapsed: 419.17 sec <<< FAILURE! - in org.geogig.web.functional.RunFunctionalTest
Given There is a default multirepo server with remotes(Scenario: Supplying a new name with the update parameter renames a remote)  Time elapsed: 0.006 sec  <<< ERROR!
java.lang.IllegalStateException: Repository has no HEAD, can't commit
	at com.google.common.base.Preconditions.checkState(Preconditions.java:504)
	at org.locationtech.geogig.porcelain.CommitOp._call(CommitOp.java:278)
	at org.locationtech.geogig.porcelain.CommitOp._call(CommitOp.java:57)
	at org.locationtech.geogig.repository.AbstractGeoGigOp.call(AbstractGeoGigOp.java:154)
	at org.locationtech.geogig.test.TestData.commit(TestData.java:291)
	at org.locationtech.geogig.test.TestData.commit(TestData.java:282)
	at org.locationtech.geogig.test.TestData.addAndCommit(TestData.java:297)
	at org.locationtech.geogig.test.TestData.loadDefaultData(TestData.java:232)
	at org.geogig.web.functional.FunctionalTestContext.setUpDefaultMultiRepoServerWithRemotes(FunctionalTestContext.java:189)
	at org.geogig.web.functional.WebAPICucumberHooks.setUpDefaultMultiRepoWithRemotes(WebAPICucumberHooks.java:193)
	at ✽.Given There is a default multirepo server with remotes(RemoteManagement.feature:114)

Scenario: Supplying a new name with the update parameter renames a remote  Time elapsed: 0.01 sec  <<< ERROR!
java.lang.IllegalStateException: Repository has no HEAD, can't commit
	at com.google.common.base.Preconditions.checkState(Preconditions.java:504)
	at org.locationtech.geogig.porcelain.CommitOp._call(CommitOp.java:278)
	at org.locationtech.geogig.porcelain.CommitOp._call(CommitOp.java:57)
	at org.locationtech.geogig.repository.AbstractGeoGigOp.call(AbstractGeoGigOp.java:154)
	at org.locationtech.geogig.test.TestData.commit(TestData.java:291)
	at org.locationtech.geogig.test.TestData.commit(TestData.java:282)
	at org.locationtech.geogig.test.TestData.addAndCommit(TestData.java:297)
	at org.locationtech.geogig.test.TestData.loadDefaultData(TestData.java:232)
	at org.geogig.web.functional.FunctionalTestContext.setUpDefaultMultiRepoServerWithRemotes(FunctionalTestContext.java:189)
	at org.geogig.web.functional.WebAPICucumberHooks.setUpDefaultMultiRepoWithRemotes(WebAPICucumberHooks.java:193)
	at ✽.Given There is a default multirepo server with remotes(RemoteManagement.feature:114)


Results :

Tests in error: 
  Repository has no HEAD, can't commit
  Repository has no HEAD, can't commit

Tests run: 3450, Failures: 0, Errors: 2, Skipped: 10

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] GeoGig ............................................. SUCCESS [  8.732 s]
[INFO] GeoGig Core API .................................... SUCCESS [ 17.887 s]
[INFO] GeoGig Core ........................................ SUCCESS [02:00 min]
[INFO] Replication and synchronization .................... SUCCESS [ 55.212 s]
[INFO] GeoGig DataStore Implementation .................... SUCCESS [04:08 min]
[INFO] Storage backends ................................... SUCCESS [  2.773 s]
[INFO] RocksDB storage backend ............................ SUCCESS [ 54.818 s]
[INFO] GeoGig Command Line Interface ...................... SUCCESS [04:26 min]
[INFO] PostgreSQL Storage Backend ......................... SUCCESS [  3.650 s]
[INFO] GeoTools Extension ................................. SUCCESS [01:23 min]
[INFO] Web modules ........................................ SUCCESS [  2.053 s]
[INFO] GeoGig Web API ..................................... SUCCESS [01:36 min]
[INFO] GeoGig WebApp ...................................... SUCCESS [  1.563 s]
[INFO] GeoGig Web API Automated Functional Tests .......... FAILURE [07:02 min]
[INFO] GeoGig CLI App ..................................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 23:05 min
[INFO] Finished at: 2018-06-07T12:08:08+00:00
[INFO] Final Memory: 118M/1448M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.17:test (default-test) on project geogig-web-api-functional-tests: There are test failures.
[ERROR] 
[ERROR] Please refer to <https://build.geoserver.org/job/geogig-master-nightly/ws/src/web/functional/target/surefire-reports> for the individual test results.
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[ERROR] 
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <goals> -rf :geogig-web-api-functional-tests
Build step 'Invoke top-level Maven targets' marked build as failure
[Cucumber Tests] Parsing results.
[Cucumber Tests] parsing cucumber.json
[Cucumber Tests] parsing cucumber.json
[Cucumber Tests] parsing cucumber.json
[Cucumber Tests] parsing cucumber.json


Back to the top