<matrixBuild _class='hudson.matrix.MatrixBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.SCMTrigger$SCMTriggerCause'><shortDescription>Started by an SCM change</shortDescription></cause></action><action></action><action _class='hudson.model.ParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>EMAIL_NOTIFICATIONS</name><value>jenkins-notifications@lists.osmocom.org laforge@gnumonks.org</value></parameter></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>0</buildableDurationMillis><buildableTimeMillis>0</buildableTimeMillis><buildingDurationMillis>73356</buildingDurationMillis><executingTimeMillis>73356</executingTimeMillis><executorUtilization>1.0</executorUtilization><queuingDurationMillis>5919</queuingDurationMillis><queuingTimeMillis>5919</queuingTimeMillis><subTaskCount>0</subTaskCount><totalDurationMillis>79275</totalDurationMillis><waitingDurationMillis>5917</waitingDurationMillis><waitingTimeMillis>5917</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><originmaster _class='hudson.plugins.git.util.Build'><buildNumber>2938</buildNumber><marked><SHA1>af717d3b73a97dafc2bbd5cba382266909a51942</SHA1><branch><SHA1>af717d3b73a97dafc2bbd5cba382266909a51942</SHA1><name>origin/master</name></branch></marked><revision><SHA1>af717d3b73a97dafc2bbd5cba382266909a51942</SHA1><branch><SHA1>af717d3b73a97dafc2bbd5cba382266909a51942</SHA1><name>origin/master</name></branch></revision></originmaster><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>1667</buildNumber><marked><SHA1>c69d5c8da71c3320fc18308b95aded4aa949ddd3</SHA1><branch><SHA1>c69d5c8da71c3320fc18308b95aded4aa949ddd3</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>c69d5c8da71c3320fc18308b95aded4aa949ddd3</SHA1><branch><SHA1>c69d5c8da71c3320fc18308b95aded4aa949ddd3</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>af717d3b73a97dafc2bbd5cba382266909a51942</SHA1><branch><SHA1>af717d3b73a97dafc2bbd5cba382266909a51942</SHA1><name>origin/master</name></branch></lastBuiltRevision><remoteUrl>https://gerrit.osmocom.org/osmo-remsim</remoteUrl><scmName></scmName></action><action></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'><artifactsUrl>https://jenkins.osmocom.org/jenkins/view/registry/job/master-osmo-remsim/2938/artifact</artifactsUrl><changesUrl>https://jenkins.osmocom.org/jenkins/view/registry/job/master-osmo-remsim/changes</changesUrl><displayUrl>https://jenkins.osmocom.org/jenkins/view/registry/job/master-osmo-remsim/2938/</displayUrl><testsUrl>https://jenkins.osmocom.org/jenkins/view/registry/job/master-osmo-remsim/2938/testReport</testsUrl></action><building>false</building><displayName>#2938</displayName><duration>73356</duration><estimatedDuration>73307</estimatedDuration><fullDisplayName>master-osmo-remsim #2938</fullDisplayName><id>2938</id><inProgress>false</inProgress><keepLog>false</keepLog><number>2938</number><queueId>102151</queueId><result>SUCCESS</result><timestamp>1777332246843</timestamp><url>https://jenkins.osmocom.org/jenkins/view/registry/job/master-osmo-remsim/2938/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/bankd/bankd_main.c</affectedPath><commitId>b17b7c1d247c91febd592234c76f3444ae59dd64</commitId><timestamp>1777295231000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/aeversberg</absoluteUrl><fullName>Andreas Eversberg</fullName></author><authorEmail>aeversberg@sysmocom.de</authorEmail><comment>Fix: Remove slot mapping at bankd when client disconnects

If a client disconnects before removing the slot mapping, the worker
must undefine its 'bank_id' and 'slot_nr' and must change its state to
'UNMAPPED'.

send_signal_to_worker() searches for a worker that has a given bank and
slot. If a client re-connects to a different worker and if the bank and
slot would be still assigned to the old worker, the old worker could
receive signals when assigning or removing slot mapping. The new worker
would not be mapped.

Change-Id: I2fd03490e2506c55104309a0ef952389119023b8
</comment><date>2026-04-27 15:07:11 +0200</date><id>b17b7c1d247c91febd592234c76f3444ae59dd64</id><msg>Fix: Remove slot mapping at bankd when client disconnects</msg><path><editType>edit</editType><file>src/bankd/bankd_main.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/slotmap.c</affectedPath><affectedPath>src/bankd/bankd_main.c</affectedPath><affectedPath>src/slotmap.h</affectedPath><commitId>9be3d184f97958f18ee16802941a9a3e712855d1</commitId><timestamp>1777295988000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/aeversberg</absoluteUrl><fullName>Andreas Eversberg</fullName></author><authorEmail>aeversberg@sysmocom.de</authorEmail><comment>Fix: Prevent race conditions when accessing slotmap in bankd

If a client connects to a worker, the worker will check if there is an
existing mapping between a reader and this client. If it exists,
slotmap_by_client() will return a pointer. If the mapping is deleted at
this time by the server, the worker uses a pointer to a mapping entry
that has just been freed.

To prevent this, the worker locks the slot map and calls the new
function slotmap_by_client_nolock(). After it has finished working with
the returned pointer, it unlocks the slot map again. A possible delete
by the main thread would be delayed.

Change-Id: I3464726f37beb7c47b4e1f00c018ffa4f3948906
</comment><date>2026-04-27 15:19:48 +0200</date><id>9be3d184f97958f18ee16802941a9a3e712855d1</id><msg>Fix: Prevent race conditions when accessing slotmap in bankd</msg><path><editType>edit</editType><file>src/slotmap.c</file></path><path><editType>edit</editType><file>src/slotmap.h</file></path><path><editType>edit</editType><file>src/bankd/bankd_main.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/bankd/bankd_main.c</affectedPath><commitId>2cc1aa57418e6388e463fb1de1295640fab2413f</commitId><timestamp>1777302517000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/aeversberg</absoluteUrl><fullName>Andreas Eversberg</fullName></author><authorEmail>aeversberg@sysmocom.de</authorEmail><comment>Fix: Prevent bankd from exiting upon SIGPIPE

If a client disconnects from a worker thread while the worker is
responding to a to a request from that client, the socket is closed and
SIGPIPE is sent to the worker, causing the application to exit.

To prevent this, all workers have a dummy handler to prevent this. Now
the worker can handle the closing of the socket.

Change-Id: I13d6e9da48d12f93c00bd2d021789bde71aca7cf
</comment><date>2026-04-27 17:08:37 +0200</date><id>2cc1aa57418e6388e463fb1de1295640fab2413f</id><msg>Fix: Prevent bankd from exiting upon SIGPIPE</msg><path><editType>edit</editType><file>src/bankd/bankd_main.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/rspro_util.c</affectedPath><commitId>af717d3b73a97dafc2bbd5cba382266909a51942</commitId><timestamp>1777332175000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/laforge</absoluteUrl><fullName>laforge</fullName></author><authorEmail>laforge@osmocom.org</authorEmail><comment>rspro_util: asn1 decode: fix memleak when decoding fails

Change-Id: I071343d0134dbffb1bb71ea26a5b514be1b5bb27
</comment><date>2026-04-27 23:22:55 +0000</date><id>af717d3b73a97dafc2bbd5cba382266909a51942</id><msg>rspro_util: asn1 decode: fix memleak when decoding fails</msg><path><editType>edit</editType><file>src/rspro_util.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/laforge</absoluteUrl><description></description><fullName>laforge</fullName><id>laforge</id></culprit><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/aeversberg</absoluteUrl><fullName>Andreas Eversberg</fullName><id>aeversberg</id></culprit><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>EMAIL_NOTIFICATIONS</name><value>jenkins-notifications@lists.osmocom.org laforge@gnumonks.org</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "master-osmo-remsim" build number 2,938</shortDescription><upstreamBuild>2938</upstreamBuild><upstreamProject>master-osmo-remsim</upstreamProject><upstreamUrl>job/master-osmo-remsim/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>0</buildableDurationMillis><buildableTimeMillis>0</buildableTimeMillis><buildingDurationMillis>71602</buildingDurationMillis><executingTimeMillis>71602</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><originmaster _class='hudson.plugins.git.util.Build'><buildNumber>2938</buildNumber><marked><SHA1>af717d3b73a97dafc2bbd5cba382266909a51942</SHA1><branch><SHA1>af717d3b73a97dafc2bbd5cba382266909a51942</SHA1><name>origin/master</name></branch></marked><revision><SHA1>af717d3b73a97dafc2bbd5cba382266909a51942</SHA1><branch><SHA1>af717d3b73a97dafc2bbd5cba382266909a51942</SHA1><name>origin/master</name></branch></revision></originmaster><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>1667</buildNumber><marked><SHA1>c69d5c8da71c3320fc18308b95aded4aa949ddd3</SHA1><branch><SHA1>c69d5c8da71c3320fc18308b95aded4aa949ddd3</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>c69d5c8da71c3320fc18308b95aded4aa949ddd3</SHA1><branch><SHA1>c69d5c8da71c3320fc18308b95aded4aa949ddd3</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>af717d3b73a97dafc2bbd5cba382266909a51942</SHA1><branch><SHA1>af717d3b73a97dafc2bbd5cba382266909a51942</SHA1><name>origin/master</name></branch></lastBuiltRevision><remoteUrl>https://gerrit.osmocom.org/osmo-remsim</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#2938</displayName><duration>71602</duration><estimatedDuration>71401</estimatedDuration><fullDisplayName>master-osmo-remsim » a1=default,a2=default,a3=default,a4=default,osmocom-master #2938</fullDisplayName><id>2938</id><inProgress>false</inProgress><keepLog>false</keepLog><number>2938</number><queueId>102152</queueId><result>SUCCESS</result><timestamp>1777332246843</timestamp><url>https://jenkins.osmocom.org/jenkins/view/registry/job/master-osmo-remsim/a1=default,a2=default,a3=default,a4=default,label=osmocom-master/2938/</url><builtOn>build5-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/bankd/bankd_main.c</affectedPath><commitId>b17b7c1d247c91febd592234c76f3444ae59dd64</commitId><timestamp>1777295231000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/aeversberg</absoluteUrl><fullName>Andreas Eversberg</fullName></author><authorEmail>aeversberg@sysmocom.de</authorEmail><comment>Fix: Remove slot mapping at bankd when client disconnects

If a client disconnects before removing the slot mapping, the worker
must undefine its 'bank_id' and 'slot_nr' and must change its state to
'UNMAPPED'.

send_signal_to_worker() searches for a worker that has a given bank and
slot. If a client re-connects to a different worker and if the bank and
slot would be still assigned to the old worker, the old worker could
receive signals when assigning or removing slot mapping. The new worker
would not be mapped.

Change-Id: I2fd03490e2506c55104309a0ef952389119023b8
</comment><date>2026-04-27 15:07:11 +0200</date><id>b17b7c1d247c91febd592234c76f3444ae59dd64</id><msg>Fix: Remove slot mapping at bankd when client disconnects</msg><path><editType>edit</editType><file>src/bankd/bankd_main.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/bankd/bankd_main.c</affectedPath><affectedPath>src/slotmap.c</affectedPath><affectedPath>src/slotmap.h</affectedPath><commitId>9be3d184f97958f18ee16802941a9a3e712855d1</commitId><timestamp>1777295988000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/aeversberg</absoluteUrl><fullName>Andreas Eversberg</fullName></author><authorEmail>aeversberg@sysmocom.de</authorEmail><comment>Fix: Prevent race conditions when accessing slotmap in bankd

If a client connects to a worker, the worker will check if there is an
existing mapping between a reader and this client. If it exists,
slotmap_by_client() will return a pointer. If the mapping is deleted at
this time by the server, the worker uses a pointer to a mapping entry
that has just been freed.

To prevent this, the worker locks the slot map and calls the new
function slotmap_by_client_nolock(). After it has finished working with
the returned pointer, it unlocks the slot map again. A possible delete
by the main thread would be delayed.

Change-Id: I3464726f37beb7c47b4e1f00c018ffa4f3948906
</comment><date>2026-04-27 15:19:48 +0200</date><id>9be3d184f97958f18ee16802941a9a3e712855d1</id><msg>Fix: Prevent race conditions when accessing slotmap in bankd</msg><path><editType>edit</editType><file>src/slotmap.h</file></path><path><editType>edit</editType><file>src/bankd/bankd_main.c</file></path><path><editType>edit</editType><file>src/slotmap.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/bankd/bankd_main.c</affectedPath><commitId>2cc1aa57418e6388e463fb1de1295640fab2413f</commitId><timestamp>1777302517000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/aeversberg</absoluteUrl><fullName>Andreas Eversberg</fullName></author><authorEmail>aeversberg@sysmocom.de</authorEmail><comment>Fix: Prevent bankd from exiting upon SIGPIPE

If a client disconnects from a worker thread while the worker is
responding to a to a request from that client, the socket is closed and
SIGPIPE is sent to the worker, causing the application to exit.

To prevent this, all workers have a dummy handler to prevent this. Now
the worker can handle the closing of the socket.

Change-Id: I13d6e9da48d12f93c00bd2d021789bde71aca7cf
</comment><date>2026-04-27 17:08:37 +0200</date><id>2cc1aa57418e6388e463fb1de1295640fab2413f</id><msg>Fix: Prevent bankd from exiting upon SIGPIPE</msg><path><editType>edit</editType><file>src/bankd/bankd_main.c</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/rspro_util.c</affectedPath><commitId>af717d3b73a97dafc2bbd5cba382266909a51942</commitId><timestamp>1777332175000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/laforge</absoluteUrl><fullName>laforge</fullName></author><authorEmail>laforge@osmocom.org</authorEmail><comment>rspro_util: asn1 decode: fix memleak when decoding fails

Change-Id: I071343d0134dbffb1bb71ea26a5b514be1b5bb27
</comment><date>2026-04-27 23:22:55 +0000</date><id>af717d3b73a97dafc2bbd5cba382266909a51942</id><msg>rspro_util: asn1 decode: fix memleak when decoding fails</msg><path><editType>edit</editType><file>src/rspro_util.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/laforge</absoluteUrl><fullName>laforge</fullName></culprit><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/aeversberg</absoluteUrl><fullName>Andreas Eversberg</fullName></culprit></run></matrixBuild>