Closed matth0x1 closed 4 years ago
Can you go to http://localhost:31159/admin/logging and turn on the debug logs for DiffyProxy. I suspect Diffy may be encountering either dom parsing errors or networking errors.
I get the following in STOUT
.
D 1208 12:03:21.394 THREAD22: success networking
D 1208 12:03:21.394 THREAD22: error lifting
java.lang.Exception: Content type: text/xml is not supported
at com.twitter.diffy.lifter.HttpLifter$.contentTypeNotSupportedException(HttpLifter.scala:15)
at com.twitter.diffy.lifter.HttpLifter$.contentTypeNotSupportedExceptionFuture(HttpLifter.scala:16)
at com.twitter.diffy.lifter.HttpLifter$$anonfun$liftResponse$1.apply(HttpLifter.scala:112)
at com.twitter.diffy.lifter.HttpLifter$$anonfun$liftResponse$1.apply(HttpLifter.scala:49)
at com.twitter.util.Future$$anonfun$flatMap$1.apply(Future.scala:890)
at com.twitter.util.Future$$anonfun$flatMap$1.apply(Future.scala:889)
at com.twitter.util.ConstFuture$$anon$6.run(Future.scala:1266)
at com.twitter.concurrent.LocalScheduler$Activation.run(Scheduler.scala:193)
at com.twitter.concurrent.LocalScheduler$Activation.submit(Scheduler.scala:140)
at com.twitter.concurrent.LocalScheduler.submit(Scheduler.scala:222)
at com.twitter.concurrent.Scheduler$.submit(Scheduler.scala:84)
at com.twitter.util.Promise.runq(Promise.scala:342)
at com.twitter.util.Promise.updateIfEmpty(Promise.scala:713)
at com.twitter.util.Promise.update(Promise.scala:686)
at com.twitter.util.Promise.setValue(Promise.scala:662)
at com.twitter.concurrent.AsyncQueue.offer(AsyncQueue.scala:88)
at com.twitter.finagle.netty3.transport.ChannelTransport.handleUpstream(ChannelTransport.scala:51)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
at org.jboss.netty.handler.codec.http.HttpContentDecoder.messageReceived(HttpContentDecoder.java:108)
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
at org.jboss.netty.handler.codec.http.HttpChunkAggregator.messageReceived(HttpChunkAggregator.java:145)
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)
at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:459)
at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:536)
at org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:435)
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
at org.jboss.netty.handler.codec.http.HttpClientCodec.handleUpstream(HttpClientCodec.java:92)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
at org.jboss.netty.channel.SimpleChannelHandler.messageReceived(SimpleChannelHandler.java:142)
at com.twitter.finagle.netty3.channel.ChannelStatsHandler.messageReceived(ChannelStatsHandler.scala:80)
at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:88)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
at org.jboss.netty.channel.SimpleChannelHandler.messageReceived(SimpleChannelHandler.java:142)
at com.twitter.finagle.netty3.channel.ChannelRequestStatsHandler.messageReceived(ChannelRequestStatsHandler.scala:35)
at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:88)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:108)
at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:337)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89)
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
I can confirm the content type of the API I'm testing is text/xml.
Looks like you will need to add support for "text/xml" content type in HttpLifter.
Hey @matth0x1, I forked and put in a tiny tweek to make it diff xml. It's not perfect but it works if you want to try it out... https://github.com/anton1r/diffy
Is there any solution to this? I am having the same issue
Please migrate to https://github.com/opendiffy/diffy - it has xml diff support and many other upgrades and fixes.
The service I'm testing accepts a POST request; I have set -allowHttpSideEffects=true I have tested each of these services without the diffy proxy and received the expected responses.
The candidate, primary and secondary services are all receiving the POST requests when I send them to the diffy proxy. I understand that the client talking to the diffy proxy is not going to receive a response.
No results are showing. Am I missing something?
On the metrics page
http://localhost:31159/admin/metrics#clnt/primary/requests
I can see a bar that rises when I send a request to the diffie proxy for each of the services; candidate, primary and secondary. Same for therecieved_bytes
metric.Below is the output from from running the jar file: