Kafka gateway: old and pinned clients

Abierto
#4,528 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
25/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
rust

Línea de trabajo

The payload names no source files. Start in the Kafka gateway's request handling and find where it rejects SaslHandshake below v1, Produce below v3 and Fetch below v4. The scope also covers SASL tokens without a Kafka header and v0/v1 message format conversion, so read how the gateway handles SASL and record formats. Done when kafka-python 2.0.2 and Sarama 1.40.1 authenticate with SASL PLAIN and then produce and consume.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

gateways

Summary

The gateway closes the connection for a SaslHandshake v0 client, Produce below v3 and Fetch below v4. Kafka 4.0 dropped the same versions (KIP-896), but Kafka 3.x clusters still serve them.

Who hits it:

  • With SASL on: Sarama up to 1.40.1, which sends SaslHandshake v0 by default. kafka-python 2.0.2, which always sends v0 and was the latest release for four and a half years. aiokafka up to 0.12, with api_version="auto".
  • Version pins below Kafka 0.11 in Sarama, kafka-python and aiokafka. Tutorials and Event Hubs threads recommend such pins.
  • Sarama below 1.46, pinned at V2_8 or later, sends Metadata v10 and gets closed. #4527 removes this case.

librdkafka 1.8.0, which Ubuntu 22.04 ships, works, because the gateway advertises the old minimums.

Scope

  • SaslHandshake v0 with the SASL tokens that follow it without a Kafka header (before KIP-152)
  • On request only: message formats v0 and v1, converted to v2 on Produce and Fetch

Acceptance criteria

  • kafka-python 2.0.2 and Sarama 1.40.1 authenticate with SASL PLAIN, then produce and consume
Lenguaje dominante
Rust
Estrellas
5.2k
Forks
502
Merge medio
3 d 4 h
PR fusionados (30 d)
157

Preparar el entorno

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de apache/iggy

Todos los issues de apache/iggy

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.