{
  "_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" : 124257,
      "executingTimeMillis" : 124257,
      "executorUtilization" : 1.0,
      "subTaskCount" : 0,
      "waitingDurationMillis" : 7550,
      "waitingTimeMillis" : 7550
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "origin/master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 757,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "db8d9d6700dd9c06a6136c1b0c51ad06b44d89f7",
            "branch" : [
              {
                "SHA1" : "db8d9d6700dd9c06a6136c1b0c51ad06b44d89f7",
                "name" : "origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "db8d9d6700dd9c06a6136c1b0c51ad06b44d89f7",
            "branch" : [
              {
                "SHA1" : "db8d9d6700dd9c06a6136c1b0c51ad06b44d89f7",
                "name" : "origin/master"
              }
            ]
          }
        },
        "refs/remotes/origin/osmith/wip" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 756,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "0a0d1fbdbf8bac5ea0b4df3e1d08c949a5733615",
            "branch" : [
              {
                "SHA1" : "0a0d1fbdbf8bac5ea0b4df3e1d08c949a5733615",
                "name" : "refs/remotes/origin/osmith/wip"
              }
            ]
          },
          "revision" : {
            "SHA1" : "0a0d1fbdbf8bac5ea0b4df3e1d08c949a5733615",
            "branch" : [
              {
                "SHA1" : "0a0d1fbdbf8bac5ea0b4df3e1d08c949a5733615",
                "name" : "refs/remotes/origin/osmith/wip"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "db8d9d6700dd9c06a6136c1b0c51ad06b44d89f7",
        "branch" : [
          {
            "SHA1" : "db8d9d6700dd9c06a6136c1b0c51ad06b44d89f7",
            "name" : "origin/master"
          }
        ]
      },
      "remoteUrls" : [
        "https://gerrit.osmocom.org/erlang/osmo-s1gw"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#757",
  "duration" : 124257,
  "estimatedDuration" : 91712,
  "executor" : None,
  "fullDisplayName" : "master-osmo-s1gw #757",
  "id" : "757",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 757,
  "queueId" : 66515,
  "result" : "SUCCESS",
  "timestamp" : 1774042268293,
  "url" : "https://jenkins.osmocom.org/jenkins/view/gerrit/job/master-osmo-s1gw/757/",
  "builtOn" : "",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "contrib/jenkins_manuals.sh"
        ],
        "commitId" : "0a0d1fbdbf8bac5ea0b4df3e1d08c949a5733615",
        "timestamp" : 1774006592000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/osmith",
          "fullName" : "Oliver Smith"
        },
        "authorEmail" : "osmith@sysmocom.de",
        "comment" : "contrib/jenkins_manuals: fix doc/manuals paths\u000a\u000aChange-Id: Ibfccefec7e44a4803d4ff8ad061db395fc498b89\u000a",
        "date" : "2026-03-20 12:36:32 +0100",
        "id" : "0a0d1fbdbf8bac5ea0b4df3e1d08c949a5733615",
        "msg" : "contrib/jenkins_manuals: fix doc/manuals paths",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "contrib/jenkins_manuals.sh"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "priv/openapi.json",
          "doc/manuals/chapters/rest.adoc",
          "src/rest_server.erl",
          "src/enb_proxy.erl",
          "doc/manuals/chapters/cli.adoc",
          "contrib/osmo-s1gw-cli.py",
          "contrib/openapi.yaml"
        ],
        "commitId" : "38cb7b1b5b66cffdf035f36bfe07efcb52a52849",
        "timestamp" : 1774042079000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/fixeria",
          "fullName" : "Vadim Yanitskiy"
        },
        "authorEmail" : "vyanitskiy@sysmocom.de",
        "comment" : "[REST] Add MME source address/port to EnbItem\u000a\u000aThe enb_proxy now captures the local address and port of the S1GW-MME\u000aSCTP connection (mme_saddr/mme_sport) at comm_up and includes them in\u000aconn_info().  Expose this info through the REST API (EnbItem schema),\u000ashow it as a new column/row in the CLI (enb_list/enb_info).\u000a\u000aChange-Id: I15bbddf96ac7d5b6f9962a8d745db58fdec334e7\u000aRelated: SYS#7066\u000a",
        "date" : "2026-03-20 21:27:59 +0000",
        "id" : "38cb7b1b5b66cffdf035f36bfe07efcb52a52849",
        "msg" : "[REST] Add MME source address/port to EnbItem",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "contrib/openapi.yaml"
          },
          {
            "editType" : "edit",
            "file" : "contrib/osmo-s1gw-cli.py"
          },
          {
            "editType" : "edit",
            "file" : "priv/openapi.json"
          },
          {
            "editType" : "edit",
            "file" : "src/enb_proxy.erl"
          },
          {
            "editType" : "edit",
            "file" : "src/rest_server.erl"
          },
          {
            "editType" : "edit",
            "file" : "doc/manuals/chapters/cli.adoc"
          },
          {
            "editType" : "edit",
            "file" : "doc/manuals/chapters/rest.adoc"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "priv/openapi.json",
          "doc/manuals/chapters/rest.adoc",
          "src/rest_server.erl",
          "contrib/openapi.yaml"
        ],
        "commitId" : "f9e4cdeeba529dc83f9460a6373771958b756a6d",
        "timestamp" : 1774042079000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/fixeria",
          "fullName" : "Vadim Yanitskiy"
        },
        "authorEmail" : "vyanitskiy@sysmocom.de",
        "comment" : "[REST] Add PLMN/eNB IDs to EnbItem\u000a\u000aChange-Id: I79690223a34afea5e6661125ac04f98462dadb03\u000aRelated: SYS#7066\u000a",
        "date" : "2026-03-20 21:27:59 +0000",
        "id" : "f9e4cdeeba529dc83f9460a6373771958b756a6d",
        "msg" : "[REST] Add PLMN/eNB IDs to EnbItem",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/rest_server.erl"
          },
          {
            "editType" : "edit",
            "file" : "doc/manuals/chapters/rest.adoc"
          },
          {
            "editType" : "edit",
            "file" : "priv/openapi.json"
          },
          {
            "editType" : "edit",
            "file" : "contrib/openapi.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "doc/manuals/chapters/cli.adoc"
        ],
        "commitId" : "0e6f653a7718d3e7accced5ad67a5a34e3ccae39",
        "timestamp" : 1774042079000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/fixeria",
          "fullName" : "Vadim Yanitskiy"
        },
        "authorEmail" : "vyanitskiy@sysmocom.de",
        "comment" : "doc/manuals: cli: shorten enb_list example table\u000a\u000aThe full enb_list table with all address columns is too wide to fit\u000aon a page and does not render well in PDF.  Collapse the address\u000acolumns with '...'; add a note that they are omitted for readability.\u000a\u000aChange-Id: I4e25233a3e77358060f1098e97907c93deab334b\u000aRelated: OS#6671\u000a",
        "date" : "2026-03-20 21:27:59 +0000",
        "id" : "0e6f653a7718d3e7accced5ad67a5a34e3ccae39",
        "msg" : "doc/manuals: cli: shorten enb_list example table",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "doc/manuals/chapters/cli.adoc"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/enb_registry.erl",
          "src/enb_proxy.erl"
        ],
        "commitId" : "6a2008296e6f0d7558b046d46f4e25556bddf7c6",
        "timestamp" : 1774042079000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/fixeria",
          "fullName" : "Vadim Yanitskiy"
        },
        "authorEmail" : "vyanitskiy@sysmocom.de",
        "comment" : "enb_{proxy,registry}: signal MME conn info on SCTP comm_up\u000a\u000aPreviously, mme_aid/mme_saddr/mme_sport were only signalled to the\u000aenb_registry once the S1 Setup procedure completed.  This meant the\u000aREST API could not show MME connection details for eNBs stuck in\u000await_s1setup_rsp state (e.g. due to a slow or retrying MME).\u000a\u000aAdd notify_mme_comm_up/2, called at SCTP comm_up, which stores the full\u000aconn_info (including mme_aid, mme_saddr, mme_sport) in the registry as\u000asoon as the SCTP connection is established.\u000a\u000anotify_mme_connected/2 is simplified to notify_mme_connected/1: it now\u000aonly flips the state to 'connected', since conn_info is already stored.\u000a\u000aChange-Id: Iea9ba4fdf961e6cd262edc154884a2eee3d95355\u000aRelated: SYS#7066\u000a",
        "date" : "2026-03-20 21:27:59 +0000",
        "id" : "6a2008296e6f0d7558b046d46f4e25556bddf7c6",
        "msg" : "enb_{proxy,registry}: signal MME conn info on SCTP comm_up",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/enb_proxy.erl"
          },
          {
            "editType" : "edit",
            "file" : "src/enb_registry.erl"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/rest_server.erl",
          "src/enb_registry.erl",
          "src/enb_proxy.erl"
        ],
        "commitId" : "c147dee4a6ad62bbfd737063851c1d3bf0fa4fb1",
        "timestamp" : 1774042079000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/fixeria",
          "fullName" : "Vadim Yanitskiy"
        },
        "authorEmail" : "vyanitskiy@sysmocom.de",
        "comment" : "enb_proxy: split conn_info() into mme_conn_info() and proxy_info()\u000a\u000aThe old conn_info() conflated two distinct concerns: the MME SCTP\u000aconnection info stored in enb_registry (aid, saddr, sport) and the\u000abroader operational state used for introspection (handler pid, enb\u000aconnection info, etc.).  Mixing them forced enb_registry to hold a\u000ahandler pid it has no business knowing about, and required rest_server\u000ato extract that pid just to reach s1ap_proxy for E-RAB listing.\u000a\u000aSplit into two distinct types:\u000a\u000a* mme_conn_info() - pure MME SCTP connection info (aid, saddr, sport),\u000a  stored in the enb_registry and signalled via notify_mme_comm_up/2.\u000a  The `mme_` prefix is dropped from field names as the type name\u000a  provides the context.\u000a\u000a* proxy_info() - richer operational snapshot (handler, enb_handle,\u000a  enb_conn_info, mme_conn_info, genb_id_str, mme_info), returned by\u000a  fetch_info/1 for introspection/debugging purposes.\u000a\u000aAdditionally:\u000a\u000a* Add fetch_erab_list/1 to enb_proxy, delegating internally to\u000a  s1ap_proxy:fetch_erab_list/1 via the cached handler pid.  This\u000a  allows the rest_server to obtain a list of E-RAB without having\u000a  to obtain pid of the s1ap_proxy and interact with it.\u000a\u000a* Remove separate enb_aid/mme_aid/mme_saddr/mme_sport state fields;\u000a  enb_aid is now read directly from enb_conn_info, and the MME fields\u000a  are grouped in mme_conn_info.\u000a\u000aChange-Id: Ia428ceb4762f972211e9b790688dc89fb5b8a274\u000aRelated: SYS#7066\u000a",
        "date" : "2026-03-20 21:27:59 +0000",
        "id" : "c147dee4a6ad62bbfd737063851c1d3bf0fa4fb1",
        "msg" : "enb_proxy: split conn_info() into mme_conn_info() and proxy_info()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/rest_server.erl"
          },
          {
            "editType" : "edit",
            "file" : "src/enb_registry.erl"
          },
          {
            "editType" : "edit",
            "file" : "src/enb_proxy.erl"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/enb_proxy.erl"
        ],
        "commitId" : "8b29eaa6eadde6563a9dd3a4ce84c902bd069e26",
        "timestamp" : 1774042079000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/fixeria",
          "fullName" : "Vadim Yanitskiy"
        },
        "authorEmail" : "vyanitskiy@sysmocom.de",
        "comment" : "enb_proxy: add missing mme_info() to proxy_info()\u000a\u000aAs a bonus, `tried_mmes` now only serves its actual purpose - tracking\u000awhich MMEs have already been tried for selection filtering - rather\u000athan being abused as a way to retrieve the current MME name.\u000a\u000aChange-Id: Ibbb293d9e68b7c3a8c3ca7ee73132dbda3f2bf97\u000aRelated: SYS#7066\u000a",
        "date" : "2026-03-20 21:27:59 +0000",
        "id" : "8b29eaa6eadde6563a9dd3a4ce84c902bd069e26",
        "msg" : "enb_proxy: add missing mme_info() to proxy_info()",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/enb_proxy.erl"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/s1ap_proxy.erl",
          "src/enb_proxy.erl"
        ],
        "commitId" : "941b61bf2f5691d3ede8dcef11472bb3adbc97d2",
        "timestamp" : 1774042079000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/fixeria",
          "fullName" : "Vadim Yanitskiy"
        },
        "authorEmail" : "vyanitskiy@sysmocom.de",
        "comment" : "s1ap_proxy: add public erab_list() type\u000a\u000aChange-Id: I21a674537d1d9f16fdb319aaf2d758ba0906b407\u000a",
        "date" : "2026-03-20 21:27:59 +0000",
        "id" : "941b61bf2f5691d3ede8dcef11472bb3adbc97d2",
        "msg" : "s1ap_proxy: add public erab_list() type",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/enb_proxy.erl"
          },
          {
            "editType" : "edit",
            "file" : "src/s1ap_proxy.erl"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/rest_server.erl"
        ],
        "commitId" : "809a5a29a1b696f5cb767037e48fd2c5c60d002c",
        "timestamp" : 1774042079000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/fixeria",
          "fullName" : "Vadim Yanitskiy"
        },
        "authorEmail" : "vyanitskiy@sysmocom.de",
        "comment" : "rest_server: fix TOC/TOU race when listing/fetching E-RABs\u000a\u000aThe list of E-RAB FSM pids is a snapshot taken at one point in time.\u000aBy the time we interrogate each erab_fsm process individually, any of\u000athem may have already terminated (e.g. bearer released mid-request).\u000aThe current code fails to generate a response if this happens.\u000a\u000a* fetch_erab_info/1: add a pid() clause that wraps erab_list_item/1\u000a  in a try/catch, returning 'error' if the process is gone.\u000a\u000a* fetch_erab_info/1: catch both exit forms\u000a** `{noproc, _}` raised by gen_statem:call/2 on a monitored pid, and\u000a** the bare noproc atom for other code paths.\u000a\u000a* fetch_erab_list/1: switch from lists:map to lists:filtermap and\u000a  call fetch_erab_info/1 per E-RAB, silently dropping any that died\u000a  between the snapshot and the per-process interrogation.\u000a\u000aChange-Id: I160b413aa535f2379ad4e40a3ae8f37c5bce2067\u000aRelated: SYS#7066\u000a",
        "date" : "2026-03-20 21:27:59 +0000",
        "id" : "809a5a29a1b696f5cb767037e48fd2c5c60d002c",
        "msg" : "rest_server: fix TOC/TOU race when listing/fetching E-RABs",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/rest_server.erl"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/rest_server.erl",
          "src/osmo_s1gw_sup.erl"
        ],
        "commitId" : "db8d9d6700dd9c06a6136c1b0c51ad06b44d89f7",
        "timestamp" : 1774042079000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/fixeria",
          "fullName" : "Vadim Yanitskiy"
        },
        "authorEmail" : "vyanitskiy@sysmocom.de",
        "comment" : "rest_server: log received requests (as debug)\u000a\u000aChange-Id: I25da9662fb98a0eafcedfde21b12a937225f5fb9\u000aRelated: SYS#7066\u000a",
        "date" : "2026-03-20 21:27:59 +0000",
        "id" : "db8d9d6700dd9c06a6136c1b0c51ad06b44d89f7",
        "msg" : "rest_server: log received requests (as debug)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/osmo_s1gw_sup.erl"
          },
          {
            "editType" : "edit",
            "file" : "src/rest_server.erl"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/fixeria",
      "fullName" : "Vadim Yanitskiy"
    },
    {
      "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/osmith",
      "fullName" : "Oliver Smith"
    }
  ],
  "runs" : [
    {
      "number" : 757,
      "url" : "https://jenkins.osmocom.org/jenkins/view/gerrit/job/master-osmo-s1gw/JOB_TYPE=build,a1=default,a3=default,a4=default,label=osmocom-master/757/"
    },
    {
      "number" : 757,
      "url" : "https://jenkins.osmocom.org/jenkins/view/gerrit/job/master-osmo-s1gw/JOB_TYPE=manuals,a1=default,a3=default,a4=default,label=osmocom-master/757/"
    },
    {
      "number" : 751,
      "url" : "https://jenkins.osmocom.org/jenkins/view/gerrit/job/master-osmo-s1gw/a1=default,a2=default,a3=default,a4=default,label=osmocom-master/751/"
    }
  ]
}