You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by GitBox <gi...@apache.org> on 2021/10/27 10:15:21 UTC

[GitHub] [skywalking] lujiajing1126 opened a new issue #8024: [Bug] Duplicated enhancements for MultiKeyPipelineBase and missing Transaction support in Jedis-2.x plugin

lujiajing1126 opened a new issue #8024:
URL: https://github.com/apache/skywalking/issues/8024


   ### Search before asking
   
   - [X] I had searched in the [issues](https://github.com/apache/skywalking/issues?q=is%3Aissue) and found no similar issues.
   
   
   ### Apache SkyWalking Component
   
   Java Agent (apache/skywalking-java)
   
   ### What happened
   
   Prior to `spring-data-redis 2.0.0`, the library use separated `set` and `expire` methods within a transaction instead of calling [`SETEX`](https://redis.io/commands/setex) with atomic guarantee. This implementation actually will create a [`redis.clients.jedis.Transaction`](https://github.com/redis/jedis/blob/master/src/main/java/redis/clients/jedis/Transaction.java) object with `BinaryJedis.multi()` which returns a new `Transaction` with a low-level `redis.clients.jedis.Client`.
   
   ![image](https://user-images.githubusercontent.com/2568208/139041799-990ae421-8306-4405-b8d2-778cc820ebde.png)
   
   and 
   
   ![image](https://user-images.githubusercontent.com/2568208/139042189-6283efdf-26c4-4b27-aa50-6316fdcf50e1.png)
   
   This client is not enhanced by our `jedis-2.x` plugin while we've already have `PipelineSetClientMethodInterceptor` for `Pipeline` class. We still need support for `Transaction` case.
   
   This will cause empty peer service (e.g. "null") in `JedisMethodInterceptor` when we are going to create an ExitSpan.
   
   Another issue we are facing is both `MultiKeyPipelineBaseInstrumentation` and `PipelineBaseInstrumentation` will enhance the `Pipeline` and `Transaction` twice for such methods existing in the base class like `set` and `exist`. This issue is easy to be fixed by using `DeclaredInstanceMethodsInterceptPoint` instead of `InstanceMethodsInterceptPoint`.
   
   
   ### What you expected to happen
   
   We expect correct peer service and single enhancement for jedis.
   
   ### How to reproduce
   
   I may create an E2E test case to reproduce this issue.
   
   ### Anything else
   
   Not sure this bugfix should be included in the upcoming `8.8.0` since the release window will be closed soon.
   
   ### Are you willing to submit PR?
   
   - [X] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [X] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct)
   


-- 
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.

To unsubscribe, e-mail: notifications-unsubscribe@skywalking.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [skywalking] wu-sheng closed issue #8024: [Bug] Duplicated enhancements for MultiKeyPipelineBase and missing Transaction support in Jedis-2.x plugin

Posted by GitBox <gi...@apache.org>.
wu-sheng closed issue #8024:
URL: https://github.com/apache/skywalking/issues/8024


   


-- 
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.

To unsubscribe, e-mail: notifications-unsubscribe@skywalking.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org