GNOME Bugzilla – Bug 675175
New SMS messages aren't reported if they reuse an index number
Last modified: 2012-09-14 06:03:36 UTC
ModemManager on ChromiumOS, corresponding to rev. e8bc2f41e710ed9e3a2576538f5c9fe74b7ef6db from master. With ModemManager driving a GSM modem, attempt the following: 1. Send a SMS to the modem. Observe the new SMS object advertised in the "Added" signal. Observe the device index of the SMS in the verbose debug logs. 2. Delete the SMS with the Modem.Messaging.Delete method. 3. Send another SMS to the modem. Observe the device index of the SMS - if no other message has been received, it will likely be the same as the device index seen in step 2. No "Added" or "Completed" signal will be generated, and the message does not appear in the SMS list generated with 'mmcli -m 0 --list-sms'. The issue is that ModemManager is keeping a set of index numbers that have been seen in CMTI notifications, in order to suppress duplicates (the 'known_sms_parts' field of MMBroadbandModemPrivate in src/mm-broadband-modem.c. ), but does not clear entries from this set when messages are deleted, or, in fact, ever.
A fix for this is already available in the 'multipart-sms' branch, will resolve the bug as fixed when merged to master.
Fixed in: commit 815decb03474754a56e7572a2823ce438a81023b Author: Aleksander Morgado <aleksander@lanedo.com> Date: Wed Sep 12 10:41:27 2012 +0200 broadband-modem: properly avoid duplicate CMTI indications We will look for the part being notified in the CMTI indication directly in the list of processed parts; and if we have it there already we won't re-process it. Still, we may get several CMTI indications for the same part one after the other, so it may still happen that the second CMTI comes *before* we have parsed and created the part in the SMS list. For that case, the SMS list will reject taking the part if there is already a part with the same storage+index already processed. This fix removes the `known_sms_parts' hash table, which was being handled incorrectly. This should fix https://bugzilla.gnome.org/show_bug.cgi?id=675175