]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
report which backend failed to instantiate 13065/head
authorPeter van Dijk <peter.van.dijk@powerdns.com>
Mon, 24 Jul 2023 08:52:56 +0000 (10:52 +0200)
committerPeter van Dijk <peter.van.dijk@powerdns.com>
Mon, 24 Jul 2023 08:52:56 +0000 (10:52 +0200)
pdns/dnsbackend.cc

index bd7645601b8974a058d8113b5df0a925087984e0..aef1b99a3a3bbea2b95a6d875ce5c581ae286fd1 100644 (file)
@@ -188,8 +188,11 @@ vector<DNSBackend *> BackendMakerClass::all(bool metadataOnly)
 
   ret.reserve(d_instances.size());
 
+  std::string current; // to make the exception text more useful
+
   try {
     for (const auto& instance : d_instances) {
+      current = instance.first + instance.second;
       DNSBackend *made = nullptr;
 
       if (metadataOnly) {
@@ -207,7 +210,7 @@ vector<DNSBackend *> BackendMakerClass::all(bool metadataOnly)
     }
   }
   catch(const PDNSException &ae) {
-    g_log<<Logger::Error<<"Caught an exception instantiating a backend: "<<ae.reason<<endl;
+    g_log<<Logger::Error<<"Caught an exception instantiating a backend (" << current << "): "<<ae.reason<<endl;
     g_log<<Logger::Error<<"Cleaning up"<<endl;
     for (auto i : ret) {
       delete i;
@@ -215,7 +218,7 @@ vector<DNSBackend *> BackendMakerClass::all(bool metadataOnly)
     throw;
   } catch(...) {
     // and cleanup
-    g_log<<Logger::Error<<"Caught an exception instantiating a backend, cleaning up"<<endl;
+    g_log<<Logger::Error<<"Caught an exception instantiating a backend (" << current <<"), cleaning up"<<endl;
     for (auto i : ret) {
       delete i;
     }