firestore: getPartitions() emits gax AutopaginateTrueWarning in every process
Les mainteneurs répondent en général sous 1 jour
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 76/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- node.js, typescript
- Domaine
- backend
Piste de recherche
Commencez dans handwritten/firestore/dev/src/index.ts et suivez Firestore.requestStream() jusqu’à createCallOptions(), en vérifiant comment les options parviennent à l’appel de pagination du flux de gax. Définissez autoPaginate sur false dans les options d’appel du flux. Vérifiez ensuite que getPartitions() se termine sans l’avertissement et continue de lire les partitions sur plusieurs pages.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Library: @google-cloud/firestore 7.11.3 (through firebase-admin 13.10.0), google-gax 4.6.1, Node.js 24. The same code is on main in handwritten/firestore/dev/src/index.ts.
Reproduction
// npm i @google-cloud/[email protected]
// FIRESTORE_EMULATOR_HOST=127.0.0.1:9 node repro.cjs
const {Firestore} = require('@google-cloud/firestore');
process.on('warning', w => console.log('warning event:', w.name));
const db = new Firestore({projectId: 'demo-repro'});
(async () => {
for await (const _ of db.collectionGroup('any').getPartitions(2)) {}
})().catch(() => {});
No server is necessary: the warning is emitted when the request is built. Output:
(node:1) AutopaginateTrueWarning: Autopaginate will always be set to false in stream paging methods. See more info at https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md#auto-pagination for more information on how to configure paging calls
warning event: AutopaginateTrueWarning
Cause
Firestore.requestStream() uses the call options from createCallOptions(), which do not set autoPaginate. gax's CallSettings sets autoPaginate to true when the option is not given. PageDescriptor.createStream() then warns for partitionQueryStream, a stream paging method, and forces autoPaginate: false. The caller cannot change this, because getPartitions() accepts no call options.
Expected
No warning. The partitions are read correctly; only the warning is wrong.
Why it matters
Node writes the warning to stderr. Cloud Run and Cloud Functions record stderr at severity ERROR, so each process that calls getPartitions() creates an Error Reporting event. googleapis/nodejs-firestore#2335 reported the same class of problem for listDocuments().
Suggested fix
Set autoPaginate: false on the call options in requestStream(). gax already uses that value for every stream paging method, and streams without paging ignore it. We apply this one-line change as a local patch. With the patch, a fake server that returns PartitionQuery results in two pages gives the same partitions and no warning.
- Langage dominant
- TypeScript
- Étoiles
- 3.2k
- Forks
- 732
- Merge moyen
- 3 j 7 h
- PR mergées (30 j)
- 117
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de googleapis/google-cloud-node
-
Broken deprecation chainOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
googleapis/google-cloud-node#9854 ·
Les mainteneurs répondent en général sous 1 jour
-
pubsub: "Operation attempted on ended Span" when a modack is flushed after the message was ackedOuverteapi: pubsub
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
googleapis/google-cloud-node#9853 ·
Les mainteneurs répondent en général sous 1 jour
-
storage: V4 getSignedUrl sorts canonical headers with localeCompare, so they disagree with X-Goog-SignedHeadersPeut-être pris @itsrayeedscodespace l’a pris il y a 6 jours. Ouverteapi: storage
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
googleapis/google-cloud-node#9840 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 82/100
googleapis/google-cloud-node#9723 ·
Les mainteneurs répondent en général sous 1 jour
-
spanner: requiring @google-cloud/spanner stops the process from exiting on SIGTERM/SIGINTPeut-être à nouveau libre @alkatrivedi l’a pris il y a 32 jours, et aucune pull request n’est ouverte. Ouverteapi: spanner
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
googleapis/google-cloud-node#9513 · 1 réaction · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de googleapis/google-cloud-node
Issues similaires
-
parse: child keys like `007`, `1e3`, `0x1f`, `-1` make the parent an empty array and hide the valueOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
-
enhancement follow-up
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 62/100
bketelsen/pi-pocket-team#232 ·
Les mainteneurs répondent en général sous 1 jour
-
bug UI
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
wardian-app/Wardian#1746 ·
Les mainteneurs répondent en général sous 1 jour
-
area: interop area: sip-core v3
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
fonoster/routr#705 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour