Add more data to see which extension got leaked (#35272)

Kirill Bulatov created

Part of https://github.com/zed-industries/zed/issues/35185

Release Notes:

- N/A

Change summary

crates/extension_host/src/wasm_host.rs | 29 ++++++++++++++++++++++++---
1 file changed, 25 insertions(+), 4 deletions(-)

Detailed changes

crates/extension_host/src/wasm_host.rs 🔗

@@ -777,8 +777,18 @@ impl WasmExtension {
                 }
                 .boxed()
             }))
-            .expect("wasm extension channel should not be closed yet");
-        return_rx.await.expect("wasm extension channel")
+            .unwrap_or_else(|_| {
+                panic!(
+                    "wasm extension channel should not be closed yet, extension {} (id {})",
+                    self.manifest.name, self.manifest.id,
+                )
+            });
+        return_rx.await.unwrap_or_else(|_| {
+            panic!(
+                "wasm extension channel, extension {} (id {})",
+                self.manifest.name, self.manifest.id,
+            )
+        })
     }
 }
 
@@ -799,8 +809,19 @@ impl WasmState {
                 }
                 .boxed_local()
             }))
-            .expect("main thread message channel should not be closed yet");
-        async move { return_rx.await.expect("main thread message channel") }
+            .unwrap_or_else(|_| {
+                panic!(
+                    "main thread message channel should not be closed yet, extension {} (id {})",
+                    self.manifest.name, self.manifest.id,
+                )
+            });
+        let name = self.manifest.name.clone();
+        let id = self.manifest.id.clone();
+        async move {
+            return_rx.await.unwrap_or_else(|_| {
+                panic!("main thread message channel, extension {name} (id {id})")
+            })
+        }
     }
 
     fn work_dir(&self) -> PathBuf {