[BUG] `GET /channels/{channelId}/statistics` intermittently returns 500 during undeploy of an unrelated channel
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
- 38/100
Línea de trabajo
The GET /channels/{channelId}/statistics path (and the includeUndeployed variant) currently reads D_MS tables for every channel, so a concurrent undeploy of another channel can drop a table and raise DonkeyDaoException wrapping SQLSyntaxErrorException; serialising that exception then fails and the client only sees a generic 500. Start from the statistics handler and the Donkey DAO that enumerates those tables. Done when a request naming channel A only reads what it needs for A and the two-thread repro no longer 500s.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Repro:
- In one thread, loop: deploy channel B, send a message through it, remove channel B.
- In another thread, loop:
GET /channels/{A}/statistics.GET /channels/statistics?channelId={A}&includeUndeployed=truefails the same way.
Expected:
- A request naming channel A reads only what it needs to answer about channel A.
Actual:
- Each request reads
D_MS<n>for every channel the server knows about, A or not. - Roughly one request in forty fails with HTTP 500 under the loop above.
- The server log shows
DonkeyDaoException: java.sql.SQLSyntaxErrorException: Table/View 'D_MS<n>' does not exist,
for the channel being removed, not for A. - The client sees only
{"message":"Request failed.","status":"500"}, because serialising the
SQLExceptioninto the error response throws as well.
- Lenguaje dominante
- Java
- Estrellas
- 227
- Forks
- 81
- Merge medio
- 2 d 18 h
- PR fusionados (30 d)
- 12
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Leer la 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 OpenIntegrationEngine/engine
-
Outdated GitHub workflow action versionsPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
OpenIntegrationEngine/engine#485 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
OpenIntegrationEngine/engine#478 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
OpenIntegrationEngine/engine#355 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
OpenIntegrationEngine/engine#347 ·
Los mantenedores suelen responder en 1 día
-
Fix call-home in test runAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
OpenIntegrationEngine/engine#313 ·
Los mantenedores suelen responder en 1 día
Todos los issues de OpenIntegrationEngine/engine
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 79/100
checkstyle/checkstyle#22145 ·
Los mantenedores suelen responder en 1 día
-
rset command throws NPE in ResultsFormat.guessSyntaxPosiblemente ocupada @Ostrzyciel la tomó hoy. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
enhancement good first issue help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
objectionary/eo#9593 ·
Los mantenedores suelen responder en 1 día
-
Incorrect doc for jwtConsumerAbiertorelease bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
OpenLiberty/open-liberty#36124 ·
Los mantenedores suelen responder en 1 día