{
  "_class" : "hudson.model.FreeStyleBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.triggers.TimerTrigger$TimerTriggerCause",
          "shortDescription" : "Started by timer"
        }
      ]
    },
    {
      "_class" : "hudson.model.ParametersAction",
      "parameters" : [
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "BRANCH",
          "value" : "master"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "TESTENV_ARGS",
          "value" : "-b osmocom:latest -c sns"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "EMAIL_NOTIFICATIONS",
          "value" : "jenkins-notifications@lists.osmocom.org"
        }
      ]
    },
    {
      "_class" : "jenkins.metrics.impl.TimeInQueueAction",
      "blockedDurationMillis" : 0,
      "blockedTimeMillis" : 0,
      "buildableDurationMillis" : 12,
      "buildableTimeMillis" : 12,
      "buildingDurationMillis" : 202444,
      "executingTimeMillis" : 202444,
      "executorUtilization" : 1.0,
      "subTaskCount" : 0,
      "waitingDurationMillis" : 1,
      "waitingTimeMillis" : 1
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "origin/master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 281,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "59bff794121904c14dc2623d3d8bb7236c2c49ec",
            "branch" : [
              {
                "SHA1" : "59bff794121904c14dc2623d3d8bb7236c2c49ec",
                "name" : "origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "59bff794121904c14dc2623d3d8bb7236c2c49ec",
            "branch" : [
              {
                "SHA1" : "59bff794121904c14dc2623d3d8bb7236c2c49ec",
                "name" : "origin/master"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "59bff794121904c14dc2623d3d8bb7236c2c49ec",
        "branch" : [
          {
            "SHA1" : "59bff794121904c14dc2623d3d8bb7236c2c49ec",
            "name" : "origin/master"
          }
        ]
      },
      "remoteUrls" : [
        "https://gerrit.osmocom.org/osmo-ttcn3-hacks"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "hudson.tasks.junit.TestResultAction",
      "failCount" : 0,
      "skipCount" : 0,
      "totalCount" : 8,
      "urlName" : "testReport"
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    {
      "displayPath" : None,
      "fileName" : "osmo-ns-dummy.log",
      "relativePath" : "logs/osmo-ns-dummy/osmo-ns-dummy.log"
    },
    {
      "displayPath" : None,
      "fileName" : "osmo-ns.sns.cfg",
      "relativePath" : "logs/osmo-ns-dummy/osmo-ns.sns.cfg"
    },
    {
      "displayPath" : None,
      "fileName" : "testenv-ns-sns-osmocom-latest-20260113-1336-ab368247-0.log",
      "relativePath" : "logs/podman/testenv-ns-sns-osmocom-latest-20260113-1336-ab368247-0.log"
    },
    {
      "displayPath" : None,
      "fileName" : "Common.cfg",
      "relativePath" : "logs/testsuite/Common.cfg"
    },
    {
      "displayPath" : None,
      "fileName" : "junit-xml-19783.log",
      "relativePath" : "logs/testsuite/junit-xml-19783.log"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.default",
      "relativePath" : "logs/testsuite/NS_Tests.default"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.sns.cfg",
      "relativePath" : "logs/testsuite/NS_Tests.sns.cfg"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_add.merged",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_add.merged"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_add.netcat.stderr",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_add.netcat.stderr"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_add.pcap.gz",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_add.pcap.gz"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_add.pcap.stderr",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_add.pcap.stderr"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_add.pcap.stdout",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_add.pcap.stdout"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_add.talloc",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_add.talloc"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_add_change_del.merged",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_add_change_del.merged"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_add_change_del.netcat.stderr",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_add_change_del.netcat.stderr"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_add_change_del.pcap.gz",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_add_change_del.pcap.gz"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_add_change_del.pcap.stderr",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_add_change_del.pcap.stderr"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_add_change_del.pcap.stdout",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_add_change_del.pcap.stdout"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_add_change_del.talloc",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_add_change_del.talloc"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_change_weight.merged",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_change_weight.merged"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_change_weight.netcat.stderr",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_change_weight.netcat.stderr"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_change_weight.pcap.gz",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_change_weight.pcap.gz"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_change_weight.pcap.stderr",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_change_weight.pcap.stderr"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_change_weight.pcap.stdout",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_change_weight.pcap.stdout"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_change_weight.talloc",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_change_weight.talloc"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_change_weight_timeout.merged",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_change_weight_timeout.merged"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_change_weight_timeout.netcat.stderr",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_change_weight_timeout.netcat.stderr"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_change_weight_timeout.pcap.gz",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_change_weight_timeout.pcap.gz"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_change_weight_timeout.pcap.stderr",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_change_weight_timeout.pcap.stderr"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_change_weight_timeout.pcap.stdout",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_change_weight_timeout.pcap.stdout"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_change_weight_timeout.talloc",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_change_weight_timeout.talloc"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_config_success.merged",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_config_success.merged"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_config_success.netcat.stderr",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_config_success.netcat.stderr"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_config_success.pcap.gz",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_config_success.pcap.gz"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_config_success.pcap.stderr",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_config_success.pcap.stderr"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_config_success.pcap.stdout",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_config_success.pcap.stdout"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_config_success.talloc",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_config_success.talloc"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_del.merged",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_del.merged"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_del.netcat.stderr",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_del.netcat.stderr"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_del.pcap.gz",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_del.pcap.gz"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_del.pcap.stderr",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_del.pcap.stderr"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_del.pcap.stdout",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_del.pcap.stdout"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_del.talloc",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_del.talloc"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_remove_bind_fail_sns.merged",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_remove_bind_fail_sns.merged"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_remove_bind_fail_sns.netcat.stderr",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_remove_bind_fail_sns.netcat.stderr"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_remove_bind_fail_sns.pcap.gz",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_remove_bind_fail_sns.pcap.gz"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_remove_bind_fail_sns.pcap.stderr",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_remove_bind_fail_sns.pcap.stderr"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_remove_bind_fail_sns.pcap.stdout",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_remove_bind_fail_sns.pcap.stdout"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_bss_remove_bind_fail_sns.talloc",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_bss_remove_bind_fail_sns.talloc"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_rx_size_force_unconf.merged",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_rx_size_force_unconf.merged"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_rx_size_force_unconf.netcat.stderr",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_rx_size_force_unconf.netcat.stderr"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_rx_size_force_unconf.pcap.gz",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_rx_size_force_unconf.pcap.gz"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_rx_size_force_unconf.pcap.stderr",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_rx_size_force_unconf.pcap.stderr"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_rx_size_force_unconf.pcap.stdout",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_rx_size_force_unconf.pcap.stdout"
    },
    {
      "displayPath" : None,
      "fileName" : "NS_Tests.TC_sns_rx_size_force_unconf.talloc",
      "relativePath" : "logs/testsuite/NS_Tests.TC_sns_rx_size_force_unconf.talloc"
    }
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#281",
  "duration" : 202444,
  "estimatedDuration" : 137326,
  "executor" : None,
  "fullDisplayName" : "ttcn3-ns-test-sns-latest #281",
  "id" : "281",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 281,
  "queueId" : 1201,
  "result" : "SUCCESS",
  "timestamp" : 1768311360333,
  "url" : "https://jenkins.osmocom.org/jenkins/job/ttcn3-ns-test-sns-latest/281/",
  "builtOn" : "build5-deb12build-ansible",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "_testenv/testenv.py"
        ],
        "commitId" : "59bff794121904c14dc2623d3d8bb7236c2c49ec",
        "timestamp" : 1768302244000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/osmith",
          "fullName" : "Oliver Smith"
        },
        "authorEmail" : "osmith@sysmocom.de",
        "comment" : "testenv: fix crash with python 3.14\u000a\u000aPython 3.14 changed the default multiprocessing start method from \"fork\"\u000ato \"forkserver\", which breaks multiprocessing.Process() as used in\u000atestenv.podman.start_in_background(). Restore the previous behavior.\u000a\u000aFix for:\u000a\u000a$ ./testenv.py run -n -p -a bts -c generic\u000a[testenv] osmo-dev dir: /home/pespin/dev/sysmocom/git/osmo-dev\u000a[testenv] Logging to: /tmp/testenv-bts-generic-20260113-1138-f5a1a95e-p7ws27qq\u000a[testenv] + ['rm', '/tmp/logs']\u000a[testenv] + ['ln', '-sf', '/tmp/testenv-bts-generic-20260113-1138-f5a1a95e-p7ws27qq', '/tmp/logs']\u000a[testenv] + ['podman', 'image', 'exists', 'debian-trixie-osmo-ttcn3-testenv']\u000a[testenv] + ['podman', 'history', 'debian-trixie-osmo-ttcn3-testenv', '--format', 'json']\u000a[testenv] Image creation date: 2025-12-19 13:01:15\u000a[testenv] Dockerfile last modified: 2025-12-19 12:57:25\u000a[testenv] + ['podman', 'run', '--rm', '--name', 'testenv-bts-generic-20260113-1138-f5a1a95e-0', '--log-driver', 'json-file', '--log-opt', 'path=/tmp/testenv-bts-generic-20260113-1138-f5a1a95e-p7ws27qq/podman/testenv-bts-generic-20260113-1138-f5a1a95e-0.log', '--security-opt=seccomp=/home/pespin/dev/sysmocom/git/osmo-ttcn3-hacks/_testenv/data/podman/seccomp.json', '--cap-add=NET_ADMIN', '--cap-add=NET_RAW', '--cap-add=SYS_ADMIN', '--device=/dev/net/tun', '--volume', '/home/pespin/.cache/osmo-ttcn3-testenv/podman/var-cache-apt-debian-trixie:/var/cache/apt', '--volume', '/home/pespin/.cache/osmo-ttcn3-testenv/podman/var-lib-apt-debian-trixie:/var/lib/apt', '--sysctl', 'net.ipv4.conf.all.send_redirects=0', '--sysctl', 'net.ipv4.conf.default.send_redirects=0', '-e', 'PODMAN=1', '--volume', '/home/pespin/dev/sysmocom/git/osmo-dev:/home/pespin/dev/sysmocom/git/osmo-dev', '--volume', '/tmp/testenv-bts-generic-20260113-1138-f5a1a95e-p7ws27qq:/tmp/testenv-bts-generic-20260113-1138-f5a1a95e-p7ws27qq', '--volume', '/home/pespin/.cache/osmo-ttcn3-testenv:/home/pespin/.cache/osmo-ttcn3-testenv', '--volume', '/home/pespin/.cache/osmo-ttcn3-testenv/ccache:/home/pespin/.cache/osmo-ttcn3-testenv/ccache', '--volume', '/home/pespin/dev/sysmocom/git:/home/pespin/dev/sysmocom/git', 'debian-trixie-osmo-ttcn3-testenv', '/home/pespin/dev/sysmocom/git/osmo-ttcn3-hacks/_testenv/data/scripts/testenv-podman-main.sh']\u000aRunning testenv-podman-main.sh\u000ausage: testenv.py [-h] {init,run,clean} ...\u000atestenv.py: error: the following arguments are required: action\u000a[testenv] Stopping podman container\u000a[testenv] + ['podman', 'kill', 'testenv-bts-generic-20260113-1138-f5a1a95e-0']\u000atestenv-bts-generic-20260113-1138-f5a1a95e-0\u000aTraceback (most recent call last):\u000a  File \"/home/pespin/dev/sysmocom/git/osmo-ttcn3-hacks/./testenv.py\", line 133, in <module>\u000a    main()\u000a    ~~~~^^\u000a  File \"/home/pespin/dev/sysmocom/git/osmo-ttcn3-hacks/./testenv.py\", line 122, in main\u000a    run()\u000a    ~~~^^\u000a  File \"/home/pespin/dev/sysmocom/git/osmo-ttcn3-hacks/./testenv.py\", line 45, in run\u000a    testenv.podman.start()\u000a    ~~~~~~~~~~~~~~~~~~~~^^\u000a  File \"/home/pespin/dev/sysmocom/git/osmo-ttcn3-hacks/_testenv/testenv/podman.py\", line 280, in start\u000a    start_in_background(cmd)\u000a    ~~~~~~~~~~~~~~~~~~~^^^^^\u000a  File \"/home/pespin/dev/sysmocom/git/osmo-ttcn3-hacks/_testenv/testenv/podman.py\", line 208, in start_in_background\u000a    feed_watchdog_process.start()\u000a    ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^\u000a  File \"/usr/lib/python3.14/multiprocessing/process.py\", line 121, in start\u000a    self._popen = self._Popen(self)\u000a                  ~~~~~~~~~~~^^^^^^\u000a  File \"/usr/lib/python3.14/multiprocessing/context.py\", line 224, in _Popen\u000a    return _default_context.get_context().Process._Popen(process_obj)\u000a           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^\u000a  File \"/usr/lib/python3.14/multiprocessing/context.py\", line 300, in _Popen\u000a    return Popen(process_obj)\u000a  File \"/usr/lib/python3.14/multiprocessing/popen_forkserver.py\", line 35, in __init__\u000a    super().__init__(process_obj)\u000a    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^\u000a  File \"/usr/lib/python3.14/multiprocessing/popen_fork.py\", line 20, in __init__\u000a    self._launch(process_obj)\u000a    ~~~~~~~~~~~~^^^^^^^^^^^^^\u000a  File \"/usr/lib/python3.14/multiprocessing/popen_forkserver.py\", line 51, in _launch\u000a    self.sentinel, w = forkserver.connect_to_new_process(self._fds)\u000a                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^\u000a  File \"/usr/lib/python3.14/multiprocessing/forkserver.py\", line 106, in connect_to_new_process\u000a    connection.answer_challenge(\u000a    ~~~~~~~~~~~~~~~~~~~~~~~~~~~^\u000a            wrapped_client, self._forkserver_authkey)\u000a            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u000a  File \"/usr/lib/python3.14/multiprocessing/connection.py\", line 970, in answer_challenge\u000a    message = connection.recv_bytes(256)         # reject large message\u000a  File \"/usr/lib/python3.14/multiprocessing/connection.py\", line 222, in recv_bytes\u000a    buf = self._recv_bytes(maxlength)\u000a  File \"/usr/lib/python3.14/multiprocessing/connection.py\", line 447, in _recv_bytes\u000a    buf = self._recv(4)\u000a  File \"/usr/lib/python3.14/multiprocessing/connection.py\", line 412, in _recv\u000a    chunk = read(handle, to_read)\u000aConnectionResetError: [Errno 104] Connection reset by peer\u000a[testenv] Logs saved to: /tmp/testenv-bts-generic-20260113-1138-f5a1a95e-p7ws27qq (symlink: /tmp/logs)\u000a\u000aRelated: https://docs.python.org/3/whatsnew/3.14.html#multiprocessing\u000aChange-Id: I7995916548b27bdaba6a95e4679c5d1dd7caab4c\u000a",
        "date" : "2026-01-13 12:04:04 +0100",
        "id" : "59bff794121904c14dc2623d3d8bb7236c2c49ec",
        "msg" : "testenv: fix crash with python 3.14",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "_testenv/testenv.py"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/osmith",
      "fullName" : "Oliver Smith"
    }
  ]
}