You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by GitBox <gi...@apache.org> on 2021/04/13 07:28:14 UTC
[GitHub] [pulsar] eolivelli commented on issue #10210: Schema: "IllegalReferenceCountException: refCnt: 0" while getting schema with AutoConsumeSchema
eolivelli commented on issue #10210:
URL: https://github.com/apache/pulsar/issues/10210#issuecomment-818509839
My understanding is that:
- in ClientCnx#sendGetSchema we call `sendGetRawSchema`() and it returns a CompletableFuture
(https://github.com/apache/pulsar/blob/c9c116767235491aca6f27ef7a07705666bbd647/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ClientCnx.java#L879)
- in PulsarDecoder we receive the response from the server and call ClientCnx#handleGetSchemaResponse ( https://github.com/apache/pulsar/blob/c12765a0530bcefca8e840d2f8f43383d7478778/pulsar-common/src/main/java/org/apache/pulsar/common/protocol/PulsarDecoder.java#L350 )
- in PulsarDecoder we execute the "finally" block that `release` the ByteBuf that holds the message
- in ClientCnx#sendGetSchema we enter the lambda function attached with "thenCompose" to the initial CF (https://github.com/apache/pulsar/blob/c9c116767235491aca6f27ef7a07705666bbd647/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ClientCnx.java#L891) but it is too late
I saw this problem happening on CI, so the thread ClientCnx may have been so slow that it was possible for the "finally" block to be executed
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org