langchain4j [BUG] Milvus: 之前的 channel ManagedChannelImpl{logId=1, target=124.***.**.240:19530} 没有正确关闭!

xurqigkl  于 5个月前  发布在  其他
关注(0)|答案(1)|浏览(75)

在使用0.31.0版本时,仍然遇到了这个问题。请确保调用了shutdown()/shutdownNow()方法,并等待awaitTermination()返回true。

问题出现在以下代码中:

at io.grpc.internal.ManagedChannelOrphanWrapper$ManagedChannelReference.(ManagedChannelOrphanWrapper.java:102)
at io.grpc.internal.ManagedChannelOrphanWrapper.(ManagedChannelOrphanWrapper.java:60)
at io.grpc.internal.ManagedChannelOrphanWrapper.(ManagedChannelOrphanWrapper.java:51)
at io.grpc.internal.ManagedChannelImplBuilder.build(ManagedChannelImplBuilder.java:655)
at io.grpc.ForwardingChannelBuilder2.build(ForwardingChannelBuilder2.java:261)
at io.milvus.client.MilvusServiceClient.(MilvusServiceClient.java:143)
at dev.langchain4j.store.embedding.milvus.MilvusEmbeddingStore.(MilvusEmbeddingStore.java:83)
at dev.langchain4j.store.embedding.milvus.MilvusEmbeddingStore$Builder.build(MilvusEmbeddingStore.java:329)
at org.dromara.wenxiaoqi.demo.pm.T2controller.m(Unknown Source)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:756)
at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:141)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:756)
at org.springframework.aop
这是一个Java堆栈跟踪,它显示了一系列方法调用和过滤器。从这个堆栈跟踪中,我们可以看到以下方法调用顺序:

1. 用户代码(可能是一个Servlet或其他Web组件)调用了某个方法。
2. 该方法调用了`org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)`,这是一个Spring框架的过滤器方法。
3. `OncePerRequestFilter`类的`doFilter`方法被调用,这是Spring框架中的一个过滤器,用于处理HTTP请求。
4. `doFilter`方法内部调用了其他Spring框架的方法,如`org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)`、`org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)`等。
5. `FormContentFilter`和`ServerHttpObservationFilter`等过滤器的`doFilterInternal`方法被调用。
6. `CharacterEncodingFilter`类的`doFilterInternal`方法被调用,这是一个用于处理字符编码的过滤器。
7. `CryptoFilter`类的`doFilter`方法被调用,这是一个用于加密请求数据的过滤器。
8. 最后,请求被传递给应用程序的其他部分进行处理。

相关问题