-
Notifications
You must be signed in to change notification settings - Fork 899
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
Test failure: com.linecorp.armeria.spring.actuate.ArmeriaSpringActuatorAutoConfigurationSecureTest.normal()
#4391
Comments
/cc @kojilin |
Will check if not solved yet ^^ |
We haven't taken a look into it. Thanks! 😄 |
It's not exact, but I think this is a problem due to the time difference between the process of getting a random bindable port number and the actual binding. There are other similar issues. what do you think? 🤔 |
Ah ha, that's correct. I just looked at the full stack trace and the reason is that We can ignore this failure. 😄
|
We may ignore this. However, when certain parameters are passed to the Armeria server, I thought that it would be fine if the random port was bound. Of course, this may not be very important as it is needed for the test area. 🤣 |
I missed the part. By the way, I'm failing to find the test suite where a random port is passed. Could you point it out? If it is fragile, I'd like to mark it as a |
When I looked again in relation to it, I found that Armeria already binds to a random port if 0 is given. 🤣 My guess is that there is a problem with spring-related tests. Regarding the above, something slightly different in spring is that the internal service should be able to know what random port to specify. That's why we use I can't think of a way to fix this right now, so I think it's a good idea to add |
…obtained in advance Motivation: If a random port (0) for internal services or managed services is specified in Spring configuration, the Spring integration module allocate available ports early and use them to configure additional service later. https://github.com/line/armeria/blob/948763acc7911c951e37dbd35132edd253ea3934/spring/boot2-actuator-autoconfigure/src/main/java/com/linecorp/armeria/spring/actuate/ArmeriaSpringActuatorAutoConfiguration.java#L258-L260 This is not a problem in production mode. However, in testing situation, many test servers are started with a random port and the available ports can be acquired by them. line#4391 line#4329 Modifications: - Add `RetryableArmeriaServerGracefulShutdownLifecycle` to retry a server with a backoff at most N times. Result: - This is not a perfect answer for the failure but it might reduce the number of failures. - Fixes line#4391 line#4329
I tried to retry the failure but it was difficult to apply because the failure occurred while an application context is initialized. |
…obtained in advance (#4395) Motivation: If a random port (0) for internal services or managed services is specified in Spring configuration, the Spring integration module allocate available ports early and use them to configure additional service later. https://github.com/line/armeria/blob/948763acc7911c951e37dbd35132edd253ea3934/spring/boot2-actuator-autoconfigure/src/main/java/com/linecorp/armeria/spring/actuate/ArmeriaSpringActuatorAutoConfiguration.java#L258-L260 This is not a problem in production mode. However, in testing situations, many test servers are started simultaneously with a random port and the available ports can be acquired by them. #4391 #4329 Modifications: - Add `RetryableArmeriaServerGracefulShutdownLifecycle` to retry a server with a backoff at most N times. Result: - This is not a perfect answer for the failure but it might reduce the number of failures. - Fixes #4391 #4329
…m port obtained in advance (#4431) Motivation: If a random port (0) for internal services or managed services is specified in Spring configuration, the Spring integration module allocate available ports early and use them to configure additional service later. https://github.com/line/armeria/blob/948763acc7911c951e37dbd35132edd253ea3934/spring/boot2-actuator-autoconfigure/src/main/java/com/linecorp/armeria/spring/actuate/ArmeriaSpringActuatorAutoConfiguration.java#L258-L260 This is not a problem in production mode. However, in testing situation, many test servers are started with a random port and the available ports can be acquired by them. #4391 #4329 Modifications: - Add `ArmeriaServerLifecyle` interface to create `ArmeriaServerGracefulShutdownLifecycle` if `RetryableArmeriaServerGracefulShutdownLifecycle` is missing. - Add `RetryableArmeriaServerGracefulShutdownLifecycle` to retry a server with a backoff at most N times. Result: - This is not a perfect answer for the failure but it might reduce the number of failures.
…obtained in advance (line#4395) Motivation: If a random port (0) for internal services or managed services is specified in Spring configuration, the Spring integration module allocate available ports early and use them to configure additional service later. https://github.com/line/armeria/blob/948763acc7911c951e37dbd35132edd253ea3934/spring/boot2-actuator-autoconfigure/src/main/java/com/linecorp/armeria/spring/actuate/ArmeriaSpringActuatorAutoConfiguration.java#L258-L260 This is not a problem in production mode. However, in testing situations, many test servers are started simultaneously with a random port and the available ports can be acquired by them. line#4391 line#4329 Modifications: - Add `RetryableArmeriaServerGracefulShutdownLifecycle` to retry a server with a backoff at most N times. Result: - This is not a perfect answer for the failure but it might reduce the number of failures. - Fixes line#4391 line#4329
…m port obtained in advance (line#4431) Motivation: If a random port (0) for internal services or managed services is specified in Spring configuration, the Spring integration module allocate available ports early and use them to configure additional service later. https://github.com/line/armeria/blob/948763acc7911c951e37dbd35132edd253ea3934/spring/boot2-actuator-autoconfigure/src/main/java/com/linecorp/armeria/spring/actuate/ArmeriaSpringActuatorAutoConfiguration.java#L258-L260 This is not a problem in production mode. However, in testing situation, many test servers are started with a random port and the available ports can be acquired by them. line#4391 line#4329 Modifications: - Add `ArmeriaServerLifecyle` interface to create `ArmeriaServerGracefulShutdownLifecycle` if `RetryableArmeriaServerGracefulShutdownLifecycle` is missing. - Add `RetryableArmeriaServerGracefulShutdownLifecycle` to retry a server with a backoff at most N times. Result: - This is not a perfect answer for the failure but it might reduce the number of failures.
https://github.com/line/armeria/runs/7762244463?check_suite_focus=true#step:7:2916
The text was updated successfully, but these errors were encountered: