hgaol opened a new issue #2937:
URL: https://github.com/apache/incubator-shenyu/issues/2937


   ### Is there an existing issue for this?
   
   - [X] I have searched the existing issues
   
   ### Current Behavior
   
   When setting the `fallbackUri` to APIs not in `shenyu-bootstrap`, like 
`https://example.com`, it will not redirect to the target  endpint. As well as 
for other registered APIs like APIs in `http-example` module.
   e.g.
   <img width="899" alt="image" 
src="https://user-images.githubusercontent.com/11908658/155656698-71d1bec0-1f5b-4c07-ad8e-8ccc23db1a90.png";>
   
   will  return 404.
   <img width="358" alt="image" 
src="https://user-images.githubusercontent.com/11908658/155656735-c95d2ed5-f103-4692-91a8-f48d5917bd16.png";>
    
   
   ### Expected Behavior
   
   redirect to the fallbackUri as set in `admin`. like `https://example.com`.
   
   ### Steps To Reproduce
   
   1. go to admin, enable `resilience4j`, and set proper config. below is an 
example.
   <img width="899" alt="image" 
src="https://user-images.githubusercontent.com/11908658/155656698-71d1bec0-1f5b-4c07-ad8e-8ccc23db1a90.png";>
   
   2. call an API which will return `400` status.
   3. after calling many times, it will trigger `circuit breaker` and return 
`404`.
   <img width="358" alt="image" 
src="https://user-images.githubusercontent.com/11908658/155656735-c95d2ed5-f103-4692-91a8-f48d5917bd16.png";>
   
   ### Environment
   
   ```markdown
   ShenYu version(s): current master branch (2.4.3-SNAPSHOT)
   ```
   
   
   ### Debug logs
   
   ```log
   2022-02-25 13:00:54 [boundedElastic-1] WARN  
org.apache.shenyu.common.utils.JsonUtils - write to json string error: 
org.apache.shenyu.plugin.api.result.DefaultShenyuEntity@6de86571
   com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Direct 
self-reference leading to cycle (through reference chain: 
org.apache.shenyu.plugin.api.result.DefaultShenyuEntity["data"]->org.springframework.web.server.ResponseStatusException["mostSpecificCause"])
        at 
com.fasterxml.jackson.databind.exc.InvalidDefinitionException.from(InvalidDefinitionException.java:77)
        at 
com.fasterxml.jackson.databind.SerializerProvider.reportBadDefinition(SerializerProvider.java:1191)
        at 
com.fasterxml.jackson.databind.ser.BeanPropertyWriter._handleSelfReference(BeanPropertyWriter.java:944)
        at 
com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:721)
        at 
com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:722)
        at 
com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:166)
        at 
com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:727)
        at 
com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:722)
        at 
com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:166)
        at 
com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)
        at 
com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319)
        at 
com.fasterxml.jackson.databind.ObjectMapper._configAndWriteValue(ObjectMapper.java:4094)
        at 
com.fasterxml.jackson.databind.ObjectMapper.writeValueAsString(ObjectMapper.java:3404)
        at org.apache.shenyu.common.utils.JsonUtils.toJson(JsonUtils.java:85)
        at 
org.apache.shenyu.plugin.api.result.ShenyuResult.format(ShenyuResult.java:58)
        at 
org.apache.shenyu.plugin.api.utils.WebFluxResultUtils.result(WebFluxResultUtils.java:58)
        at 
org.apache.shenyu.web.handler.GlobalErrorHandler.handle(GlobalErrorHandler.java:59)
        at 
org.springframework.web.server.handler.ExceptionHandlingWebHandler.lambda$handle$0(ExceptionHandlingWebHandler.java:77)
        at 
reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:88)
        at 
reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:100)
        at reactor.core.publisher.Operators.error(Operators.java:182)
        at reactor.core.publisher.MonoError.subscribe(MonoError.java:52)
        at reactor.core.publisher.Mono.subscribe(Mono.java:4105)
   ```
   
   ### Anything else?
   
   Related code.
   
   
https://github.com/apache/incubator-shenyu/blob/2603db2df10448c836933e7711a5c4daae28d087/shenyu-plugin/shenyu-plugin-resilience4j/src/main/java/org/apache/shenyu/plugin/resilience4j/executor/Executor.java#L64
   
   If it's a bug, I can fix it. Thanks~
   
   


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to