deleteApp apparently doesn't complete teardown of Firestore connections
@lahirumaramba ya está trabajando en esto.
Desde el 24/2/2025.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
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:
deno test --allow-all leaks-bug.ts
leaks-bug.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
}
);
- Lenguaje dominante
- TypeScript
- Estrellas
- 1.7k
- Forks
- 419
- Merge medio
- 4 d 20 h
- PR fusionados (30 d)
- 16
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de firebase/firebase-admin-node
-
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
firebase/firebase-admin-node#3234 ·
-
firebase/firebase-admin-node#3221 · 3 comentarios · 1 asignado ·
-
api: messaging
Dificultad 3/5 1-2 días Aptitud para principiantes 70/100
firebase/firebase-admin-node#3215 ·
-
api: messaging
Dificultad 5/5 Más de una semana Aptitud para principiantes 28/100
firebase/firebase-admin-node#3214 ·
-
api: firestore type: feature request
firebase/firebase-admin-node#3183 · 1 comentario · 1 asignado ·
Todos los issues de firebase/firebase-admin-node
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
bcgov/bc-wallet-mobile#4761 · 1 comentario ·
-
external-issue to-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
-
area-deployment area-integrations triage:bot-seen
Dificultad 2/5 Medio día Aptitud para principiantes 86/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
-
refactor
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100