Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

use with gateway,but something throw io.lettuce.core.output.ValueOutput does not support set(long) #2864

Open
zafir-zhong opened this issue May 28, 2024 · 10 comments
Labels
status: waiting-for-feedback We need additional information before we can continue

Comments

@zafir-zhong
Copy link

zafir-zhong commented May 28, 2024

I have deployed multiple gateway services with the same code. However, in some instances of the service, a failure occurs after listening to specific Redis messages. The failure disappears after restarting the service, but it reappears after repackaging.

spring-cloud-starter-gateway:3.1.9
lettuce: 6.1.10.RELEASE
spring-data-redis: 2.7.18

convertAndSenddata:

{"apps":[“D3sX4"],"status": 2}

listen:

reactiveRedisTemplate.listenToChannel(Constant.Sentinel.RULE_SYNC_KEY).flatMap(data -> {});

error log:

2024-04-23 18:06:39.741|ERROR |9573|lettuce-epollEventLoop-5-1||Operator called default onErrorDropped
reactor.core.Exceptions$ErrorCallbackNotImplemented: java.lang.UnsupportedOperationException: io.lettuce.core.output.ValueOutput does not support set(long)
Caused by: java.lang.UnsupportedOperationException: io.lettuce.core.output.ValueOutput does not support set(long)
        at io.lettuce.core.output.CommandOutput.set(CommandOutput.java:107) ~[lettuce-core-6.1.10.RELEASE.jar:6.1.10.RELEASE]
        at io.lettuce.core.protocol.RedisStateMachine.safeSet(RedisStateMachine.java:778) ~[lettuce-core-6.1.10.RELEASE.jar:6.1.10.RELEASE]
        at io.lettuce.core.protocol.RedisStateMachine.handleInteger(RedisStateMachine.java:404) ~[lettuce-core-6.1.10.RELEASE.jar:6.1.10.RELEASE]
        at io.lettuce.core.protocol.RedisStateMachine$State$Type.handle(RedisStateMachine.java:206) ~[lettuce-core-6.1.10.RELEASE.jar:6.1.10.RELEASE]
        at io.lettuce.core.protocol.RedisStateMachine.doDecode(RedisStateMachine.java:334) ~[lettuce-core-6.1.10.RELEASE.jar:6.1.10.RELEASE]
        at io.lettuce.core.protocol.RedisStateMachine.decode(RedisStateMachine.java:295) ~[lettuce-core-6.1.10.RELEASE.jar:6.1.10.RELEASE]
        at io.lettuce.core.protocol.CommandHandler.decode(CommandHandler.java:842) ~[lettuce-core-6.1.10.RELEASE.jar:6.1.10.RELEASE]
        at io.lettuce.core.protocol.CommandHandler.decode0(CommandHandler.java:793) ~[lettuce-core-6.1.10.RELEASE.jar:6.1.10.RELEASE]
        at io.lettuce.core.protocol.CommandHandler.decode(CommandHandler.java:767) ~[lettuce-core-6.1.10.RELEASE.jar:6.1.10.RELEASE]
        at io.lettuce.core.protocol.CommandHandler.decode(CommandHandler.java:659) ~[lettuce-core-6.1.10.RELEASE.jar:6.1.10.RELEASE]
        at io.lettuce.core.protocol.CommandHandler.channelRead(CommandHandler.java:599) ~[lettuce-core-6.1.10.RELEASE.jar:6.1.10.RELEASE]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) ~[netty-transport-4.1.108.Final.jar:4.1.108.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.108.Final.jar:4.1.108.Final]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[netty-transport-4.1.108.Final.jar:4.1.108.Final]
        at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[netty-transport-4.1.108.Final.jar:4.1.108.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) ~[netty-transport-4.1.108.Final.jar:4.1.108.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[netty-transport-4.1.108.Final.jar:4.1.108.Final]
        at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[netty-transport-4.1.108.Final.jar:4.1.108.Final]
        at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:801) ~[netty-transport-classes-epoll-4.1.108.Final.jar:4.1.108.Final]
        at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:509) ~[netty-transport-classes-epoll-4.1.108.Final.jar:4.1.108.Final]
        at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:407) ~[netty-transport-classes-epoll-4.1.108.Final.jar:4.1.108.Final]
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.108.Final.jar:4.1.108.Final]
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.108.Final.jar:4.1.108.Final]
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.108.Final.jar:4.1.108.Final]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_201]

arthas data (input@ValueOutput respnull and Thread@StackTraceElement)

method=io.lettuce.core.protocol.RedisStateMachine.safeSet location=AtExit
ts=2024-05-24 17:17:38; [cost=0.899899ms] result=@ArrayList[
    @ValueOutput[
        codec=@ByteBufferCodec[
            INSTANCE=@ByteBufferCodec[
                INSTANCE=@ByteBufferCodec[INSTANCE],
                $VALUES=@ByteBufferCodec[][isEmpty=false;size=1],
                name=@String[INSTANCE],
                ordinal=@Integer[0],
            ],
            $VALUES=@ByteBufferCodec[][
                @ByteBufferCodec[INSTANCE],
            ],
            name=@String[INSTANCE],
            ordinal=@Integer[0],
        ],
        output=null,
        error=@String[io.lettuce.core.output.ValueOutput does not support set(long)],
    ],
    null,
    @StackTraceElement[][
        @StackTraceElement[
            declaringClass=@String[java.lang.Thread],
            methodName=@String[getStackTrace],
            fileName=@String[Thread.java],
            lineNumber=@Integer[1559],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[sun.reflect.NativeMethodAccessorImpl],
            methodName=@String[invoke0],
            fileName=@String[NativeMethodAccessorImpl.java],
            lineNumber=@Integer[-2],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[sun.reflect.NativeMethodAccessorImpl],
            methodName=@String[invoke],
            fileName=@String[NativeMethodAccessorImpl.java],
            lineNumber=@Integer[62],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[sun.reflect.DelegatingMethodAccessorImpl],
            methodName=@String[invoke],
            fileName=@String[DelegatingMethodAccessorImpl.java],
            lineNumber=@Integer[43],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[java.lang.reflect.Method],
            methodName=@String[invoke],
            fileName=@String[Method.java],
            lineNumber=@Integer[498],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[ognl.OgnlRuntime],
            methodName=@String[invokeMethod],
            fileName=@String[OgnlRuntime.java],
            lineNumber=@Integer[899],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[ognl.OgnlRuntime],
            methodName=@String[callAppropriateMethod],
            fileName=@String[OgnlRuntime.java],
            lineNumber=@Integer[1544],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[ognl.ObjectMethodAccessor],
            methodName=@String[callMethod],
            fileName=@String[ObjectMethodAccessor.java],
            lineNumber=@Integer[68],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[ognl.OgnlRuntime],
            methodName=@String[callMethod],
            fileName=@String[OgnlRuntime.java],
            lineNumber=@Integer[1620],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[ognl.ASTMethod],
            methodName=@String[getValueBody],
            fileName=@String[ASTMethod.java],
            lineNumber=@Integer[91],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[ognl.SimpleNode],
            methodName=@String[evaluateGetValueBody],
            fileName=@String[SimpleNode.java],
            lineNumber=@Integer[212],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[ognl.SimpleNode],
            methodName=@String[getValue],
            fileName=@String[SimpleNode.java],
            lineNumber=@Integer[258],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[ognl.ASTChain],
            methodName=@String[getValueBody],
            fileName=@String[ASTChain.java],
            lineNumber=@Integer[141],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[ognl.SimpleNode],
            methodName=@String[evaluateGetValueBody],
            fileName=@String[SimpleNode.java],
            lineNumber=@Integer[212],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[ognl.SimpleNode],
            methodName=@String[getValue],
            fileName=@String[SimpleNode.java],
            lineNumber=@Integer[258],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[ognl.ASTList],
            methodName=@String[getValueBody],
            fileName=@String[ASTList.java],
            lineNumber=@Integer[60],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[ognl.SimpleNode],
            methodName=@String[evaluateGetValueBody],
            fileName=@String[SimpleNode.java],
            lineNumber=@Integer[212],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[ognl.SimpleNode],
            methodName=@String[getValue],
            fileName=@String[SimpleNode.java],
            lineNumber=@Integer[258],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[ognl.Ognl],
            methodName=@String[getValue],
            fileName=@String[Ognl.java],
            lineNumber=@Integer[470],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[ognl.Ognl],
            methodName=@String[getValue],
            fileName=@String[Ognl.java],
            lineNumber=@Integer[572],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[ognl.Ognl],
            methodName=@String[getValue],
            fileName=@String[Ognl.java],
            lineNumber=@Integer[542],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[com.taobao.arthas.core.command.express.OgnlExpress],
            methodName=@String[get],
            fileName=@String[OgnlExpress.java],
            lineNumber=@Integer[40],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[com.taobao.arthas.core.advisor.AdviceListenerAdapter],
            methodName=@String[getExpressionResult],
            fileName=@String[AdviceListenerAdapter.java],
            lineNumber=@Integer[123],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[com.taobao.arthas.core.command.monitor200.WatchAdviceListener],
            methodName=@String[watching],
            fileName=@String[WatchAdviceListener.java],
            lineNumber=@Integer[87],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[com.taobao.arthas.core.command.monitor200.WatchAdviceListener],
            methodName=@String[finishing],
            fileName=@String[WatchAdviceListener.java],
            lineNumber=@Integer[71],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[com.taobao.arthas.core.command.monitor200.WatchAdviceListener],
            methodName=@String[afterReturning],
            fileName=@String[WatchAdviceListener.java],
            lineNumber=@Integer[55],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[com.taobao.arthas.core.advisor.AdviceListenerAdapter],
            methodName=@String[afterReturning],
            fileName=@String[AdviceListenerAdapter.java],
            lineNumber=@Integer[57],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[com.taobao.arthas.core.advisor.SpyImpl],
            methodName=@String[atExit],
            fileName=@String[SpyImpl.java],
            lineNumber=@Integer[67],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[java.arthas.SpyAPI],
            methodName=@String[atExit],
            fileName=@String[SpyAPI.java],
            lineNumber=@Integer[64],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[io.lettuce.core.protocol.RedisStateMachine],
            methodName=@String[safeSet],
            fileName=@String[RedisStateMachine.java],
            lineNumber=@Integer[782],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[io.lettuce.core.protocol.RedisStateMachine],
            methodName=@String[handleInteger],
            fileName=@String[RedisStateMachine.java],
            lineNumber=@Integer[404],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[io.lettuce.core.protocol.RedisStateMachine$State$Type],
            methodName=@String[handle],
            fileName=@String[RedisStateMachine.java],
            lineNumber=@Integer[206],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[io.lettuce.core.protocol.RedisStateMachine],
            methodName=@String[doDecode],
            fileName=@String[RedisStateMachine.java],
            lineNumber=@Integer[334],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[io.lettuce.core.protocol.RedisStateMachine],
            methodName=@String[decode],
            fileName=@String[RedisStateMachine.java],
            lineNumber=@Integer[295],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[io.lettuce.core.protocol.CommandHandler],
            methodName=@String[decode],
            fileName=@String[CommandHandler.java],
            lineNumber=@Integer[842],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[io.lettuce.core.protocol.CommandHandler],
            methodName=@String[decode0],
            fileName=@String[CommandHandler.java],
            lineNumber=@Integer[793],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[io.lettuce.core.protocol.CommandHandler],
            methodName=@String[decode],
            fileName=@String[CommandHandler.java],
            lineNumber=@Integer[767],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[io.lettuce.core.protocol.CommandHandler],
            methodName=@String[decode],
            fileName=@String[CommandHandler.java],
            lineNumber=@Integer[659],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[io.lettuce.core.protocol.CommandHandler],
            methodName=@String[channelRead],
            fileName=@String[CommandHandler.java],
            lineNumber=@Integer[599],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[io.netty.channel.AbstractChannelHandlerContext],
            methodName=@String[invokeChannelRead],
            fileName=@String[AbstractChannelHandlerContext.java],
            lineNumber=@Integer[442],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[io.netty.channel.AbstractChannelHandlerContext],
            methodName=@String[invokeChannelRead],
            fileName=@String[AbstractChannelHandlerContext.java],
            lineNumber=@Integer[420],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[io.netty.channel.AbstractChannelHandlerContext],
            methodName=@String[fireChannelRead],
            fileName=@String[AbstractChannelHandlerContext.java],
            lineNumber=@Integer[412],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[io.netty.channel.DefaultChannelPipeline$HeadContext],
            methodName=@String[channelRead],
            fileName=@String[DefaultChannelPipeline.java],
            lineNumber=@Integer[1410],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[io.netty.channel.AbstractChannelHandlerContext],
            methodName=@String[invokeChannelRead],
            fileName=@String[AbstractChannelHandlerContext.java],
            lineNumber=@Integer[440],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[io.netty.channel.AbstractChannelHandlerContext],
            methodName=@String[invokeChannelRead],
            fileName=@String[AbstractChannelHandlerContext.java],
            lineNumber=@Integer[420],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[io.netty.channel.DefaultChannelPipeline],
            methodName=@String[fireChannelRead],
            fileName=@String[DefaultChannelPipeline.java],
            lineNumber=@Integer[919],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe],
            methodName=@String[epollInReady],
            fileName=@String[AbstractEpollStreamChannel.java],
            lineNumber=@Integer[801],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[io.netty.channel.epoll.EpollEventLoop],
            methodName=@String[processReady],
            fileName=@String[EpollEventLoop.java],
            lineNumber=@Integer[509],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[io.netty.channel.epoll.EpollEventLoop],
            methodName=@String[run],
            fileName=@String[EpollEventLoop.java],
            lineNumber=@Integer[407],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[io.netty.util.concurrent.SingleThreadEventExecutor$4],
            methodName=@String[run],
            fileName=@String[SingleThreadEventExecutor.java],
            lineNumber=@Integer[997],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[io.netty.util.internal.ThreadExecutorMap$2],
            methodName=@String[run],
            fileName=@String[ThreadExecutorMap.java],
            lineNumber=@Integer[74],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[io.netty.util.concurrent.FastThreadLocalRunnable],
            methodName=@String[run],
            fileName=@String[FastThreadLocalRunnable.java],
            lineNumber=@Integer[30],
            serialVersionUID=@Long[6992337162326171013],
        ],
        @StackTraceElement[
            declaringClass=@String[java.lang.Thread],
            methodName=@String[run],
            fileName=@String[Thread.java],
            lineNumber=@Integer[748],
            serialVersionUID=@Long[6992337162326171013],
        ],
    ],
]
@tishun
Copy link
Collaborator

tishun commented May 28, 2024

Hey @zafir-zhong ,
are you sure this issue does not belong to the spring-data-redis?
From the information you've provided it is hard to understand what is going wrong.
Could you provide a minimal sample so we can investigate further?

@tishun tishun added the status: waiting-for-feedback We need additional information before we can continue label May 28, 2024
@zafir-zhong
Copy link
Author

I am unable to reproduce this issue stably, but it always occurs sporadically.And, in the exception stack, only the relevant information of Lettuce can be seen.
it happen when gateway listen a message {"apps":[“D3sX4"],"status": 2} from redis,and causing the service to be unable to read data from Redis

@zafir-zhong
Copy link
Author

Can you provide some suggestions on when Lettuce may throw this exception?
Now all I know is that the service malfunctioned after receiving a Redis message

@tishun
Copy link
Collaborator

tishun commented May 29, 2024

Can you provide some suggestions on when Lettuce may throw this exception? Now all I know is that the service malfunctioned after receiving a Redis message

This message means that the Lettuce driver is not set up to process the message that was returned. Each command has an implementation of the CommandOutput associated to it, to help parse the response from the server. In your case this is a ValueOutput. The ValueOutput does not handle long values and thus the processing fails.

Now why we are receiving the wrong value is a question I can't answer.

What type of serialization are you using for your ReactiveRedisTemplate?
Are messages of mixed type expected on this channel?
What is the purpose of this code?

@tishun
Copy link
Collaborator

tishun commented May 29, 2024

I am unable to reproduce this issue stably, but it always occurs sporadically.And, in the exception stack, only the relevant information of Lettuce can be seen. it happen when gateway listen a message {"apps":[“D3sX4"],"status": 2} from redis,and causing the service to be unable to read data from Redis

Have you asked your question in the spring-data-redis ?

@zafir-zhong
Copy link
Author

zafir-zhong commented May 31, 2024

Can you provide some suggestions on when Lettuce may throw this exception? Now all I know is that the service malfunctioned after receiving a Redis message

This message means that the Lettuce driver is not set up to process the message that was returned. Each command has an implementation of the CommandOutput associated to it, to help parse the response from the server. In your case this is a ValueOutput. The ValueOutput does not handle long values and thus the processing fails.

Now why we are receiving the wrong value is a question I can't answer.

What type of serialization are you using for your ReactiveRedisTemplate? Are messages of mixed type expected on this channel? What is the purpose of this code?

use jason serialization
I didn't find any of my own code in the exception message, so I can't actually confirm which line of code caused it

@zafir-zhong
Copy link
Author

I am unable to reproduce this issue stably, but it always occurs sporadically.And, in the exception stack, only the relevant information of Lettuce can be seen. it happen when gateway listen a message {"apps":[“D3sX4"],"status": 2} from redis,and causing the service to be unable to read data from Redis

Have you asked your question in the spring-data-redis ?

i try it now.

@mp911de
Copy link
Collaborator

mp911de commented May 31, 2024

Looks like a variant of #2175

@tishun
Copy link
Collaborator

tishun commented May 31, 2024

Looks like a variant of #2175

Do you think it is more likely a problem of the driver or the way spring-data-redis uses it?
I am trying to see a pattern myselft, but I see we also have instances of this issue manifested when the driver is used standalone.

@mp911de
Copy link
Collaborator

mp911de commented May 31, 2024

Impossible to say without a reproducer. The listenToChannel(…) method effectively SUBSCRIBEs to a channel with a PubSubOutput. Given the exception above that mentions ValueOutput, there's a gap that only a reproducer can describe.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status: waiting-for-feedback We need additional information before we can continue
Projects
None yet
Development

No branches or pull requests

3 participants