Pub/Sub c++ client: How to prevent/reduce ack failures on at least once delivery subscription
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 30/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- cpp, google-cloud
- Domaine
- cloud, distributed-systems
Piste de recherche
Commencez par examiner google/cloud/pubsub/internal/ack_handler_wrapper.cc:29 et la configuration du client indiquée dans le rapport, puis reproduisez les échecs avec le test de charge décrit. Suivez le comportement de l’accusé de réception et de l’extension du deadline autour des erreurs UNAVAILABLE et de la redelivery. Le travail est terminé lorsque la cause des échecs d’ack et de la redelivery retardée est identifiée, avec une méthode vérifiée permettant de les réduire ou de les éviter.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Client version: v2.39.0
MaxDeadline = seconds(0) (default value)
MaxDeadlineExtension = seconds(180)
MinDeadlineExtension = seconds(60)
MaxOutstandingMessages = 250
MaxConcurrency = 1
Time to time acks are failing. There is no retry for at least once delivery. How to reduce/prevent these failures? It happens 10-20 times a day.
Some of the logged errors [file_name] - [message]
[NTPubSubLogger] /google-cloud-cpp/google/cloud/pubsub/internal/ack_handler_wrapper.cc:29 - error while trying to ack(), status=UNAVAILABLE: recvmsg:Connection reset by peer
[NTPubSubLogger] /google-cloud-cpp/google/cloud/pubsub/internal/ack_handler_wrapper.cc:29 - error while trying to ack(), status=UNAVAILABLE: 502:Bad Gateway
It sounds like network issue but I doubt that. It happens every day 10-20 times. I can reproduce it with a 10 minutes of load tests by consuming/processing 300 messages per second.
Messages are ordered by account id in the system. When this happens the messages are stuck on pub/sub for 10-20 minutes because of unacked message. initial deadline=60 seconds, max deadline = 180 seconds. I observed the cpp client logs in debug mode. There is no ModifyAckDeadlineRequest is being made but still messages redelivered between 10-20 minutes later, in fact they should arrive in a few minutes. (That's another issue and maybe not related to the client.)
- Langage dominant
- C++
- Étoiles
- 660
- Forks
- 479
- Merge moyen
- 1 j 22 h
- PR mergées (30 j)
- 54
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun 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-cpp
-
cleanup(storage): remove deprecated OpenTelemetry rpc.message.type and rpc.message.id attributesOuverteapi: storage type: cleanup
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
googleapis/google-cloud-cpp#16544 ·
Les mainteneurs répondent en général sous 1 jour
-
api: storage priority: p2 type: bug
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
googleapis/google-cloud-cpp#16529 ·
Les mainteneurs répondent en général sous 1 jour
-
type: feature request
Difficulté 2/5 1-3 heures Accessibilité débutants 73/100
googleapis/google-cloud-cpp#16193 ·
Les mainteneurs répondent en général sous 1 jour
-
type: feature request
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
googleapis/google-cloud-cpp#16575 ·
Les mainteneurs répondent en général sous 1 jour
-
api: storage type: cleanup
Difficulté 3/5 1-2 jours Accessibilité débutants 55/100
googleapis/google-cloud-cpp#16545 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de googleapis/google-cloud-cpp
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
meshcore-dev/MeshCore#3760 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
deepseek-ai/DeepGEMM-Ascend#29 ·
Les mainteneurs répondent en général sous 1 jour
-
documentation
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
EchoTools/nevr-runtime#2042 ·
Les mainteneurs répondent en général sous 1 jour
-
Download size and speed show scientific notation between 1000 and 1023 unitsPeut-être pris @RaphaelFakhri l’a pris aujourd’hui. Ouverte
Difficulté 2/5 Moins d'une heure Accessibilité débutants 88/100
kiwix/kiwix-desktop#1570 ·
Les mainteneurs répondent en général sous 1 jour
-
Device Request
Difficulté 2/5 Une demi-journée Accessibilité débutants 62/100
dresden-elektronik/deconz-rest-plugin#8686 ·
Les mainteneurs répondent en général sous 1 jour