logging: explain failed probes and RTT persistence errors
This commit is contained in:
1 parent
7eb6d6ee68
commit
1bb885fd11
2 files changed
+25
-11
No files matched your search
@@ -915,6 +915,8 @@ int topo_node_sqlite_nodeinfo_updated(sqlite3* db, uint64_t node_id) {
|
||||
|
||||
void topo_node_sqlite_update_rtt(sqlite3* db, uint64_t node_id, uint16_t rtt) {
|
||||
if (!db) return;
|
||||
DEBUG_TRACE(DEBUG_CATEGORY_BGP, "RTT sample: node=%016llx rtt_ms=%.1f; updating address and membership tables",
|
||||
(unsigned long long)node_id, rtt / 10.0);
|
||||
|
||||
{
|
||||
sqlite3_stmt* s = NULL;
|
||||
@@ -923,19 +925,26 @@ void topo_node_sqlite_update_rtt(sqlite3* db, uint64_t node_id, uint16_t rtt) {
|
||||
-1, &s, NULL) == SQLITE_OK) {
|
||||
sqlite3_bind_int(s, 1, (int)rtt);
|
||||
sqlite3_bind_int64(s, 2, (sqlite3_int64)node_id);
|
||||
sqlite3_step(s);
|
||||
if (sqlite3_step(s) != SQLITE_DONE) DEBUG_ERROR(DEBUG_CATEGORY_BGP,
|
||||
"RTT persistence failed: table=node_addresses node=%016llx: %s",
|
||||
(unsigned long long)node_id, sqlite3_errmsg(db));
|
||||
sqlite3_finalize(s);
|
||||
}
|
||||
} else DEBUG_ERROR(DEBUG_CATEGORY_BGP, "RTT query preparation failed: table=node_addresses node=%016llx: %s",
|
||||
(unsigned long long)node_id, sqlite3_errmsg(db));
|
||||
}
|
||||
|
||||
{
|
||||
sqlite3_stmt* s = NULL;
|
||||
if (sqlite3_prepare_v2(db,
|
||||
"SELECT name FROM sqlite_master WHERE type='table' AND name LIKE 'peers\\_%' ESCAPE '\\'",
|
||||
-1, &s, NULL) != SQLITE_OK) return;
|
||||
-1, &s, NULL) != SQLITE_OK) {
|
||||
DEBUG_ERROR(DEBUG_CATEGORY_BGP, "RTT cannot enumerate membership tables: node=%016llx: %s",
|
||||
(unsigned long long)node_id, sqlite3_errmsg(db)); return;
|
||||
}
|
||||
|
||||
char sql[256];
|
||||
while (sqlite3_step(s) == SQLITE_ROW) {
|
||||
int rc;
|
||||
while ((rc = sqlite3_step(s)) == SQLITE_ROW) {
|
||||
const char* tbl = (const char*)sqlite3_column_text(s, 0);
|
||||
snprintf(sql, sizeof(sql),
|
||||
"UPDATE \"%s\" SET node_RTT=? WHERE node_id=?", tbl);
|
||||
@@ -943,14 +952,16 @@ void topo_node_sqlite_update_rtt(sqlite3* db, uint64_t node_id, uint16_t rtt) {
|
||||
if (sqlite3_prepare_v2(db, sql, -1, &u, NULL) == SQLITE_OK) {
|
||||
sqlite3_bind_int(u, 1, (int)rtt);
|
||||
sqlite3_bind_int64(u, 2, (sqlite3_int64)node_id);
|
||||
sqlite3_step(u); sqlite3_finalize(u);
|
||||
}
|
||||
if (sqlite3_step(u) != SQLITE_DONE) DEBUG_ERROR(DEBUG_CATEGORY_BGP,
|
||||
"RTT persistence failed: table=%s node=%016llx: %s", tbl, (unsigned long long)node_id, sqlite3_errmsg(db));
|
||||
sqlite3_finalize(u);
|
||||
} else DEBUG_ERROR(DEBUG_CATEGORY_BGP, "RTT query preparation failed: table=%s node=%016llx: %s",
|
||||
tbl, (unsigned long long)node_id, sqlite3_errmsg(db));
|
||||
}
|
||||
if (rc != SQLITE_DONE) DEBUG_ERROR(DEBUG_CATEGORY_BGP, "RTT table enumeration failed: node=%016llx: %s",
|
||||
(unsigned long long)node_id, sqlite3_errmsg(db));
|
||||
sqlite3_finalize(s);
|
||||
}
|
||||
|
||||
DEBUG_DEBUG(DEBUG_CATEGORY_BGP, "sqlite_update_rtt: node=%016llx rtt=%u",
|
||||
(unsigned long long)node_id, (unsigned)rtt);
|
||||
}
|
||||
|
||||
uint64_t topo_node_sqlite_snapshot_timestamp(sqlite3* db, uint64_t node_id) {
|
||||
|
||||
Reference in new issue
Block a user