firebase / firebase/firebase-admin-node

deleteApp apparently doesn't complete teardown of Firestore connections

オープン
#2,825 コメント 1 件 リアクション 0 件 担当者 1 名 @lahirumaramba が担当を希望しています GitHub で見る
api: core api: firestore
主要言語
TypeScript
スター
1.7k
フォーク
419
平均マージ
3日 10時間
マージ済み PR(30日)
16

説明

### Describe your environment

* Operating System version: Fedora Linx 38
* Firebase SDK version: 13.0.2
* Firebase Product: admin SDK apparently / Firestore
* Node.js version: 22.12.0
* NPM version: 11.0.0
* Deno version 2.1.4

### Describe the problem

I'm running a simple Deno test of writing to a document in a Firestore collection. The test passes, but Deno detects leaks:

```
error: Leaks detected:
- "http2Client" was created during the test, but not cleaned up during the test. Close the resource before the end of the test.
- "http2ClientConnection" was created during the test, but not cleaned up during the test. Close the resource before the end of the test.
- 2 intervals were started in this test, but never completed. This is often caused by not calling `clearInterval`.
- 2 timers were started in this test, but never completed. This is often caused by not calling `clearTimeout`.
- An async call to op_http2_poll_client_connection was started in this test, but never completed.
```

#### Steps to reproduce:

```sh
deno test --allow-all leaks-bug.ts
```

#### leaks-bug.ts
```ts
import { initializeApp, cert, deleteApp } from 'firebase-admin/app';
import { getFirestore } from 'firebase-admin/firestore';
import { assertExists } from '@std/assert';

Deno.test('test',
async () => {
// Initialize Cloud Firestore per https://firebase.google.com/docs/firestore/quickstart#initialize -> Node.js -> Initialize on your own server
const app = initializeApp({ credential: cert('service-account-key.json') });
const db = getFirestore(app);

const doc = await db.collection('test').doc('test').set({ foo: 42 });
assertExists(doc); // passes
await deleteApp(app); // doesn't help
await new Promise(resolve => setTimeout(resolve, 10 * 1000)); // doesn't help
}
);
```

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。