alibaba/Sentinel

*bug report* ProcessorSlot的Spi中的isSingleton = false设置不生效

Open

#3,007 创建于 2022年12月29日

在 GitHub 查看
 (4 评论) (0 反应) (0 负责人)Java (23,109 star) (8,150 fork)batch import
area/spigood first issue

描述

Issue Description

Type: bug report

Describe what happened (or what feature you want)

当在非单例模式的ProcessorSlot(A)前加一个单例模式的ProcessorSlot(B)后,所有ProcessorSlotChain中B的next都会同步修改为最新创建的A

Describe what you expected to happen

在上述行为后,不同的ProcessorSlotChain中B的next应该为各自新创建的A,而非共同的A

How to reproduce it (as minimally and precisely as possible)

  1. 添加一个ProcessSlot实现类,添加注解@Spi(order = Spi.ORDER_HIGHEST)

Tell us your environment

sentinel 1.8.3

Anything else we need to know?

DefaultProcessorSlotChain中添加next的方式是直接修改传入的AbstractLinkedProcessorSlot,但是传入的ProcessorSlot有可能是单例或非单例,倘若是单例,则在其后添加next会影响所有的ProcessorSlotChain

贡献者指南

*bug report* ProcessorSlot的Spi中的isSingleton = false设置不生效 · alibaba/Sentinel#3007 | Good First Issue