diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2019-11-25 05:37:53 +0100 |
---|---|---|
committer | Neels Hofmeyr <neels@hofmeyr.de> | 2020-04-28 14:53:55 +0200 |
commit | 61917ed51d3ce11bee097a173df97fa6249defab (patch) | |
tree | 3919a7a3469bf199d2ba63fb48e0e70778bc2061 | |
parent | 43de5efb3dbf381e5d1de6f8ccd074769f2ac9f3 (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.c | 8 | ||||
-rw-r--r-- | tests/db/db_test.err | 26 |
2 files changed, 4 insertions, 30 deletions
diff --git a/src/db_hlr.c b/src/db_hlr.c index c919f3e..030a6a7 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 |