aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2019-11-25 05:37:53 +0100
committerNeels Hofmeyr <neels@hofmeyr.de>2020-04-30 19:22:24 +0200
commit0d82a87c0d590a0157e750a052b3a2f1b2c15070 (patch)
treea65206e7dd6e77119f0e373a874f885ecd8d5193
parent9489a9ce4b7c395cb6ad8220eed407f80cc954e1 (diff)
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
-rw-r--r--src/db_hlr.c8
-rw-r--r--tests/db/db_test.err26
2 files changed, 4 insertions, 30 deletions
diff --git a/src/db_hlr.c b/src/db_hlr.c
index 9073926..83c2c51 100644
--- a/src/db_hlr.c
+++ b/src/db_hlr.c
@@ -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;
}
diff --git a/tests/db/db_test.err b/tests/db/db_test.err
index e4d43c9..871e722 100644
--- a/tests/db/db_test.err
+++ b/tests/db/db_test.err
@@ -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