Attention is currently required from: keith.
pespin has posted comments on this change by keith. ( https://gerrit.osmocom.org/c/osmo-msc/+/28342?usp=email )
Change subject: SMS UX optimisation: Deliver rx'd SMS right away
......................................................................
Patch Set 4:
(1 comment)
Patchset:
PS4:
I'm not sure I'm fully following you tbh, because from your previous (full) comment afaict you seem to state both that you are reordering and also that you are not reordering them?
> I'm not "reordering" the SMS ...
> WE just got an SMS for Alice. we dropped it in the database, the id is 5467, send SMS number 5467, now also look for other SMS for Alice and send them too.
^ This looks like on-purpose reordering to me (better called disordering?).
Also, as mentioned I'm not currently aware of the existing codeset regarding SMS, just wanted to raise the topic, share my concern regarding possible reordering happening on purpose due to the new algorithm.
> We just got an SMS for Alice, we dropped it in the database, we don't care about the id, but we will now look in the database for all SMS for Alice and send them?
> Sounds like the latter will keep you more happy
Yes that'd be the behavior I'd expect.
I guess when select()ing SMS for Alice they'll probably come sorted by sms id since it's probably an increasing key, so we get them ordered in inserted order by free (or we could order them explicitly in the SQL query).
> Is it not the MOST RECENT information that should have priority? Yes, on reflection, I think so.
I disagree here. Following this approach eg. in UDP, RTP, etc. you'd end up with tons of reordered packets. The fact that reordering may happen doesn't mean we should not be trying to send stuff in order imho.
> As an aside, SMS is simply NOT time sensitive. not even on commercial networks. There is ZERO guarantee of chronological delivery
ACK, but as mentioned above the fact that there's no guarantee doesn't mean we should be trying our best to do so when we know how to do it.
--
To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/28342?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Change-Id: I9af51ef0d9c2e6c5acc5128efd6195df881b680c
Gerrit-Change-Number: 28342
Gerrit-PatchSet: 4
Gerrit-Owner: keith <keith(a)rhizomatica.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-CC: laforge <laforge(a)osmocom.org>
Gerrit-CC: neels <nhofmeyr(a)sysmocom.de>
Gerrit-CC: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: keith <keith(a)rhizomatica.org>
Gerrit-Comment-Date: Tue, 04 Nov 2025 16:41:17 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: pespin <pespin(a)sysmocom.de>
Comment-In-Reply-To: keith <keith(a)rhizomatica.org>
Attention is currently required from: pespin.
keith has posted comments on this change by keith. ( https://gerrit.osmocom.org/c/osmo-msc/+/28342?usp=email )
Change subject: SMS UX optimisation: Deliver rx'd SMS right away
......................................................................
Patch Set 4:
(1 comment)
Patchset:
PS4:
> I'm not really involved into the big picture/roadmap regarding SMS, but I'd argue it makes more sens […]
From my experience in production and intensive testing of the smsqueue, I never have seen the scenario you describe and I believe it is extremely unlikely.
Anyway, if Bob is available when Alice sends "I'm late", but somehow or other "I'm on time" was not delivered, the latter will be queued and sent along with the former, (because the code I wrote will ensure to do that). I'm not "reordering" the SMS, I've explained at length in above comments where the delay comes from. What do you mean by "the specific subscriber"? Do you not mean precisely what I propose with this patch?
Do you want me to change it from:
WE just got an SMS for Alice. we dropped it in the database, the id is 5467, send SMS number 5467, now also look for other SMS for Alice and send them too.
We just got an SMS for Alice, we dropped it in the database, we don't care about the id, but we will now look in the database for all SMS for Alice and send them?
Sounds like the latter will keep you more happy, but it does essentially come to the same thing. OK, maybe, just maybe if Bob's SMS storage is full, but then he deletes one SMS, (and meanwhile, other relevant mechanisms fail, like notifying the network of storage availability) and then Alice sends "I'm late", then "I'm late" will be received first (and only) because Bobs SMS storage is now full again, so "I'm on time" remains queued. In your suggestion it actually works the other way round. Bob will receive "I'm on time" and never find out that Alice in late. So maybe the argument actually works the other way round. Is it not the MOST RECENT information that should have priority? Yes, on reflection, I think so.
Hmm. it becomes somewhat philosophical.
BTW, just to state it again, the delay problem is that Alice sends Bob "I'm late" and we drop it in the database and return to select(). we then go through this horribly complicated process of taking SMS from the database and putting them into the in-memory queue, and if there's enough SMS in there (for subs that are in the VLR) that cannot for whatever reason be delivered, then we simply WILL NOT get to Alice's message at all. And Bob get's nothing. He sits and waits at the cafe anyway, regardless of whether or not Alice is late... and well life somehow goes on and the world does not end, just like it was in 1980.
As an aside, SMS is simply NOT time sensitive. not even on commercial networks. There is ZERO guarantee of chronological delivery. It is up to the receiving UE to order the display of messages based on timestamps. I often have problems with 2FA not arriving before the sender has expired it. Or yes, indeed, as you say. requesting a 2FA, and not getting it, trying again, and getting the first 2FA which is now invalid and even getting to that point of 3 strikes. It's incredibly frustrating.
Anyway 2FA SMS should.. what's that hacker expression, "die in fire"?
--
To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/28342?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Change-Id: I9af51ef0d9c2e6c5acc5128efd6195df881b680c
Gerrit-Change-Number: 28342
Gerrit-PatchSet: 4
Gerrit-Owner: keith <keith(a)rhizomatica.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-CC: laforge <laforge(a)osmocom.org>
Gerrit-CC: neels <nhofmeyr(a)sysmocom.de>
Gerrit-CC: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Tue, 04 Nov 2025 15:40:06 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: pespin <pespin(a)sysmocom.de>
Attention is currently required from: keith.
pespin has posted comments on this change by keith. ( https://gerrit.osmocom.org/c/osmo-msc/+/28342?usp=email )
Change subject: SMS UX optimisation: Deliver rx'd SMS right away
......................................................................
Patch Set 4:
(1 comment)
Patchset:
PS4:
I'm not really involved into the big picture/roadmap regarding SMS, but I'd argue it makes more sense to send SMS in order in the queue instead of reordering SMS (what would happen if we send the SMS directly upon receive).
Think for example 2 SMS sent by Alice to Bob where the 2nd SMS provides contradictory information wrt 1st SMS (eg. "I'm arriving on time" vs "I'm late", or eg. 2-factor authentication codes).
Without looking in detail, may it be that the delay @keith@rhizomatica.org is mentioning comes from the fact that when we run the queue we try to lookup for SMS for all subscribers and retrigger them? AFAIU the sane approach would be to lookup SMS for that specific subscriber, not sure if we are doing that already.
--
To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/28342?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Change-Id: I9af51ef0d9c2e6c5acc5128efd6195df881b680c
Gerrit-Change-Number: 28342
Gerrit-PatchSet: 4
Gerrit-Owner: keith <keith(a)rhizomatica.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-CC: laforge <laforge(a)osmocom.org>
Gerrit-CC: neels <nhofmeyr(a)sysmocom.de>
Gerrit-CC: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: keith <keith(a)rhizomatica.org>
Gerrit-Comment-Date: Tue, 04 Nov 2025 11:10:30 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
osmith has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/c/libosmocore/+/41296?usp=email )
Change subject: osmo-release: debian_patch_apply: handle empty dir
......................................................................
osmo-release: debian_patch_apply: handle empty dir
Don't fail with the following bogus error message if the debian/patches
directory exists but is empty:
error: can't open patch '…/git/libosmocore/debian/patches/*.patch': No such file or directory
Fixes: OS#6873
Change-Id: I6656602c58fd221c8bb933890712d1392a1dfdab
---
M osmo-release.sh
1 file changed, 3 insertions(+), 3 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/96/41296/2
--
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/41296?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newpatchset
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: I6656602c58fd221c8bb933890712d1392a1dfdab
Gerrit-Change-Number: 41296
Gerrit-PatchSet: 2
Gerrit-Owner: osmith <osmith(a)sysmocom.de>
Gerrit-CC: Jenkins Builder
osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/41296?usp=email )
Change subject: osmo-release: debian_patch_apply: handle empty dir
......................................................................
osmo-release: debian_patch_apply: handle empty dir
Don't fail with the following bogus error message if the debian/patches
directory exists but is empty:
error: can't open patch '/crypt/space/home/laforge/projects/git/libosmocore/debian/patches/*.patch': No such file or directory
Fixes: OS#6873
Change-Id: I6656602c58fd221c8bb933890712d1392a1dfdab
---
M osmo-release.sh
1 file changed, 3 insertions(+), 3 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/96/41296/1
diff --git a/osmo-release.sh b/osmo-release.sh
index 14790da..5a9584c 100755
--- a/osmo-release.sh
+++ b/osmo-release.sh
@@ -151,10 +151,10 @@
# Make sure that patches under debian/patches/ apply:
check_debian_patch_apply() {
- if [ ! -d "${GIT_TOPDIR}/debian/patches" ]; then
- return
- fi
for patch in ${GIT_TOPDIR}/debian/patches/*.patch; do
+ if ! [ -e "$patch" ]; then
+ continue
+ fi
git apply --check $patch
if [ $? -ne 0 ]; then
error "patch no longer applies! $patch"
--
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/41296?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: I6656602c58fd221c8bb933890712d1392a1dfdab
Gerrit-Change-Number: 41296
Gerrit-PatchSet: 1
Gerrit-Owner: osmith <osmith(a)sysmocom.de>