{
  "_class" : "hudson.model.FreeStyleBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.model.Cause$UserIdCause",
          "shortDescription" : "Started by user Neels Hofmeyr",
          "userId" : "neels",
          "userName" : "Neels Hofmeyr"
        }
      ]
    },
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "com.sonyericsson.rebuild.RebuildCause",
          "shortDescription" : "Rebuilds build #12",
          "upstreamBuild" : 12,
          "upstreamProject" : "osmo-gsm-tester_manual-run",
          "upstreamUrl" : "view/osmo-gsm-tester/job/osmo-gsm-tester_manual-run/"
        }
      ]
    },
    {
      "_class" : "hudson.model.ParametersAction",
      "parameters" : [
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "OSMO_GSM_TESTER_BRANCH",
          "value" : "refs/heads/neels/error_reporting"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "OSMO_GSM_TESTER_OPTS",
          "value" : ""
        }
      ]
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "refs/remotes/origin/neels/error_reporting" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 13,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "e0d6be2cbf9a25aeabfd7b82bac7e53ab0604c46",
            "branch" : [
              {
                "SHA1" : "e0d6be2cbf9a25aeabfd7b82bac7e53ab0604c46",
                "name" : "refs/remotes/origin/neels/error_reporting"
              }
            ]
          },
          "revision" : {
            "SHA1" : "e0d6be2cbf9a25aeabfd7b82bac7e53ab0604c46",
            "branch" : [
              {
                "SHA1" : "e0d6be2cbf9a25aeabfd7b82bac7e53ab0604c46",
                "name" : "refs/remotes/origin/neels/error_reporting"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "e0d6be2cbf9a25aeabfd7b82bac7e53ab0604c46",
        "branch" : [
          {
            "SHA1" : "e0d6be2cbf9a25aeabfd7b82bac7e53ab0604c46",
            "name" : "refs/remotes/origin/neels/error_reporting"
          }
        ]
      },
      "remoteUrls" : [
        "git://git.osmocom.org/osmo-gsm-tester"
      ],
      "scmName" : ""
    },
    {
      "_class" : "hudson.plugins.git.GitTagAction"
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "hudson.tasks.junit.TestResultAction",
      "failCount" : 3,
      "skipCount" : 0,
      "totalCount" : 4,
      "urlName" : "testReport"
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    {
      "displayPath" : "log",
      "fileName" : "log",
      "relativePath" : "trial-13/last_run/log"
    },
    {
      "displayPath" : "trial-13-run.tgz",
      "fileName" : "trial-13-run.tgz",
      "relativePath" : "trial-13-run.tgz"
    }
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#13",
  "duration" : 947043,
  "estimatedDuration" : 262130,
  "executor" : None,
  "fullDisplayName" : "osmo-gsm-tester_manual-run #13",
  "id" : "13",
  "inProgress" : False,
  "keepLog" : True,
  "number" : 13,
  "queueId" : 29965,
  "result" : "FAILURE",
  "timestamp" : 1497266512567,
  "url" : "https://jenkins.osmocom.org/jenkins/job/osmo-gsm-tester_manual-run/13/",
  "builtOn" : "osmo-gsm-tester-rnd",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/osmo_gsm_tester/test.py"
        ],
        "commitId" : "daf96e449e48ab43fa452d49d3d2d9e7a14e2840",
        "timestamp" : 1497262066000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/pespin",
          "fullName" : "Pau Espin Pedrol"
        },
        "authorEmail" : "pespin@sysmocom.de",
        "comment" : "test: Remove unused variable Failure\u000aCommit 6ccda11a98afd6f4459e9ff1c24de4ad4450de23 removed its use but\u000aforgot to remove it on this line.\u000aChange-Id: I90375ce1e4b8e0b7e140df908323bc269e0baf40\u000a",
        "date" : "2017-06-12 12:07:46 +0200",
        "id" : "daf96e449e48ab43fa452d49d3d2d9e7a14e2840",
        "msg" : "test: Remove unused variable Failure",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/osmo_gsm_tester/test.py"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/osmo_gsm_tester/suite.py",
          "src/osmo_gsm_tester/report.py",
          "src/osmo_gsm_tester/trial.py"
        ],
        "commitId" : "61b07213199e40f1fa1c52ec528b11d9ab4bdc47",
        "timestamp" : 1497264474000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/neels",
          "fullName" : "Neels Hofmeyr"
        },
        "authorEmail" : "nhofmeyr@sysmocom.de",
        "comment" : "junit result: also write for aborted runs\u000aEven if aborted due to signal, write a JUnit report XML, and make sure\u000ato indicate the runs as erratic.\u000aChange-Id: I7a334ef3463896c543c0fe592d3903c15e67d4c4\u000a",
        "date" : "2017-06-12 12:47:54 +0200",
        "id" : "61b07213199e40f1fa1c52ec528b11d9ab4bdc47",
        "msg" : "junit result: also write for aborted runs",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/osmo_gsm_tester/suite.py"
          },
          {
            "editType" : "edit",
            "file" : "src/osmo_gsm_tester/report.py"
          },
          {
            "editType" : "edit",
            "file" : "src/osmo_gsm_tester/trial.py"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/osmo_gsm_tester/trial.py",
          "src/osmo_gsm_tester/bts_osmotrx.py",
          "src/osmo_gsm_tester/ofono_client.py",
          "src/osmo_gsm_tester/process.py",
          "src/osmo_gsm_tester/template.py",
          "src/osmo_gsm_tester/osmo_bsc.py",
          "src/osmo_gsm_tester/resource.py",
          "src/osmo_gsm_tester/event_loop.py",
          "src/osmo_gsm_tester/osmo_nitb.py",
          "src/osmo_gsm_tester/osmo_ctrl.py",
          "src/osmo_gsm_tester/osmo_hlr.py",
          "src/osmo_gsm_tester/test.py",
          "src/osmo_gsm_tester/schema.py",
          "src/osmo_gsm_tester/osmo_msc.py",
          "src/osmo_gsm_tester/bts_sysmo.py",
          "src/osmo_gsm_tester/config.py",
          "src/osmo_gsm_tester/suite.py",
          "src/osmo_gsm_tester/log.py",
          "src/osmo_gsm_tester/osmo_mgcpgw.py",
          "src/osmo_gsm_tester/pcap_recorder.py"
        ],
        "commitId" : "b068c6e911c11549d1d412d92955e8090e98d137",
        "timestamp" : 1497266363000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/neels",
          "fullName" : "Neels Hofmeyr"
        },
        "authorEmail" : "nhofmeyr@sysmocom.de",
        "comment" : "refactor logging: drop 'with', simplify\u000aRefactor logging to simplify use: drop the 'with Origin' style\u000acompletely, and instead use the python stack to determine which objects\u000aare created by which, and which object to associate a log statement\u000awith.\u000aThe new way: we rely on the convention that each class instance has a\u000alocal\u000a'self' referencing the object instance. If we need to find an origin as\u000aa new object's parent, or to associate a log message with, we traverse\u000aeach stack frame, fetching the first local 'self' object that is a\u000alog.Origin class instance.\u000aWe just call log() and it finds an Origin object to log for.\u000aWhen an exception happens, we first escalate the exception to where ever\u000ait is handled, and only then the log.log_exn() function finds an Origin\u000aobject in the traceback's stack frames.\u000aHence the 'with log.Origin' happens implicitly, no more hassles.\u000aFurthermore, any frame can place additional information in a local\u000avariable called log_ctx. This automatically inserted in the ancestry\u000aassociated with a log statement.\u000aChange-Id: I5f9b53150f2bb6fa9d63ce27f0806f0ca6a45e90\u000a",
        "date" : "2017-06-12 13:19:23 +0200",
        "id" : "b068c6e911c11549d1d412d92955e8090e98d137",
        "msg" : "refactor logging: drop 'with', simplify",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/osmo_gsm_tester/resource.py"
          },
          {
            "editType" : "edit",
            "file" : "src/osmo_gsm_tester/log.py"
          },
          {
            "editType" : "edit",
            "file" : "src/osmo_gsm_tester/trial.py"
          },
          {
            "editType" : "edit",
            "file" : "src/osmo_gsm_tester/bts_sysmo.py"
          },
          {
            "editType" : "edit",
            "file" : "src/osmo_gsm_tester/template.py"
          },
          {
            "editType" : "edit",
            "file" : "src/osmo_gsm_tester/event_loop.py"
          },
          {
            "editType" : "edit",
            "file" : "src/osmo_gsm_tester/process.py"
          },
          {
            "editType" : "edit",
            "file" : "src/osmo_gsm_tester/osmo_nitb.py"
          },
          {
            "editType" : "edit",
            "file" : "src/osmo_gsm_tester/osmo_msc.py"
          },
          {
            "editType" : "edit",
            "file" : "src/osmo_gsm_tester/osmo_hlr.py"
          },
          {
            "editType" : "edit",
            "file" : "src/osmo_gsm_tester/osmo_bsc.py"
          },
          {
            "editType" : "edit",
            "file" : "src/osmo_gsm_tester/osmo_mgcpgw.py"
          },
          {
            "editType" : "edit",
            "file" : "src/osmo_gsm_tester/pcap_recorder.py"
          },
          {
            "editType" : "edit",
            "file" : "src/osmo_gsm_tester/test.py"
          },
          {
            "editType" : "edit",
            "file" : "src/osmo_gsm_tester/schema.py"
          },
          {
            "editType" : "edit",
            "file" : "src/osmo_gsm_tester/bts_osmotrx.py"
          },
          {
            "editType" : "edit",
            "file" : "src/osmo_gsm_tester/osmo_ctrl.py"
          },
          {
            "editType" : "edit",
            "file" : "src/osmo_gsm_tester/ofono_client.py"
          },
          {
            "editType" : "edit",
            "file" : "src/osmo_gsm_tester/config.py"
          },
          {
            "editType" : "edit",
            "file" : "src/osmo_gsm_tester/suite.py"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/osmo_gsm_tester/log.py"
        ],
        "commitId" : "e0d6be2cbf9a25aeabfd7b82bac7e53ab0604c46",
        "timestamp" : 1497266363000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/neels",
          "fullName" : "Neels Hofmeyr"
        },
        "authorEmail" : "nhofmeyr@sysmocom.de",
        "comment" : "log.Origin: ensure to avoid parent loops\u000aChange-Id: I10a2f956beeda38ba1378eace9453eb911aae1a7\u000a",
        "date" : "2017-06-12 13:19:23 +0200",
        "id" : "e0d6be2cbf9a25aeabfd7b82bac7e53ab0604c46",
        "msg" : "log.Origin: ensure to avoid parent loops",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/osmo_gsm_tester/log.py"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/pespin",
      "fullName" : "Pau Espin Pedrol"
    },
    {
      "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/neels",
      "fullName" : "Neels Hofmeyr"
    }
  ]
}