{
  "_class" : "hudson.matrix.MatrixBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.triggers.SCMTrigger$SCMTriggerCause",
          "shortDescription" : "Started by an SCM change"
        }
      ]
    },
    {
      
    },
    {
      "_class" : "hudson.model.ParametersAction",
      "parameters" : [
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "BRANCH",
          "value" : "master"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "EMAIL_NOTIFICATIONS",
          "value" : "jenkins-notifications@lists.osmocom.org laforge@gnumonks.org"
        }
      ]
    },
    {
      "_class" : "jenkins.metrics.impl.TimeInQueueAction",
      "blockedDurationMillis" : 0,
      "blockedTimeMillis" : 0,
      "buildableDurationMillis" : 0,
      "buildableTimeMillis" : 0,
      "buildingDurationMillis" : 416452,
      "executingTimeMillis" : 416452,
      "executorUtilization" : 1.0,
      "subTaskCount" : 0,
      "waitingDurationMillis" : 5813,
      "waitingTimeMillis" : 5813
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "origin/master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 8057,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "02d0614de8e0b425fbcead6fbb33be04a5f2a59f",
            "branch" : [
              {
                "SHA1" : "02d0614de8e0b425fbcead6fbb33be04a5f2a59f",
                "name" : "origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "02d0614de8e0b425fbcead6fbb33be04a5f2a59f",
            "branch" : [
              {
                "SHA1" : "02d0614de8e0b425fbcead6fbb33be04a5f2a59f",
                "name" : "origin/master"
              }
            ]
          }
        },
        "refs/remotes/origin/osmith/wip" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 7778,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "5d36edfcb4e3a9524bc1d51621c8a40d5e516ef2",
            "branch" : [
              {
                "SHA1" : "5d36edfcb4e3a9524bc1d51621c8a40d5e516ef2",
                "name" : "refs/remotes/origin/osmith/wip"
              }
            ]
          },
          "revision" : {
            "SHA1" : "5d36edfcb4e3a9524bc1d51621c8a40d5e516ef2",
            "branch" : [
              {
                "SHA1" : "5d36edfcb4e3a9524bc1d51621c8a40d5e516ef2",
                "name" : "refs/remotes/origin/osmith/wip"
              }
            ]
          }
        },
        "refs/remotes/origin/master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 5174,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "13fe9ccf55a4758e3de115c0a562f8746eaeae53",
            "branch" : [
              {
                "SHA1" : "13fe9ccf55a4758e3de115c0a562f8746eaeae53",
                "name" : "refs/remotes/origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "13fe9ccf55a4758e3de115c0a562f8746eaeae53",
            "branch" : [
              {
                "SHA1" : "13fe9ccf55a4758e3de115c0a562f8746eaeae53",
                "name" : "refs/remotes/origin/master"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "02d0614de8e0b425fbcead6fbb33be04a5f2a59f",
        "branch" : [
          {
            "SHA1" : "02d0614de8e0b425fbcead6fbb33be04a5f2a59f",
            "name" : "origin/master"
          }
        ]
      },
      "remoteUrls" : [
        "https://gerrit.osmocom.org/osmocom-bb"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#8057",
  "duration" : 416452,
  "estimatedDuration" : 237985,
  "executor" : None,
  "fullDisplayName" : "master-osmocom-bb #8057",
  "id" : "8057",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 8057,
  "queueId" : 14892,
  "result" : "SUCCESS",
  "timestamp" : 1769434206208,
  "url" : "https://jenkins.osmocom.org/jenkins/view/DAHDI/job/master-osmocom-bb/8057/",
  "builtOn" : "",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/target/trx_toolkit/burst_fwd.py"
        ],
        "commitId" : "bc80c197cd73126ab37d42463e467bda9d7dc42c",
        "timestamp" : 1769434171000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/fixeria",
          "fullName" : "Vadim Yanitskiy"
        },
        "authorEmail" : "vyanitskiy@sysmocom.de",
        "comment" : "trx_toolkit/burst_fwd: Use 'is' instead of '==' when checking if trx is src_trx\u000a\u000aIn python `a is b` is just a pointer comparison of locations of objects\u000aa and b, while `a == b` can involve doing arbitrary code invoking __eq__\u000aand is generally slower even without __eq__ defined:\u000a\u000a    In [1]: class A:\u000a       ...:     pass\u000a       ...:\u000a\u000a    In [2]: a = A()\u000a    In [4]: b = A()\u000a\u000a    In [5]: a == a\u000a    Out[5]: True\u000a\u000a    In [6]: a == b\u000a    Out[6]: False\u000a\u000a    In [7]: a is a\u000a    Out[7]: True\u000a\u000a    In [8]: a is b\u000a    Out[8]: False\u000a\u000a    In [9]: %timeit a is a\u000a    84.2 ns ± 0.133 ns per loop (mean ± std. dev. of 7 runs, 10,000,000 loops each)\u000a\u000a    In [10]: %timeit a is b\u000a    87.5 ns ± 0.0736 ns per loop (mean ± std. dev. of 7 runs, 10,000,000 loops each)\u000a\u000a    In [11]: %timeit a == a\u000a    100 ns ± 0.659 ns per loop (mean ± std. dev. of 7 runs, 10,000,000 loops each)\u000a\u000a    In [12]: %timeit a == b\u000a    116 ns ± 0.399 ns per loop (mean ± std. dev. of 7 runs, 10,000,000 loops each)\u000a\u000aBurstForwarder.forward_msg is one of the hottest places, as e.g. for every\u000areceived packet from BTS it forwards it to multiple Ms receivers. It\u000amakes sense to be careful and save cycles here.\u000a\u000aChange-Id: Ic9e16720daeb348b5f9c535c24a682db53a93529\u000a",
        "date" : "2026-01-26 13:29:31 +0000",
        "id" : "bc80c197cd73126ab37d42463e467bda9d7dc42c",
        "msg" : "trx_toolkit/burst_fwd: Use 'is' instead of '==' when checking if trx is",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/target/trx_toolkit/burst_fwd.py"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/target/trx_toolkit/fake_trx.py",
          "src/target/trx_toolkit/burst_fwd.py",
          "src/target/trx_toolkit/clck_gen.py"
        ],
        "commitId" : "5c593892596d896ac9f1129548ccefc6b26670e3",
        "timestamp" : 1769434171000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/fixeria",
          "fullName" : "Vadim Yanitskiy"
        },
        "authorEmail" : "vyanitskiy@sysmocom.de",
        "comment" : "trx_toolkit/*: Don't use `del x; x = None` idiom\u000a\u000aIn Python it is enough to do `x = None` to release the object that was\u000apointed to by x previously. So at Python level doing this extra\u000adel only spends more CPU time, but when we will switch to Cython, and\u000ae.g. Msg.burst will be a C-level attribute, the following will not work\u000aat all\u000a\u000a\u0009del msg.burst\u000a\u0009msg.burst = None\u000a\u000abecause at runtime it will complain that\u000a\u000a        del msg.burst\u000a    AttributeError: 'Msg' object has no attribute 'burst' and no __dict__ for setting new attributes\u000a\u000a-> Remove unneeded del to save some time and avoid problems with upcoming switch to Cython.\u000a\u000aChange-Id: I7a83bdd52fb9318bd8b975f85ce37c7144873f61\u000a",
        "date" : "2026-01-26 13:29:31 +0000",
        "id" : "5c593892596d896ac9f1129548ccefc6b26670e3",
        "msg" : "trx_toolkit/*: Don't use `del x; x = None` idiom",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/target/trx_toolkit/fake_trx.py"
          },
          {
            "editType" : "edit",
            "file" : "src/target/trx_toolkit/burst_fwd.py"
          },
          {
            "editType" : "edit",
            "file" : "src/target/trx_toolkit/clck_gen.py"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/target/trx_toolkit/data_if.py",
          "src/target/trx_toolkit/udp_link.py"
        ],
        "commitId" : "02d0614de8e0b425fbcead6fbb33be04a5f2a59f",
        "timestamp" : 1769434171000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/fixeria",
          "fullName" : "Vadim Yanitskiy"
        },
        "authorEmail" : "vyanitskiy@sysmocom.de",
        "comment" : "trx_toolkit/udp_link: Factor code to describe remote into .desc_remote() function\u000a\u000aAnd use that utility everywhere where remote of UDPLink is logged.\u000a\u000aThe reason we are doing this is that with upcoming switch to Cython the\u000away remote address is stored will change to `struct sockaddr_in` and\u000ainstead of updating all users, we will need to only change\u000aUDPLink.desc_remote() in one place.\u000a\u000aAdd .desc_local() for symmetry.\u000a\u000aChange-Id: I1e2fa560ada7a8de4c9b9150058c2a1c73874fbe\u000a",
        "date" : "2026-01-26 13:29:31 +0000",
        "id" : "02d0614de8e0b425fbcead6fbb33be04a5f2a59f",
        "msg" : "trx_toolkit/udp_link: Factor code to describe remote into .desc_remote()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/target/trx_toolkit/data_if.py"
          },
          {
            "editType" : "edit",
            "file" : "src/target/trx_toolkit/udp_link.py"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/fixeria",
      "fullName" : "Vadim Yanitskiy"
    }
  ],
  "runs" : [
    {
      "number" : 8057,
      "url" : "https://jenkins.osmocom.org/jenkins/view/DAHDI/job/master-osmocom-bb/a1=default,a2=default,a3=default,a4=default,label=osmocom-master/8057/"
    }
  ]
}