[BUG] ShardFailure hides real failure if ApiTypeHelper assertion fails
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
- #2037 di @gingeekrishna — chiusa senza merge
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 48/100
Direzione di ricerca
Inizia con org.opensearch.client.opensearch._types.ShardFailure e ApiTypeHelper.requireNonNull, seguendo il percorso di deserializzazione mostrato nello stack trace. Determina come viene rappresentato un errore di shard con uno shard null, quindi aggiungi la copertura per quella risposta e verifica che le informazioni sull’errore sottostante vengano preservate invece di essere sostituite dall’eccezione di asserzione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
What is the bug?
Recently, we've experienced a shard failure that we could not get information about because the ShardFailure class asserts non-null on the shard property. See the stack trace:
org.opensearch.client.util.MissingRequiredPropertyException: Missing required property 'ShardFailure.shard'
at org.opensearch.client.util.ApiTypeHelper.requireNonNull(ApiTypeHelper.java:90)
at org.opensearch.client.opensearch._types.ShardFailure.<init>(ShardFailure.java:83)
at org.opensearch.client.opensearch._types.ShardFailure.<init>(ShardFailure.java:61)
at org.opensearch.client.opensearch._types.ShardFailure$Builder.build(ShardFailure.java:276)
at org.opensearch.client.opensearch._types.ShardFailure$Builder.build(ShardFailure.java:179)
at org.opensearch.client.json.ObjectBuilderDeserializer.deserialize(ObjectBuilderDeserializer.java:98)
at org.opensearch.client.json.DelegatingDeserializer$SameType.deserialize(DelegatingDeserializer.java:60)
at org.opensearch.client.json.JsonpDeserializerBase$ArrayDeserializer.deserialize(JsonpDeserializerBase.java:343)
at org.opensearch.client.json.JsonpDeserializerBase$ArrayDeserializer.deserialize(JsonpDeserializerBase.java:308)
at org.opensearch.client.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:87)
at org.opensearch.client.json.ObjectDeserializer$FieldObjectDeserializer.deserialize(ObjectDeserializer.java:81)
at org.opensearch.client.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:185)
at org.opensearch.client.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:146)
at org.opensearch.client.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:87)
at org.opensearch.client.json.ObjectBuilderDeserializer.deserialize(ObjectBuilderDeserializer.java:91)
at org.opensearch.client.json.DelegatingDeserializer$SameType.deserialize(DelegatingDeserializer.java:55)
at org.opensearch.client.json.ObjectDeserializer$FieldObjectDeserializer.deserialize(ObjectDeserializer.java:81)
at org.opensearch.client.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:185)
at org.opensearch.client.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:146)
at org.opensearch.client.json.ObjectBuilderDeserializer.deserialize(ObjectBuilderDeserializer.java:97)
at org.opensearch.client.json.DelegatingDeserializer$SameType.deserialize(DelegatingDeserializer.java:60)
at org.opensearch.client.json.JsonpDeserializerBase$ArrayDeserializer.deserialize(JsonpDeserializerBase.java:343)
at org.opensearch.client.json.JsonpDeserializerBase$ArrayDeserializer.deserialize(JsonpDeserializerBase.java:308)
at org.opensearch.client.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:87)
at org.opensearch.client.json.ObjectDeserializer$FieldObjectDeserializer.deserialize(ObjectDeserializer.java:81)
at org.opensearch.client.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:185)
at org.opensearch.client.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:146)
at org.opensearch.client.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:87)
at org.opensearch.client.json.ObjectBuilderDeserializer.deserialize(ObjectBuilderDeserializer.java:91)
at org.opensearch.client.json.DelegatingDeserializer$SameType.deserialize(DelegatingDeserializer.java:55)
at org.opensearch.client.transport.rest_client.RestClientTransport.decodeResponse(RestClientTransport.java:360)
at org.opensearch.client.transport.rest_client.RestClientTransport.getHighLevelResponse(RestClientTransport.java:326)
at org.opensearch.client.transport.rest_client.RestClientTransport.performRequest(RestClientTransport.java:148)
at org.opensearch.client.opensearch.OpenSearchClient.bulk(OpenSearchClient.java:224)
How can one reproduce the bug?
It requires a shard failure with shard = null, which I don't know how to reproduce, since the client trips over the assert-non-null.
What is the expected behavior?
Communicating the real cause of the failure must be prioritized over ApiTypeHelper assertions.
What is your host/environment?
Linux, Ubuntu
opensearch 2.12.0
<dependency>
<groupId>org.opensearch.client</groupId>
<artifactId>opensearch-java</artifactId>
<version>2.23.0</version>
</dependency>
<dependency>
<groupId>org.opensearch.client</groupId>
<artifactId>opensearch-rest-client</artifactId>
<version>2.19.1</version>
</dependency>
Do you have any screenshots?
N/A
Do you have any additional context?
N/A
- Lingua principale
- Java
- Stelle
- 165
- Fork
- 256
- Merge medio
- 19h 9m
- PR unite (30g)
- 42
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di opensearch-project/opensearch-java
-
[BUG] jackson3 JacksonJsonpMapper(ObjectMapper) fails to deserialize `_source` with "Trailing token" errorForse già presa @junyeokk l’ha presa 1 giorno fa. Apertabug untriaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
opensearch-project/opensearch-java#2236 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement untriaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
opensearch-project/opensearch-java#2188 ·
I maintainer di solito rispondono entro 1 giorno
-
[BUG] "shape" should not be required in GeoShapeQueryFieldForse di nuovo libera @lsh1215 l’ha presa 119 giorni fa e non c’è nessuna pull request aperta. Apertabug untriaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
opensearch-project/opensearch-java#2011 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
untriaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
opensearch-project/opensearch-java#2008 ·
I maintainer di solito rispondono entro 1 giorno
-
[BUG] ISM types lastUpdatedTime is susceptible to int overflowForse già presa @gingeekrishna l’ha presa 115 giorni fa. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
opensearch-project/opensearch-java#1898 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di opensearch-project/opensearch-java
Issue simili
-
Good First Issue
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 75/100
hiero-ledger/hiero-sdk-java#3025 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 80/100
-
DogFooding
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
OpenAEV-Platform/openaev#8768 ·
I maintainer di solito rispondono entro 1 giorno
-
Empty trash: cancelling the password prompt, then swiping one note restores every trashed noteAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
federicoiosue/Omni-Notes#1039 ·
-
type: bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
micronaut-projects/micronaut-core#14179 ·
I maintainer di solito rispondono entro 1 giorno