These are chat archives for spring-cloud/spring-cloud

22nd
Sep 2016
Stephan L
@stephlag
Sep 22 2016 07:34
@ryanjbaxter Sorry I was gone. Yes kind of, because a quick look in the SpringClientFactory code did not give me a clear view of why RestClient was cached and not the other implementations
Dave Syer
@dsyer
Sep 22 2016 08:26
@pradeepkusingh that looks like a classpath problem. I generated a clean project from start.spring.io with 1.3.8 and spring-cloud-config. It worked fine. So I think you need to look at your dependencies (you are missing a javax.validation implementation). There's a spring-boot-starter-validation if you get stuck.
ccit-spence
@ccit-spence
Sep 22 2016 08:28
@dsyer question about spring cloud stream. if you want basic crud functionailty you need a input / output channel per method? Is that correct?
Dave Syer
@dsyer
Sep 22 2016 08:37
Not sure I follow that.
You want to send messages to tell a backend to do CUD (the R normally would be synchronous)?
ccit-spence
@ccit-spence
Sep 22 2016 08:38
correct meant cud, r is being handle by rest services
Dave Syer
@dsyer
Sep 22 2016 08:38
Normally you would model that as events. No reason they need to go to different channels is there?
ccit-spence
@ccit-spence
Sep 22 2016 08:39
Never messed with Integration or Stream. was trying to figure out how it worked
Dave Syer
@dsyer
Sep 22 2016 08:39
I think you are talking about a higher level of design than Stream/Integration
They are just the plumbing
ccit-spence
@ccit-spence
Sep 22 2016 08:40
was trying to figure out how the receiving service knew how to process an update vs a create
Dave Syer
@dsyer
Sep 22 2016 08:40
An event normally has a "type" or something
I would put that in the message payload if I were you
It's important for your business operations in the backend
ccit-spence
@ccit-spence
Sep 22 2016 08:42
ok, then on the receiving end the type is read and directed accordingly
Dave Syer
@dsyer
Sep 22 2016 08:42
There are some frameworks that might be helpful.
Chris Richardson has something
There's Axon
and I recently came across this, which looks useful: https://github.com/opencredo/concursus
But Stream/Integration is really just a transport. It doesn't care what you put in the messages.
ccit-spence
@ccit-spence
Sep 22 2016 08:44
yeah, I had looked at that. I wanted to keep it simple. you are talking full event sourcing / cqrs
Dave Syer
@dsyer
Sep 22 2016 08:44
You could look at them for inspiration
At the end of the day they are just messages (events) with types and business data.
ccit-spence
@ccit-spence
Sep 22 2016 08:45
in my case all I am doing is splitting reads and writes
I wanted to avoid reading and playing back events
Dave Syer
@dsyer
Sep 22 2016 08:46
Right. Well that might come back and bite you later.
ccit-spence
@ccit-spence
Sep 22 2016 08:46
yeah, I have thought that as well
I like things to be simple
Dave Syer
@dsyer
Sep 22 2016 08:47
But you don't need a specialized event store necessarily
You just need to be aware that events can arrive out of order, and deal with that somehow.
ccit-spence
@ccit-spence
Sep 22 2016 08:49
in this case it is just a message to another service that only has a single entity and that is its only purpose
I still get the proposed benfits of what you are saying. It almost feels like a new version of an ESB
Dave Syer
@dsyer
Sep 22 2016 08:51
Maybe. ESBs are monolithic though. Probably you aren't going to do that.
ccit-spence
@ccit-spence
Sep 22 2016 08:51
ESB is a bad analogy, Feels like the new spot for vendors to have a product
Stian Lågstad
@stianlagstad
Sep 22 2016 09:13
Hi. I have a question relating to using WireMock to test my application with Feign clients: How can I get the Feign client to go to another url in my tests? The endpoint url is currently defined in my application.yml file.
Stephan L
@stephlag
Sep 22 2016 09:23
Hi @dsyer Spencer told me that you were trying to remove Lombok in the project
what is the rationale of this choice?
Dave Syer
@dsyer
Sep 22 2016 09:48
It confuses people. And it's an extra step that everyone has to go through to build the projects.
So the net effect is it discourages community participation
@stianlagstad if you are using Ribbon you can set the server URL in config
If you are using a hard coded URL in the feign client, you don't have that option I guess
Stian Lågstad
@stianlagstad
Sep 22 2016 09:54
Unfortunately not using ribbon
Dave Syer
@dsyer
Sep 22 2016 09:55
I guess you need to override the client in your test config then
Stian Lågstad
@stianlagstad
Sep 22 2016 09:58
I tried using @springboottest and set the property there - didn't work. Same with @TestPropertySource
Dave Syer
@dsyer
Sep 22 2016 09:58
You can use placeholders in the url I think
so @SpringBootTest should work
Maybe not with older versions?
What are you using?
Stian Lågstad
@stianlagstad
Sep 22 2016 10:13
Spring boot 1.4.1
Dave Syer
@dsyer
Sep 22 2016 10:17
What about Spring Cloud?
I don't think that feature is new though
So you should be able to do it with Brixton.SR6 (for instance)
Stian Lågstad
@stianlagstad
Sep 22 2016 10:29
Camden.RC1
(because I wanted spring boot 1.4)
Dave Syer
@dsyer
Sep 22 2016 10:32
Same difference
(although Brixton works with 1.4 anyway)
Stian Lågstad
@stianlagstad
Sep 22 2016 10:33
just so that it's clear: when I tried using properties in both @springboottest and @testpropertysource, the endpoint value from application.yml was still used. I was told that I could create an application.yml file in test/resources and that it should take precedence, but the same story there - the original endpoint url defined in the "normal" application.yml was used
Dave Syer
@dsyer
Sep 22 2016 10:34
I don't know who told you the trick with test/resources but I wouldn't expect that to work
Nor would @TestPropertySource (it's broken that way IMO)
But @SpringBootTest would work
Or use a test profile and a YAML file specific to that, if you like to use a file.
Stian Lågstad
@stianlagstad
Sep 22 2016 10:35
so something like @SpringBootTest(classes = MyApplication.class, properties = "endpoint.service.url=localhost:8765") should work?
could you point me to where I can read about how I can use profiles to use another application.yml file?
Dave Syer
@dsyer
Sep 22 2016 10:36
Yes. Assuming you have @FeignClient(name="foo", url="${endpoint.service.url}") somewhere
And assuming you autowire the client into your test
Stian Lågstad
@stianlagstad
Sep 22 2016 10:38
that's what I'm doing
or, I'm using a custom class that takes the feign client as a constructor argument. that custom class is being autowired in my test
Dave Syer
@dsyer
Sep 22 2016 10:39
Don't know then.
I can only speculate. Maybe you have an unusual lifecycle.
A sample would help.
Stian Lågstad
@stianlagstad
Sep 22 2016 10:40
Thanks for the help. I'm going to keep at it for a little while, and if nothing works I'll try to create an example project I can show you
Dave Syer
@dsyer
Sep 22 2016 10:49
Works for me. I just tried it with a simple sample.
Stian Lågstad
@stianlagstad
Sep 22 2016 10:52
could you show me the code?
Dave Syer
@dsyer
Sep 22 2016 10:54
@SpringBootApplication
@EnableFeignClients
public class RefreshApplication {

    public static void main(String[] args) {
        SpringApplication.run(RefreshApplication.class, args);
    }
}

@FeignClient(name="example", url="${service.url}")
interface Client {
    @RequestMapping(path="/", method=RequestMethod.GET)
    public String get();
}
RunWith(SpringRunner.class)
@SpringBootTest(properties="service.url=google.com")
public class RefreshApplicationTests {

    @Autowired
    private Client client;

    @Test
    public void gets() throws Exception {
        System.err.println(client.get());
    }

}
Or with WireMock:
@RunWith(SpringRunner.class)
@AutoConfigureWireMock(port = 8765)
@SpringBootTest(properties = "service.url=localhost:8765")
public class RefreshApplicationTests {

    @Autowired
    private Client client;

    @Test
    public void gets() throws Exception {
        stubFor(get(urlEqualTo("/")).willReturn(aResponse()
                .withHeader("Content-Type", "text/plain").withBody("Hello World!")));
        System.err.println(client.get());
    }

}
Stian Lågstad
@stianlagstad
Sep 22 2016 11:08
Thanks a lot! I think we located my error: Using a config-server for the application.yml file (using spring.cloud.config.uri)
When I moved my application.yml back into my project, the springboottest property suddenly worked
I don't understand why, but now it worked
Stian Lågstad
@stianlagstad
Sep 22 2016 11:13
Do you have any idea why it didn't work when I used an external config-repo?
Dave Syer
@dsyer
Sep 22 2016 11:21
Yes. Remote property sources are always added with high priority.
We've had some discussions about how we might change that in tests, but no-one came up with anything concrete yet.
Stian Lågstad
@stianlagstad
Sep 22 2016 11:24
Ah. Sorry about not including that information earlier, and thanks again for the help
Can I use profiles to choose which config (remote/local) I use, then?
Dave Syer
@dsyer
Sep 22 2016 11:25
Yes
Sort of
E.g. you could switch off the remote config in bootstrap-test.properties
We'll probably end up doing that by default in spring-cloud-commons (or spring-boot 2.0)
and giving users the option to opt back in.
Stian Lågstad
@stianlagstad
Sep 22 2016 11:31
Is that a file I create (bootstrap-test.properties), or is that the same as my application.yml?
Dave Syer
@dsyer
Sep 22 2016 11:32
That's a file you create
and then @ActivateProfiles("test")
Stian Lågstad
@stianlagstad
Sep 22 2016 11:33
Sorry for these questions, but I'm still new: Does that work because @ActivateProfiles("test) is looking for *.properties files with "test" in their name?
Dave Syer
@dsyer
Sep 22 2016 11:34
Yes. Or more accurately, it activates the profile, which then changes the search path for properties files.
"bootstrap" is earlier than "application", and I think you probably need to be early
Stian Lågstad
@stianlagstad
Sep 22 2016 11:38
I should just read the whole of https://cloud.spring.io/spring-cloud-config/spring-cloud-config.html, shouldn't I? :)
Stian Lågstad
@stianlagstad
Sep 22 2016 11:44
thanks!
Fabian Wallwitz
@cforce
Sep 22 2016 11:51
hi.. how can i disable FeignClients in a @SpringBootTest ?
having a @Profile (!default) on @EnableFeignClients but for two profiles would also a valid solution.. but ! seems to work only for one profile
Dave Syer
@dsyer
Sep 22 2016 11:53
"default" is a special profile
But that's probably the best way to do it (with a profile)
Why do you need to?
Fabian Wallwitz
@cforce
Sep 22 2016 11:56
@Profile({"!default, "!dev"}) .. seems not work because . is it AND or OR?
i tried @TestPropertySource () .. but it seems to be overruled by an PropertyPlaceHolderConfigurer in the legacy code
Dave Syer
@dsyer
Sep 22 2016 11:58
The javadocs for @Profile say "when one or more"
Fabian Wallwitz
@cforce
Sep 22 2016 11:58
i need Feign off .. so my mocking gets into place
there bis already a github issue .. that desacribes it ..
FeignClient are primary and overrule the mocks ..
so the only chance is NOT to create the FeignProxies
Dave Syer
@dsyer
Sep 22 2016 12:00
I'm afraid you just have to enumerate all the profiles your app might run in a @Profile
and then use a different one in the test
I can't think of another way
Or write a custom @Condition
That might be safer. But more effort as well.
You could just use @ConditionalOnProperty and make it not match only in a test
That's what I would do
Stian Lågstad
@stianlagstad
Sep 22 2016 12:24
@dsyer I created a file bootstrap-test.ymlin test/resources (with the contents of my server-repo application.yml only with the feign client url changed to wiremock), and added @ActiveProfiles("test")to my test class, but the external config is still being applied. Did I miss something?
Dave Syer
@dsyer
Sep 22 2016 12:30
Did you disable the external config in the bootstrap-test.yml?
Stian Lågstad
@stianlagstad
Sep 22 2016 12:35
Probably not? bootstrap-test.yml has no reference to the external config, but bootstrap.yml still has
Dave Syer
@dsyer
Sep 22 2016 12:38
bootstrap-test.yml was supposed to be a one liner
Stian Lågstad
@stianlagstad
Sep 22 2016 12:42
ah I read "switch off external config" as "replace it with the test config"
Dave Syer
@dsyer
Sep 22 2016 12:42
I think maybe spring.cloud.config.enabled=false
It'll be in the user guide
"spring.cloud.config.enabled
true
Flag to say that remote configuration is enabled. Default true;"
Stian Lågstad
@stianlagstad
Sep 22 2016 12:45
Thanks! Adding that to the top of bootstrap-test.yml did the trick. Should I not keep the rest of my test config in that file? The wiremock url for instance
Dave Syer
@dsyer
Sep 22 2016 12:53
You can do.
Or put it in @SpringBootTest
Up to you
Stian Lågstad
@stianlagstad
Sep 22 2016 13:02
Thanks again :)
Ragnar Rova
@rrva
Sep 22 2016 13:11
What does Camden.M1 signify in terms of quality compared to Camden.RC1 ?
M1 = Milestone 1?
Marcos Barbero
@marcosbarbero
Sep 22 2016 13:25
M1 = Milestone 1
in general RC (Release candidate) is more stable than a milestone build
Ryan Baxter
@ryanjbaxter
Sep 22 2016 13:28
@stephlag you probbaly want to start by looking at RibbonLoadBalancingHttpClient
and the HttpClientin that class
that is probably also where you can configure the connection manager as well
Ragnar Rova
@rrva
Sep 22 2016 14:01
how many would step up onto something like M1 for production use, especially given the discussion at https://www.youtube.com/watch?v=KP_bKvXkoC4&t=17m39s
Spencer Gibb
@spencergibb
Sep 22 2016 14:02
@rrva we don’t suggest putting an M1 into production.
Ragnar Rova
@rrva
Sep 22 2016 14:02
i.e. relying on "bleeding edge" vs "stable versions"
Ragnar Rova
@rrva
Sep 22 2016 14:07
@spencergibb and what are your thoughts concerning RC1? We are of course mainly relying on our own tests
Spencer Gibb
@spencergibb
Sep 22 2016 14:23
the release will follow RC shortly
Ragnar Rova
@rrva
Sep 22 2016 14:23
Is a RC2 planned before release?
Spencer Gibb
@spencergibb
Sep 22 2016 14:23
no
Ragnar Rova
@rrva
Sep 22 2016 14:23
So guesstimate for release?
may get pushed back to tomorrow or monday though
Stephan L
@stephlag
Sep 22 2016 14:29
@ryanjbaxter @spencergibb I think the issue is not in RibbonLoadBalancingHttpClient but in RibbonClientConfiguration
it loads a subclass of RestClient
which get loaded in every ribbon context
when using RibbonLoadBalancingHttpClient this code returns always null
public <T> T getInstance(String name, Class<T> type) {
    AnnotationConfigApplicationContext context = getContext(name);
    if (BeanFactoryUtils.beanNamesForTypeIncludingAncestors(context,
            type).length > 0) {
        return context.getBean(type);
    }
    return null;
}
Stephan L
@stephlag
Sep 22 2016 14:35
so a new instance of RibbonLoadBalancingHttpClient is instanciated for every call
Ryan Baxter
@ryanjbaxter
Sep 22 2016 14:39
sorry @stephlag remind me again how you are using Ribbon in this case?
Stephan L
@stephlag
Sep 22 2016 14:39
we are using it through a ZuulFilter
as described in spring-cloud/spring-cloud-netflix#918
we just changed the RibbonCommandFactory by adding this bean in our configuration
@Bean
public RibbonCommandFactory<?> ribbonCommandFactory(
final SpringClientFactory clientFactory) {
return new HttpClientRibbonCommandFactory(clientFactory);
}
Ryan Baxter
@ryanjbaxter
Sep 22 2016 14:41
what class is the getInstance method in?
Stephan L
@stephlag
Sep 22 2016 14:41
in SpringClientFactory
which is called by HttpClientRibbonCommandFactory.create
when not defining a new RibbonCommandFactory, RestClientRibbonCommandFactory is used and manages to get an instance of RestClient in the context
Spencer Gibb
@spencergibb
Sep 22 2016 14:46
How are RestClient and the apache clients related?
Stephan L
@stephlag
Sep 22 2016 14:48
this is the default client in previous version of spring cloud (built using RestClientRibbonCommandFactory)
I'm not sure I understand your question
Spencer Gibb
@spencergibb
Sep 22 2016 14:50

You said you thought the problem involved RibbonRestClient

it loads a subclass of RestClient

Stephan L
@stephlag
Sep 22 2016 14:50
the initial problem with RestClient is the one described in spring-cloud/spring-cloud-netflix#918
but when changing the RibbonCommandFactory implementation to use HttpClientRibbonCommandFactory we hit a performance bug because every call leads to new instance of RibbonLoadBalancingHttpClient
in this code
public HttpClientRibbonCommand create(final RibbonCommandContext context) {
        final String serviceId = context.getServiceId();
        final RibbonLoadBalancingHttpClient client = this.clientFactory.getClient(
                serviceId, RibbonLoadBalancingHttpClient.class);
        client.setLoadBalancer(this.clientFactory.getLoadBalancer(serviceId));

        return new HttpClientRibbonCommand(serviceId, client, context, zuulProperties);
    }
Ryan Baxter
@ryanjbaxter
Sep 22 2016 14:58
is this your own zuul filter or one in spring cloud?
Stephan L
@stephlag
Sep 22 2016 14:58
only spring cloud code
Ryan Baxter
@ryanjbaxter
Sep 22 2016 15:01
so it is RibbonRoutingFilter.forward that is calling create for each request then?
Stephan L
@stephlag
Sep 22 2016 15:04
yes
Thread [XNIO-2 task-1] (Suspended (breakpoint at line 38 in HttpClientRibbonCommandFactory))
HttpClientRibbonCommandFactory.create(RibbonCommandContext) line: 38
HttpClientRibbonCommandFactory.create(RibbonCommandContext) line: 29
RibbonRoutingFilter.forward(RibbonCommandContext) line: 125
RibbonRoutingFilter.run() line: 79
RibbonRoutingFilter(ZuulFilter).runFilter() line: 112
FilterProcessor.processZuulFilter(ZuulFilter) line: 197
FilterProcessor.runFilters(String) line: 161
FilterProcessor.route() line: 120
ZuulRunner.route() line: 96
ZuulServlet.route() line: 116
ZuulServlet.service(ServletRequest, ServletResponse) line: 81
Ryan Baxter
@ryanjbaxter
Sep 22 2016 15:10
are u suggesting the caching happen in RibbonRoutingFilter then?
Stephan L
@stephlag
Sep 22 2016 15:10
I think the issue is in the context that is not containing an instance of the RibbonLoadBalancingHttpClient class
bitsofinfo
@bitsofinfo
Sep 22 2016 15:19
whats the easiest way to adjust the interval or how often ribbon interrogates eureka for the list of endpoints for a given service name?
Ryan Baxter
@ryanjbaxter
Sep 22 2016 15:19
ok think i see your point now
seems to make sense to me
Spencer Gibb
@spencergibb
Sep 22 2016 15:20
@bitsofinfo ribbon.ServerListRefreshInterval
bitsofinfo
@bitsofinfo
Sep 22 2016 15:21
thank you, that value is in milliseconds I assume?
Spencer Gibb
@spencergibb
Sep 22 2016 15:21
yes
Stephan L
@stephlag
Sep 22 2016 16:00
Just tried with camden rc1, as HttpClientRibbonCommandFactory is now the default the problem is there without any change in the configuration
Do you think we should create a new bean in RibbonClientConfiguration ?
Ryan Baxter
@ryanjbaxter
Sep 22 2016 16:06
i new bean for what?
Stephan L
@stephlag
Sep 22 2016 16:06
to have the same behaviour that we had with the restclient
Ryan Baxter
@ryanjbaxter
Sep 22 2016 16:07
i thought the idea was to put the client in the context
Stephan L
@stephlag
Sep 22 2016 16:07
yes
an implementation of AbstractLoadBalancerAwareClient
currently the only implementation is the com.netflix.niws.client.http.RestClient
Ryan Baxter
@ryanjbaxter
Sep 22 2016 16:15
so calling SpringClientFactory.create does not cache the client in the context?
Stephan L
@stephlag
Sep 22 2016 16:15
no it never finds it in the context
Ryan Baxter
@ryanjbaxter
Sep 22 2016 16:16
but then it creates an instance though correct
Stephan L
@stephlag
Sep 22 2016 16:17
yes
but just returns it
do you think we ought to cache it in SpringClientFactory ?
Ryan Baxter
@ryanjbaxter
Sep 22 2016 16:21
i would say that we put it in the context the same way the Netflix RestClient is placed in the context
which i am unfamiliar with
so I am not sure how it got there
i need to step away for a bit but i will be back, sorry
Stephan L
@stephlag
Sep 22 2016 16:21
all right
any thoughts on this question @spencergibb @dsyer ?
This class was introduced in this commit spring-cloud/spring-cloud-netflix@6417923
Spencer Gibb
@spencergibb
Sep 22 2016 16:24
I agree with @ryanjbaxter
Stephan L
@stephlag
Sep 22 2016 16:25
quite an old commit though
Spencer Gibb
@spencergibb
Sep 22 2016 16:25
“This class”?
a bean for every implementation (today 3) of AbstractLoadBalancerAwareClient ?
Spencer Gibb
@spencergibb
Sep 22 2016 16:27
I need to look at it
Stephan L
@stephlag
Sep 22 2016 16:27
There is already one for RestClient so we may add one for RibbonLoadBalancingHttpClient and an other one for OkHttpLoadBalancingClient ?
Spencer Gibb
@spencergibb
Sep 22 2016 16:28
I need to look at it
Stephan L
@stephlag
Sep 22 2016 16:31
ok
Spencer Gibb
@spencergibb
Sep 22 2016 18:41
@stephlag @ryanjbaxter this is a workaround until we release a fix
@EnableZuulProxy
@SpringBootApplication
@RibbonClients(defaultConfiguration = {RibbonClientConfiguration.class, DefaultConfig.class})
public class DemoapachehttpclientcreateApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoapachehttpclientcreateApplication.class, args);
    }
}

class DefaultConfig {

    @Bean
    public RibbonLoadBalancingHttpClient ribbonLoadBalancingHttpClient(IClientConfig config, RetryHandler retryHandler) {
        RibbonLoadBalancingHttpClient client = new RibbonLoadBalancingHttpClient();
        client.initWithNiwsConfig(config);
        client.setRetryHandler(retryHandler);
        return client;
    }
}
@stephlag yes, we need to create one, but on similar conditions to HttpClientRibbonCommandFactory and siblings
Ryan Baxter
@ryanjbaxter
Sep 22 2016 18:43
so that bean ends up in the context and then is returned when we create the ribbon command?
Spencer Gibb
@spencergibb
Sep 22 2016 18:44
right
only created once.
Ryan Baxter
@ryanjbaxter
Sep 22 2016 18:44
:+1:
bitsofinfo
@bitsofinfo
Sep 22 2016 19:02

@spencergibb regarding ribbon. ServerListRefreshInterval I configured this on all my apps but I'm still not sure whats going on, perhaps you will have an idea:

  • I have 2 services, serviceA (one instance), and serviceB (2 instances, running on diff ports)

  • All are registered with eureka and eureka properly presents the state correctly

  • serviceA (via a @FeignClient) makes a multiple requests to serviceB (instance1), works fine

  • I shutdown serviceB (instance1), leaving serviceB (instance2) in a working active state.

  • Eureka properly reflects that serviceB is up, albiet one instance available

  • manual REST requests I make via curl to serviceB (instance2) as reported by eureka work fine

  • serviceA makes a request to serviceB and fails, fallback is invoked.

  • I try again, after different periods of time, and serviceA never can connect to serviceB again. It only works again if I bring serviceB (instance1) backup, whether or not the second instance that is registered with eureka is up, seems to make no difference to serviceA's feign client.

Where should I start looking? Not sure if ribbon. ServerListRefreshInterval is taking effect or if I should re-configure something else, perhaps the eureka client itself?

Spencer Gibb
@spencergibb
Sep 22 2016 19:07
it sounds alot like a bug I fixed once that particularly manifest itself when there were only two instances, but you should get an updated server list regardless. I debug in DynamicServerListLoadBalancer.
bitsofinfo
@bitsofinfo
Sep 22 2016 19:24
hmm, ok so I am debugging in there when it updates the server list. So while my http://eureka/eureka/apps shows only one node, when DiscoveryEnabledNIWSServerList.obtainServersViaDiscovery() invokes DiscoveryClient.getInstancesByVipAddress()... this continually returns 2 nodes. When I go to http://my-eureka/eureka/apps, this correctly only reflects the one up node (not 2). I don't see any actual http(s) request hitting the eureka server to update the list
bitsofinfo
@bitsofinfo
Sep 22 2016 19:35
I see in DiscoveryClient.fetchRegistry() is being called by another thread I guess. But the "delta" returned by getAndUpdateDelta contains no changes in it.... hmmm
bitsofinfo
@bitsofinfo
Sep 22 2016 19:40

makes a request to apps/delta which doensn't contain any server information just something like `<applications>

<versions__delta>34</versions__delta>

<apps__hashcode>UP8</apps__hashcode>
</applications>`

so.. i'm not sure how to have this get an accuratley updated server list?
Mathias Düsterhöft
@mduesterhoeft
Sep 22 2016 19:43
@spencergibb updated the PR spring-cloud/spring-cloud-netflix#1354 with the doc you requested - but it fails during test with this error:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-jar-plugin:2.4:jar (default-jar) on project spring-cloud-netflix-core: Execution default-jar of goal org.apache.maven.plugins:maven-jar-plugin:2.4:jar failed: Plugin org.apache.maven.plugins:maven-jar-plugin:2.4 or one of its dependencies could not be resolved: Could not transfer artifact org.codehaus.plexus:plexus-interpolation:jar:1.15 from/to spring-snapshots (http://repo.spring.io/libs-snapshot-local): Failed to transfer file: http://repo.spring.io/libs-snapshot-local/org/codehaus/plexus/plexus-interpolation/1.15/plexus-interpolation-1.15.jar. Return code is: 409 , ReasonPhrase:Conflict.
tried three times some error with different jars every time - am I missing sth?
Spencer Gibb
@spencergibb
Sep 22 2016 19:44
no idea
@bitsofinfo versions?
bitsofinfo
@bitsofinfo
Sep 22 2016 19:44
brixton.sr6
Spencer Gibb
@spencergibb
Sep 22 2016 19:45
client and server?
bitsofinfo
@bitsofinfo
Sep 22 2016 19:45
yes everything
also note the other possibly non-typical thing, is that all my services have secure ports

like ```<port enabled="false">8091</port>

<securePort enabled="true">8091</securePort>```

Spencer Gibb
@spencergibb
Sep 22 2016 19:46
DiscoveryEnabledNIWSServerList is where that happens
bitsofinfo
@bitsofinfo
Sep 22 2016 19:47
yes, i saw whereit is filtering on that applications set, but that is updated by this other thread that hits DiscoveryClient. fetchRegistry, its that delta that it gets, which seems to reflect no change, hence nothing is updating I guess
Spencer Gibb
@spencergibb
Sep 22 2016 19:47
unsure
Mathias Düsterhöft
@mduesterhoeft
Sep 22 2016 19:57
The PR test fails with INFO: I/O exception (java.net.SocketException) caught when processing request to {s}->https://repo.maven.apache.org:443: Connection reset - how can I rerun the circleci tests from the PR?
Spencer Gibb
@spencergibb
Sep 22 2016 19:57
I can
Mathias Düsterhöft
@mduesterhoeft
Sep 22 2016 20:14
looks like there was a problem connecting to https://repo.maven.apache.org:443 so maven tried to download the jar from the spring snapshot repo - were it cannot be found - http://repo.spring.io/libs-snapshot-local/org/codehaus/plexus/plexus-interpolation/1.15/plexus-interpolation-1.15.jar
So I think rerunning again makes sense - but nevermind - I retrigger the build again by a push tomorrow
Ali Moghadam
@alighm
Sep 22 2016 23:01
This message was deleted