<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>179297</buildingDurationMillis><executingTimeMillis>179297</executingTimeMillis><executorUtilization>1.0</executorUtilization><queuingDurationMillis>8360</queuingDurationMillis><queuingTimeMillis>8360</queuingTimeMillis><subTaskCount>0</subTaskCount><totalDurationMillis>187657</totalDurationMillis><waitingDurationMillis>8359</waitingDurationMillis><waitingTimeMillis>8359</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><originmaster _class='hudson.plugins.git.util.Build'><buildNumber>4761</buildNumber><marked><SHA1>3021739a6072c60295dcea08c160cde22b8f4eca</SHA1><branch><SHA1>3021739a6072c60295dcea08c160cde22b8f4eca</SHA1><name>origin/master</name></branch></marked><revision><SHA1>3021739a6072c60295dcea08c160cde22b8f4eca</SHA1><branch><SHA1>3021739a6072c60295dcea08c160cde22b8f4eca</SHA1><name>origin/master</name></branch></revision></originmaster><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>3086</buildNumber><marked><SHA1>a42f4a51c09fdc3c4f532ff07b806e26bf7e9fa1</SHA1><branch><SHA1>a42f4a51c09fdc3c4f532ff07b806e26bf7e9fa1</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>a42f4a51c09fdc3c4f532ff07b806e26bf7e9fa1</SHA1><branch><SHA1>a42f4a51c09fdc3c4f532ff07b806e26bf7e9fa1</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>3021739a6072c60295dcea08c160cde22b8f4eca</SHA1><branch><SHA1>3021739a6072c60295dcea08c160cde22b8f4eca</SHA1><name>origin/master</name></branch></lastBuiltRevision><remoteUrl>https://gerrit.osmocom.org/libosmocore</remoteUrl><scmName></scmName></action><action></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'><artifactsUrl>https://jenkins.osmocom.org/jenkins/job/master-libosmocore/4761/artifact</artifactsUrl><changesUrl>https://jenkins.osmocom.org/jenkins/job/master-libosmocore/changes</changesUrl><displayUrl>https://jenkins.osmocom.org/jenkins/job/master-libosmocore/4761/</displayUrl><testsUrl>https://jenkins.osmocom.org/jenkins/job/master-libosmocore/4761/testReport</testsUrl></action><building>false</building><displayName>#4761</displayName><duration>179297</duration><estimatedDuration>172329</estimatedDuration><fullDisplayName>master-libosmocore #4761</fullDisplayName><id>4761</id><inProgress>false</inProgress><keepLog>false</keepLog><number>4761</number><queueId>94835</queueId><result>SUCCESS</result><timestamp>1776852608849</timestamp><url>https://jenkins.osmocom.org/jenkins/job/master-libosmocore/4761/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tests/testsuite.at</affectedPath><affectedPath>src/core/osmo_io.c</affectedPath><affectedPath>tests/osmo_io/osmo_io_backpressure_test_uring.ok</affectedPath><affectedPath>tests/osmo_io/osmo_io_backpressure_test.c</affectedPath><affectedPath>tests/osmo_io/osmo_io_backpressure_test.ok</affectedPath><affectedPath>tests/Makefile.am</affectedPath><commitId>3021739a6072c60295dcea08c160cde22b8f4eca</commitId><timestamp>1776433625000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/fixeria</absoluteUrl><fullName>Vadim Yanitskiy</fullName></author><authorEmail>vyanitskiy@sysmocom.de</authorEmail><comment>osmo_io: iofd_txqueue_dequeue(): fix double next-&gt;io_len decrement

The fill-up logic in iofd_txqueue_dequeue() was incorrectly
decrementing next-&gt;io_len twice: once when removing a buffer that
didn't fit, and again when assigning to msg_iovlen.  This may cause
next-&gt;io_len to reach 0 and trigger an assert at osmo_io.c:274:

  Assert failed next-&gt;io_len &gt; 0

Add separate osmo_io_backpressure_test to verify queue management
under network backpressure conditions.  Use separate .ok files for
poll vs io_uring backends since they produce different I/O patterns.
This unit test reproduces the assert when the fix is not applied.

Change-Id: Ia96e25d11d8d683fa9dd0c56bdac257992edd782
Fixes: 3c2a02db4 ("osmo-io: Put together message buffers when dequeued from tx queue")
Related: OS#6997
</comment><date>2026-04-17 20:47:05 +0700</date><id>3021739a6072c60295dcea08c160cde22b8f4eca</id><msg>osmo_io: iofd_txqueue_dequeue(): fix double next-&gt;io_len decrement</msg><path><editType>add</editType><file>tests/osmo_io/osmo_io_backpressure_test_uring.ok</file></path><path><editType>edit</editType><file>src/core/osmo_io.c</file></path><path><editType>add</editType><file>tests/osmo_io/osmo_io_backpressure_test.ok</file></path><path><editType>edit</editType><file>tests/testsuite.at</file></path><path><editType>edit</editType><file>tests/Makefile.am</file></path><path><editType>add</editType><file>tests/osmo_io/osmo_io_backpressure_test.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/fixeria</absoluteUrl><description></description><fullName>Vadim Yanitskiy</fullName><id>fixeria</id></culprit><run><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "master-libosmocore" build number 475</shortDescription><upstreamBuild>475</upstreamBuild><upstreamProject>master-libosmocore</upstreamProject><upstreamUrl>job/master-libosmocore/</upstreamUrl></cause></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>475</buildNumber><marked><SHA1>2fd4fe6aa109c8df50baac465f0393a303a64dd2</SHA1><branch><SHA1>2fd4fe6aa109c8df50baac465f0393a303a64dd2</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>2fd4fe6aa109c8df50baac465f0393a303a64dd2</SHA1><branch><SHA1>2fd4fe6aa109c8df50baac465f0393a303a64dd2</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>2fd4fe6aa109c8df50baac465f0393a303a64dd2</SHA1><branch><SHA1>2fd4fe6aa109c8df50baac465f0393a303a64dd2</SHA1><name>refs/remotes/origin/master</name></branch></lastBuiltRevision><remoteUrl>git://git.osmocom.org/libosmocore</remoteUrl><scmName></scmName></action><action _class='hudson.plugins.git.GitTagAction'></action><action></action><action></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#475</displayName><duration>46305</duration><estimatedDuration>46305</estimatedDuration><fullDisplayName>master-libosmocore » a2=default,a3=default,amd64,osmocom-master-debian9 #475</fullDisplayName><id>475</id><inProgress>false</inProgress><keepLog>false</keepLog><number>475</number><queueId>23924</queueId><result>FAILURE</result><timestamp>1536998408001</timestamp><url>https://jenkins.osmocom.org/jenkins/job/master-libosmocore/a2=default,a3=default,arch=amd64,label=osmocom-master-debian9/475/</url><builtOn>build2-deb9build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>include/osmocom/gsm/protocol/gsm_08_08.h</affectedPath><commitId>4b081b1d8862114f59af433b943dea86ce47ac71</commitId><timestamp>1536909248000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/pmaier</absoluteUrl><fullName>pmaier@sysmocom.de</fullName></author><authorEmail>pmaier@sysmocom.de</authorEmail><comment>gsm0808: fix wrong codec defaults for OFR_AMR_WB
3GPP TS 48.008 chapter 3.2.2.103 states that the configuration bits of 
OFR_AMR_WB are coded as follows:
"S0, S2, S4 indicates the supported Codec Configurations. S1, S3, S5,
S6, S7 are reserved and coded with zeroes."
The current default setting of 0x3F violates this requirement. Lets set 
the "forbidden" settings zu zero and keep only the allowed ones.
Change-Id: I4a481def59e9c98cfdcafc2b80c0ac7df0c14130
</comment><date>2018-09-14 09:14:08 +0200</date><id>4b081b1d8862114f59af433b943dea86ce47ac71</id><msg>gsm0808: fix wrong codec defaults for OFR_AMR_WB</msg><path><editType>edit</editType><file>include/osmocom/gsm/protocol/gsm_08_08.h</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>include/osmocom/gsm/gsm0808_utils.h</affectedPath><affectedPath>src/gsm/gsm0808_utils.c</affectedPath><affectedPath>src/gsm/libosmogsm.map</affectedPath><affectedPath>include/osmocom/gsm/protocol/gsm_08_08.h</affectedPath><affectedPath>tests/gsm0808/gsm0808_test.c</affectedPath><affectedPath>tests/gsm0808/gsm0808_test.ok</affectedPath><commitId>2fd4fe6aa109c8df50baac465f0393a303a64dd2</commitId><timestamp>1536935050000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/pmaier</absoluteUrl><fullName>pmaier@sysmocom.de</fullName></author><authorEmail>pmaier@sysmocom.de</authorEmail><comment>gsm0808: add function to convert amr gsm0408 setings to gsm0808
Add a function to convert struct gsm48_multi_rate_conf, which holds the 
codec settings for AMR, to S0-S15 bit representation as defined in 3GPP
TS 48.008 3.2.2.49
Change-Id: I4e656731b16621736c7a2f4e64d9ce63b1064e98 Related: OS#3548
</comment><date>2018-09-14 16:24:10 +0200</date><id>2fd4fe6aa109c8df50baac465f0393a303a64dd2</id><msg>gsm0808: add function to convert amr gsm0408 setings to gsm0808</msg><path><editType>edit</editType><file>tests/gsm0808/gsm0808_test.ok</file></path><path><editType>edit</editType><file>include/osmocom/gsm/gsm0808_utils.h</file></path><path><editType>edit</editType><file>include/osmocom/gsm/protocol/gsm_08_08.h</file></path><path><editType>edit</editType><file>src/gsm/gsm0808_utils.c</file></path><path><editType>edit</editType><file>src/gsm/libosmogsm.map</file></path><path><editType>edit</editType><file>tests/gsm0808/gsm0808_test.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/pmaier</absoluteUrl><fullName>pmaier@sysmocom.de</fullName></culprit></run><run><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "master-libosmocore" build number 475</shortDescription><upstreamBuild>475</upstreamBuild><upstreamProject>master-libosmocore</upstreamProject><upstreamUrl>job/master-libosmocore/</upstreamUrl></cause></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>475</buildNumber><marked><SHA1>2fd4fe6aa109c8df50baac465f0393a303a64dd2</SHA1><branch><SHA1>2fd4fe6aa109c8df50baac465f0393a303a64dd2</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>2fd4fe6aa109c8df50baac465f0393a303a64dd2</SHA1><branch><SHA1>2fd4fe6aa109c8df50baac465f0393a303a64dd2</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>2fd4fe6aa109c8df50baac465f0393a303a64dd2</SHA1><branch><SHA1>2fd4fe6aa109c8df50baac465f0393a303a64dd2</SHA1><name>refs/remotes/origin/master</name></branch></lastBuiltRevision><remoteUrl>git://git.osmocom.org/libosmocore</remoteUrl><scmName></scmName></action><action _class='hudson.plugins.git.GitTagAction'></action><action></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#475</displayName><duration>35854</duration><estimatedDuration>35854</estimatedDuration><fullDisplayName>master-libosmocore » a2=default,a3=default,arm-none-eabi,osmocom-master-debian9 #475</fullDisplayName><id>475</id><inProgress>false</inProgress><keepLog>false</keepLog><number>475</number><queueId>23925</queueId><result>SUCCESS</result><timestamp>1536998408001</timestamp><url>https://jenkins.osmocom.org/jenkins/job/master-libosmocore/a2=default,a3=default,arch=arm-none-eabi,label=osmocom-master-debian9/475/</url><builtOn>host2-deb9build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>include/osmocom/gsm/protocol/gsm_08_08.h</affectedPath><commitId>4b081b1d8862114f59af433b943dea86ce47ac71</commitId><timestamp>1536909248000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/pmaier</absoluteUrl><fullName>pmaier@sysmocom.de</fullName></author><authorEmail>pmaier@sysmocom.de</authorEmail><comment>gsm0808: fix wrong codec defaults for OFR_AMR_WB
3GPP TS 48.008 chapter 3.2.2.103 states that the configuration bits of 
OFR_AMR_WB are coded as follows:
"S0, S2, S4 indicates the supported Codec Configurations. S1, S3, S5,
S6, S7 are reserved and coded with zeroes."
The current default setting of 0x3F violates this requirement. Lets set 
the "forbidden" settings zu zero and keep only the allowed ones.
Change-Id: I4a481def59e9c98cfdcafc2b80c0ac7df0c14130
</comment><date>2018-09-14 09:14:08 +0200</date><id>4b081b1d8862114f59af433b943dea86ce47ac71</id><msg>gsm0808: fix wrong codec defaults for OFR_AMR_WB</msg><path><editType>edit</editType><file>include/osmocom/gsm/protocol/gsm_08_08.h</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>include/osmocom/gsm/gsm0808_utils.h</affectedPath><affectedPath>src/gsm/gsm0808_utils.c</affectedPath><affectedPath>src/gsm/libosmogsm.map</affectedPath><affectedPath>include/osmocom/gsm/protocol/gsm_08_08.h</affectedPath><affectedPath>tests/gsm0808/gsm0808_test.c</affectedPath><affectedPath>tests/gsm0808/gsm0808_test.ok</affectedPath><commitId>2fd4fe6aa109c8df50baac465f0393a303a64dd2</commitId><timestamp>1536935050000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/pmaier</absoluteUrl><fullName>pmaier@sysmocom.de</fullName></author><authorEmail>pmaier@sysmocom.de</authorEmail><comment>gsm0808: add function to convert amr gsm0408 setings to gsm0808
Add a function to convert struct gsm48_multi_rate_conf, which holds the 
codec settings for AMR, to S0-S15 bit representation as defined in 3GPP
TS 48.008 3.2.2.49
Change-Id: I4e656731b16621736c7a2f4e64d9ce63b1064e98 Related: OS#3548
</comment><date>2018-09-14 16:24:10 +0200</date><id>2fd4fe6aa109c8df50baac465f0393a303a64dd2</id><msg>gsm0808: add function to convert amr gsm0408 setings to gsm0808</msg><path><editType>edit</editType><file>tests/gsm0808/gsm0808_test.ok</file></path><path><editType>edit</editType><file>tests/gsm0808/gsm0808_test.c</file></path><path><editType>edit</editType><file>include/osmocom/gsm/gsm0808_utils.h</file></path><path><editType>edit</editType><file>src/gsm/gsm0808_utils.c</file></path><path><editType>edit</editType><file>include/osmocom/gsm/protocol/gsm_08_08.h</file></path><path><editType>edit</editType><file>src/gsm/libosmogsm.map</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/pmaier</absoluteUrl><fullName>pmaier@sysmocom.de</fullName></culprit></run><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-libosmocore" build number 4,761</shortDescription><upstreamBuild>4761</upstreamBuild><upstreamProject>master-libosmocore</upstreamProject><upstreamUrl>job/master-libosmocore/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>0</buildableDurationMillis><buildableTimeMillis>0</buildableTimeMillis><buildingDurationMillis>175036</buildingDurationMillis><executingTimeMillis>175036</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>4761</buildNumber><marked><SHA1>3021739a6072c60295dcea08c160cde22b8f4eca</SHA1><branch><SHA1>3021739a6072c60295dcea08c160cde22b8f4eca</SHA1><name>origin/master</name></branch></marked><revision><SHA1>3021739a6072c60295dcea08c160cde22b8f4eca</SHA1><branch><SHA1>3021739a6072c60295dcea08c160cde22b8f4eca</SHA1><name>origin/master</name></branch></revision></originmaster></buildsByBranchName><lastBuiltRevision><SHA1>3021739a6072c60295dcea08c160cde22b8f4eca</SHA1><branch><SHA1>3021739a6072c60295dcea08c160cde22b8f4eca</SHA1><name>origin/master</name></branch></lastBuiltRevision><remoteUrl>https://gerrit.osmocom.org/libosmocore</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#4761</displayName><duration>175036</duration><estimatedDuration>167715</estimatedDuration><fullDisplayName>master-libosmocore » a2=default,a3=default,a4=default,amd64,io_uring #4761</fullDisplayName><id>4761</id><inProgress>false</inProgress><keepLog>false</keepLog><number>4761</number><queueId>94837</queueId><result>SUCCESS</result><timestamp>1776852608849</timestamp><url>https://jenkins.osmocom.org/jenkins/job/master-libosmocore/a2=default,a3=default,a4=default,arch=amd64,label=io_uring/4761/</url><builtOn>build4-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tests/testsuite.at</affectedPath><affectedPath>src/core/osmo_io.c</affectedPath><affectedPath>tests/osmo_io/osmo_io_backpressure_test_uring.ok</affectedPath><affectedPath>tests/osmo_io/osmo_io_backpressure_test.c</affectedPath><affectedPath>tests/osmo_io/osmo_io_backpressure_test.ok</affectedPath><affectedPath>tests/Makefile.am</affectedPath><commitId>3021739a6072c60295dcea08c160cde22b8f4eca</commitId><timestamp>1776433625000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/fixeria</absoluteUrl><fullName>Vadim Yanitskiy</fullName></author><authorEmail>vyanitskiy@sysmocom.de</authorEmail><comment>osmo_io: iofd_txqueue_dequeue(): fix double next-&gt;io_len decrement

The fill-up logic in iofd_txqueue_dequeue() was incorrectly
decrementing next-&gt;io_len twice: once when removing a buffer that
didn't fit, and again when assigning to msg_iovlen.  This may cause
next-&gt;io_len to reach 0 and trigger an assert at osmo_io.c:274:

  Assert failed next-&gt;io_len &gt; 0

Add separate osmo_io_backpressure_test to verify queue management
under network backpressure conditions.  Use separate .ok files for
poll vs io_uring backends since they produce different I/O patterns.
This unit test reproduces the assert when the fix is not applied.

Change-Id: Ia96e25d11d8d683fa9dd0c56bdac257992edd782
Fixes: 3c2a02db4 ("osmo-io: Put together message buffers when dequeued from tx queue")
Related: OS#6997
</comment><date>2026-04-17 20:47:05 +0700</date><id>3021739a6072c60295dcea08c160cde22b8f4eca</id><msg>osmo_io: iofd_txqueue_dequeue(): fix double next-&gt;io_len decrement</msg><path><editType>edit</editType><file>src/core/osmo_io.c</file></path><path><editType>add</editType><file>tests/osmo_io/osmo_io_backpressure_test.ok</file></path><path><editType>add</editType><file>tests/osmo_io/osmo_io_backpressure_test_uring.ok</file></path><path><editType>edit</editType><file>tests/Makefile.am</file></path><path><editType>add</editType><file>tests/osmo_io/osmo_io_backpressure_test.c</file></path><path><editType>edit</editType><file>tests/testsuite.at</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/fixeria</absoluteUrl><fullName>Vadim Yanitskiy</fullName></culprit></run><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-libosmocore" build number 4,761</shortDescription><upstreamBuild>4761</upstreamBuild><upstreamProject>master-libosmocore</upstreamProject><upstreamUrl>job/master-libosmocore/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>0</buildableDurationMillis><buildableTimeMillis>0</buildableTimeMillis><buildingDurationMillis>25249</buildingDurationMillis><executingTimeMillis>25249</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>4761</buildNumber><marked><SHA1>3021739a6072c60295dcea08c160cde22b8f4eca</SHA1><branch><SHA1>3021739a6072c60295dcea08c160cde22b8f4eca</SHA1><name>origin/master</name></branch></marked><revision><SHA1>3021739a6072c60295dcea08c160cde22b8f4eca</SHA1><branch><SHA1>3021739a6072c60295dcea08c160cde22b8f4eca</SHA1><name>origin/master</name></branch></revision></originmaster></buildsByBranchName><lastBuiltRevision><SHA1>3021739a6072c60295dcea08c160cde22b8f4eca</SHA1><branch><SHA1>3021739a6072c60295dcea08c160cde22b8f4eca</SHA1><name>origin/master</name></branch></lastBuiltRevision><remoteUrl>https://gerrit.osmocom.org/libosmocore</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#4761</displayName><duration>25249</duration><estimatedDuration>27294</estimatedDuration><fullDisplayName>master-libosmocore » a2=default,a3=default,a4=default,arm-none-eabi,io_uring #4761</fullDisplayName><id>4761</id><inProgress>false</inProgress><keepLog>false</keepLog><number>4761</number><queueId>94836</queueId><result>SUCCESS</result><timestamp>1776852608849</timestamp><url>https://jenkins.osmocom.org/jenkins/job/master-libosmocore/a2=default,a3=default,a4=default,arch=arm-none-eabi,label=io_uring/4761/</url><builtOn>build4-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>tests/testsuite.at</affectedPath><affectedPath>src/core/osmo_io.c</affectedPath><affectedPath>tests/osmo_io/osmo_io_backpressure_test.c</affectedPath><affectedPath>tests/osmo_io/osmo_io_backpressure_test_uring.ok</affectedPath><affectedPath>tests/Makefile.am</affectedPath><affectedPath>tests/osmo_io/osmo_io_backpressure_test.ok</affectedPath><commitId>3021739a6072c60295dcea08c160cde22b8f4eca</commitId><timestamp>1776433625000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/fixeria</absoluteUrl><fullName>Vadim Yanitskiy</fullName></author><authorEmail>vyanitskiy@sysmocom.de</authorEmail><comment>osmo_io: iofd_txqueue_dequeue(): fix double next-&gt;io_len decrement

The fill-up logic in iofd_txqueue_dequeue() was incorrectly
decrementing next-&gt;io_len twice: once when removing a buffer that
didn't fit, and again when assigning to msg_iovlen.  This may cause
next-&gt;io_len to reach 0 and trigger an assert at osmo_io.c:274:

  Assert failed next-&gt;io_len &gt; 0

Add separate osmo_io_backpressure_test to verify queue management
under network backpressure conditions.  Use separate .ok files for
poll vs io_uring backends since they produce different I/O patterns.
This unit test reproduces the assert when the fix is not applied.

Change-Id: Ia96e25d11d8d683fa9dd0c56bdac257992edd782
Fixes: 3c2a02db4 ("osmo-io: Put together message buffers when dequeued from tx queue")
Related: OS#6997
</comment><date>2026-04-17 20:47:05 +0700</date><id>3021739a6072c60295dcea08c160cde22b8f4eca</id><msg>osmo_io: iofd_txqueue_dequeue(): fix double next-&gt;io_len decrement</msg><path><editType>edit</editType><file>src/core/osmo_io.c</file></path><path><editType>edit</editType><file>tests/Makefile.am</file></path><path><editType>add</editType><file>tests/osmo_io/osmo_io_backpressure_test.c</file></path><path><editType>add</editType><file>tests/osmo_io/osmo_io_backpressure_test.ok</file></path><path><editType>add</editType><file>tests/osmo_io/osmo_io_backpressure_test_uring.ok</file></path><path><editType>edit</editType><file>tests/testsuite.at</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/fixeria</absoluteUrl><fullName>Vadim Yanitskiy</fullName></culprit></run></matrixBuild>