drop error log for when a subscriber does not exist

Checking for existence of a subscriber and seeing that there is none is not
inherently an error. However, osmo-hlr currently logs on all occasions:

  DAUC ERROR Cannot read subscriber from db: MSISDN='1001': No such subscriber

This spams the ERROR log level. Particularly when a D-GSM setup does subscriber
existence checks for every incoming mslookup request, that potentially creates
constant ERROR logging.

The "No such subscriber" part comes from db_sel(), which might also return an
sqlite3_errmsg(). We still want those sqlite3_errmsg()es in the ERROR log.

Hence print an ERROR log only if db_sel() returns an rc != -ENOENT.

Change-Id: I5044e9b4519b948edc4e451cef0f7830d315619b
This commit is contained in:
Neels Hofmeyr 2019-11-25 05:37:53 +01:00
parent 9489a9ce4b
commit 0d82a87c0d
2 changed files with 4 additions and 30 deletions

View File

@ -568,7 +568,7 @@ int db_subscr_get_by_imsi(struct db_context *dbc, const char *imsi,
return -EIO;
rc = db_sel(dbc, stmt, subscr, &err);
if (rc)
if (rc && rc != -ENOENT)
LOGP(DAUC, LOGL_ERROR, "Cannot read subscriber from db: IMSI='%s': %s\n",
imsi, err);
return rc;
@ -619,7 +619,7 @@ int db_subscr_get_by_msisdn(struct db_context *dbc, const char *msisdn,
return -EIO;
rc = db_sel(dbc, stmt, subscr, &err);
if (rc)
if (rc && rc != -ENOENT)
LOGP(DAUC, LOGL_ERROR, "Cannot read subscriber from db: MSISDN='%s': %s\n",
msisdn, err);
return rc;
@ -643,7 +643,7 @@ int db_subscr_get_by_id(struct db_context *dbc, int64_t id,
return -EIO;
rc = db_sel(dbc, stmt, subscr, &err);
if (rc)
if (rc && rc != -ENOENT)
LOGP(DAUC, LOGL_ERROR, "Cannot read subscriber from db: ID=%" PRId64 ": %s\n",
id, err);
return rc;
@ -666,7 +666,7 @@ int db_subscr_get_by_imei(struct db_context *dbc, const char *imei, struct hlr_s
return -EIO;
rc = db_sel(dbc, stmt, subscr, &err);
if (rc)
if (rc && rc != -ENOENT)
LOGP(DAUC, LOGL_ERROR, "Cannot read subscriber from db: IMEI=%s: %s\n", imei, err);
return rc;
}

View File

@ -64,25 +64,21 @@ db_subscr_create(dbc, "123456789 000003", DB_SUBSCR_FLAG_NAM_CS | DB_SUBSCR_FLAG
DAUC Cannot create subscriber: invalid IMSI: '123456789 000003'
db_subscr_get_by_imsi(dbc, "123456789000003", &g_subscr) --> -ENOENT
DAUC Cannot read subscriber from db: IMSI='123456789000003': No such subscriber
db_subscr_create(dbc, "123456789000002123456", DB_SUBSCR_FLAG_NAM_CS | DB_SUBSCR_FLAG_NAM_PS) --> -EINVAL
DAUC Cannot create subscriber: invalid IMSI: '123456789000002123456'
db_subscr_get_by_imsi(dbc, "123456789000002123456", &g_subscr) --> -ENOENT
DAUC Cannot read subscriber from db: IMSI='123456789000002123456': No such subscriber
db_subscr_create(dbc, "foobar123", DB_SUBSCR_FLAG_NAM_CS | DB_SUBSCR_FLAG_NAM_PS) --> -EINVAL
DAUC Cannot create subscriber: invalid IMSI: 'foobar123'
db_subscr_get_by_imsi(dbc, "foobar123", &g_subscr) --> -ENOENT
DAUC Cannot read subscriber from db: IMSI='foobar123': No such subscriber
db_subscr_create(dbc, "123", DB_SUBSCR_FLAG_NAM_CS | DB_SUBSCR_FLAG_NAM_PS) --> -EINVAL
DAUC Cannot create subscriber: invalid IMSI: '123'
db_subscr_get_by_imsi(dbc, "123", &g_subscr) --> -ENOENT
DAUC Cannot read subscriber from db: IMSI='123': No such subscriber
db_subscr_create(dbc, short_imsi, DB_SUBSCR_FLAG_NAM_CS | DB_SUBSCR_FLAG_NAM_PS) --> 0
@ -142,7 +138,6 @@ struct hlr_subscriber {
}
db_subscr_get_by_msisdn(dbc, "54321012345678912345678", &g_subscr) --> -ENOENT
DAUC Cannot read subscriber from db: MSISDN='54321012345678912345678': No such subscriber
db_subscr_update_msisdn_by_imsi(dbc, imsi0, "543 21") --> -EINVAL
DAUC IMSI='123456789000000': Cannot update subscriber: invalid MSISDN: '543 21'
@ -155,7 +150,6 @@ struct hlr_subscriber {
}
db_subscr_get_by_msisdn(dbc, "543 21", &g_subscr) --> -ENOENT
DAUC Cannot read subscriber from db: MSISDN='543 21': No such subscriber
db_subscr_update_msisdn_by_imsi(dbc, imsi0, "foobar123") --> -EINVAL
DAUC IMSI='123456789000000': Cannot update subscriber: invalid MSISDN: 'foobar123'
@ -168,7 +162,6 @@ struct hlr_subscriber {
}
db_subscr_get_by_msisdn(dbc, "foobar123", &g_subscr) --> -ENOENT
DAUC Cannot read subscriber from db: MSISDN='foobar123': No such subscriber
db_subscr_update_msisdn_by_imsi(dbc, imsi0, "5") --> 0
@ -187,7 +180,6 @@ struct hlr_subscriber {
}
db_subscr_get_by_msisdn(dbc, "54321", &g_subscr) --> -ENOENT
DAUC Cannot read subscriber from db: MSISDN='54321': No such subscriber
db_subscr_update_msisdn_by_imsi(dbc, imsi0, "543210123456789") --> 0
@ -216,7 +208,6 @@ struct hlr_subscriber {
}
db_subscr_get_by_msisdn(dbc, "5432101234567891", &g_subscr) --> -ENOENT
DAUC Cannot read subscriber from db: MSISDN='5432101234567891': No such subscriber
--- Check if subscriber exists (by MSISDN)
@ -232,13 +223,11 @@ db_subscr_update_msisdn_by_imsi(dbc, unknown_imsi, "99") --> -ENOENT
DAUC Cannot update MSISDN: no such subscriber: IMSI='999999999'
db_subscr_get_by_msisdn(dbc, "99", &g_subscr) --> -ENOENT
DAUC Cannot read subscriber from db: MSISDN='99': No such subscriber
db_subscr_update_msisdn_by_imsi(dbc, "foobar", "99") --> -ENOENT
DAUC Cannot update MSISDN: no such subscriber: IMSI='foobar'
db_subscr_get_by_msisdn(dbc, "99", &g_subscr) --> -ENOENT
DAUC Cannot read subscriber from db: MSISDN='99': No such subscriber
--- Set valid / invalid IMEI
@ -265,7 +254,6 @@ struct hlr_subscriber {
}
db_subscr_get_by_imei(dbc, "123456789012345", &g_subscr) --> -ENOENT
DAUC Cannot read subscriber from db: IMEI=123456789012345: No such subscriber
--- Set the same IMEI again
@ -286,7 +274,6 @@ struct hlr_subscriber {
db_subscr_update_imei_by_imsi(dbc, imsi0, NULL) --> 0
db_subscr_get_by_imei(dbc, "12345678901234", &g_subscr) --> -ENOENT
DAUC Cannot read subscriber from db: IMEI=12345678901234: No such subscriber
--- Set / unset nam_cs and nam_ps
@ -424,7 +411,6 @@ db_subscr_nam(dbc, unknown_imsi, false, false) --> -ENOENT
DAUC Cannot disable CS: no such subscriber: IMSI='999999999'
db_subscr_get_by_imsi(dbc, unknown_imsi, &g_subscr) --> -ENOENT
DAUC Cannot read subscriber from db: IMSI='999999999': No such subscriber
db_subscr_nam(dbc, "foobar", false, true) --> -ENOENT
DAUC Cannot disable PS: no such subscriber: IMSI='foobar'
@ -567,7 +553,6 @@ db_subscr_lu_str(dbc, 99999, "712", false) --> -ENOENT
DAUC Cannot update VLR number for subscriber ID=99999: no such subscriber
db_subscr_get_by_id(dbc, 99999, &g_subscr) --> -ENOENT
DAUC Cannot read subscriber from db: ID=99999: No such subscriber
--- Purge and un-purge PS and CS
@ -698,13 +683,11 @@ db_subscr_purge(dbc, unknown_imsi, true, true) --> -ENOENT
DAUC Cannot purge PS: no such subscriber: IMSI='999999999'
db_subscr_get_by_imsi(dbc, unknown_imsi, &g_subscr) --> -ENOENT
DAUC Cannot read subscriber from db: IMSI='999999999': No such subscriber
db_subscr_purge(dbc, unknown_imsi, true, false) --> -ENOENT
DAUC Cannot purge CS: no such subscriber: IMSI='999999999'
db_subscr_get_by_imsi(dbc, unknown_imsi, &g_subscr) --> -ENOENT
DAUC Cannot read subscriber from db: IMSI='999999999': No such subscriber
--- Delete non-existent / invalid IDs
@ -728,7 +711,6 @@ struct hlr_subscriber {
db_subscr_delete_by_id(dbc, id0) --> 0
db_subscr_get_by_imsi(dbc, imsi0, &g_subscr) --> -ENOENT
DAUC Cannot read subscriber from db: IMSI='123456789000000': No such subscriber
db_subscr_delete_by_id(dbc, id0) --> -ENOENT
DAUC Cannot delete: no such subscriber: ID=1
@ -742,7 +724,6 @@ struct hlr_subscriber {
db_subscr_delete_by_id(dbc, id1) --> 0
db_subscr_get_by_imsi(dbc, imsi1, &g_subscr) --> -ENOENT
DAUC Cannot read subscriber from db: IMSI='123456789000001': No such subscriber
db_subscr_get_by_imsi(dbc, imsi2, &g_subscr) --> 0
struct hlr_subscriber {
@ -753,7 +734,6 @@ struct hlr_subscriber {
db_subscr_delete_by_id(dbc, id2) --> 0
db_subscr_get_by_imsi(dbc, imsi2, &g_subscr) --> -ENOENT
DAUC Cannot read subscriber from db: IMSI='123456789000002': No such subscriber
db_subscr_get_by_imsi(dbc, short_imsi, &g_subscr) --> 0
struct hlr_subscriber {
@ -764,7 +744,6 @@ struct hlr_subscriber {
db_subscr_delete_by_id(dbc, id_short) --> 0
db_subscr_get_by_imsi(dbc, short_imsi, &g_subscr) --> -ENOENT
DAUC Cannot read subscriber from db: IMSI='123456': No such subscriber
--- Create and delete subscribers with non-default nam_cs and nam_ps
@ -1305,7 +1284,6 @@ struct hlr_subscriber {
db_subscr_delete_by_id(dbc, id) --> 0
db_subscr_get_by_imsi(dbc, imsi0, &g_subscr) --> -ENOENT
DAUC Cannot read subscriber from db: IMSI='123456789000000': No such subscriber
--- Re-add subscriber and verify auth data didn't come back
@ -1330,7 +1308,6 @@ DAUC IMSI='123456789000000': No 3G Auth Data
db_subscr_delete_by_id(dbc, id) --> 0
db_subscr_get_by_imsi(dbc, imsi0, &g_subscr) --> -ENOENT
DAUC Cannot read subscriber from db: IMSI='123456789000000': No such subscriber
db_get_auc(dbc, imsi0, 3, vec, N_VECTORS, NULL, NULL, false) --> -2
DAUC IMSI='123456789000000': No such subscriber
@ -1431,13 +1408,11 @@ db_update_sqn(dbc, 99, 999) --> -ENOENT
DAUC Cannot update SQN for subscriber ID=99: no auc_3g entry for such subscriber
db_subscr_get_by_id(dbc, 99, &g_subscr) --> -ENOENT
DAUC Cannot read subscriber from db: ID=99: No such subscriber
db_update_sqn(dbc, 9999, 99) --> -ENOENT
DAUC Cannot update SQN for subscriber ID=9999: no auc_3g entry for such subscriber
db_subscr_get_by_id(dbc, 9999, &g_subscr) --> -ENOENT
DAUC Cannot read subscriber from db: ID=9999: No such subscriber
--- Create subscriber
@ -1635,7 +1610,6 @@ struct hlr_subscriber {
db_subscr_delete_by_id(dbc, id) --> 0
db_subscr_get_by_imsi(dbc, imsi0, &g_subscr) --> -ENOENT
DAUC Cannot read subscriber from db: IMSI='123456789000000': No such subscriber
===== test_subscr_sqn: SUCCESS