-
Bug
-
Resolution: Won't Do
-
Blocker
-
None
I have a fail safe service that would normally return a value provided by a provider A or a value from provider B on fallback (in case the provider A throws an exception). Providers return values based on MP Config property. Source of the properties is a ConfigSource class that reads a property file.
The issue is ConfigSource#getProperties method is called too may times that results to Too many open files exception:
13:41:48,959 ERROR [stderr] (MSC service thread 1-4) java.io.FileNotFoundException: /home/istraka/repositories/github/eap-microprofile-test-suite/microprofile-metrics/target/test-classes/org/jboss/eap/qe/microprofile/metrics/integration/ft/ft-custom-metric.properties (Too many open files) 13:41:48,960 ERROR [stderr] (MSC service thread 1-4) at java.io.FileInputStream.open0(Native Method) 13:41:48,960 ERROR [stderr] (MSC service thread 1-4) at java.io.FileInputStream.open(FileInputStream.java:195) 13:41:48,960 ERROR [stderr] (MSC service thread 1-4) at java.io.FileInputStream.<init>(FileInputStream.java:138) 13:41:48,960 ERROR [stderr] (MSC service thread 1-4) at java.io.FileInputStream.<init>(FileInputStream.java:93) 13:41:48,984 ERROR [stderr] (MSC service thread 1-4) at org.jboss.eap.qe.microprofile.metrics.integration.ft.FTCustomConfigSource.getProperties(FTCustomConfigSource.java:25) 13:41:48,984 ERROR [stderr] (MSC service thread 1-4) at org.jboss.eap.qe.microprofile.metrics.integration.ft.FTCustomConfigSource.getValue(FTCustomConfigSource.java:37) 13:41:48,984 ERROR [stderr] (MSC service thread 1-4) at io.smallrye.config.SmallRyeConfig.getValue(SmallRyeConfig.java:84) 13:41:48,984 ERROR [stderr] (MSC service thread 1-4) at io.smallrye.config.SmallRyeConfig.getOptionalValue(SmallRyeConfig.java:106) 13:41:48,984 ERROR [stderr] (MSC service thread 1-4) at io.smallrye.faulttolerance.config.FaultToleranceOperation.getConfigStatus(FaultToleranceOperation.java:250) 13:41:48,984 ERROR [stderr] (MSC service thread 1-4) at io.smallrye.faulttolerance.config.FaultToleranceOperation.getConfig(FaultToleranceOperation.java:209) 13:41:48,984 ERROR [stderr] (MSC service thread 1-4) at io.smallrye.faulttolerance.config.FaultToleranceOperation.of(FaultToleranceOperation.java:51) 13:41:48,984 ERROR [stderr] (MSC service thread 1-4) at io.smallrye.faulttolerance.HystrixExtension.collectFaultToleranceOperations(HystrixExtension.java:112) 13:41:48,984 ERROR [stderr] (MSC service thread 1-4) at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source) 13:41:48,984 ERROR [stderr] (MSC service thread 1-4) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 13:41:48,984 ERROR [stderr] (MSC service thread 1-4) at java.lang.reflect.Method.invoke(Method.java:498) 13:41:48,984 ERROR [stderr] (MSC service thread 1-4) at org.jboss.weld.injection.StaticMethodInjectionPoint.invoke(StaticMethodInjectionPoint.java:95) 13:41:48,984 ERROR [stderr] (MSC service thread 1-4) at org.jboss.weld.injection.StaticMethodInjectionPoint.invoke(StaticMethodInjectionPoint.java:85) 13:41:48,984 ERROR [stderr] (MSC service thread 1-4) at org.jboss.weld.injection.MethodInvocationStrategy$SimpleMethodInvocationStrategy.invoke(MethodInvocationStrategy.java:168) 13:41:48,984 ERROR [stderr] (MSC service thread 1-4) at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:330) 13:41:48,984 ERROR [stderr] (MSC service thread 1-4) at org.jboss.weld.event.ExtensionObserverMethodImpl.sendEvent(ExtensionObserverMethodImpl.java:123) 13:41:48,984 ERROR [stderr] (MSC service thread 1-4) at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:308) 13:41:48,984 ERROR [stderr] (MSC service thread 1-4) at org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:286) 13:41:48,985 ERROR [stderr] (MSC service thread 1-4) at javax.enterprise.inject.spi.ObserverMethod.notify(ObserverMethod.java:124) 13:41:48,985 ERROR [stderr] (MSC service thread 1-4) at org.jboss.weld.util.Observers.notify(Observers.java:166) 13:41:48,985 ERROR [stderr] (MSC service thread 1-4) at org.jboss.weld.event.ObserverNotifier.notifySyncObservers(ObserverNotifier.java:285) 13:41:48,985 ERROR [stderr] (MSC service thread 1-4) at org.jboss.weld.event.ObserverNotifier.notify(ObserverNotifier.java:273) 13:41:48,985 ERROR [stderr] (MSC service thread 1-4) at org.jboss.weld.event.ObserverNotifier.fireEvent(ObserverNotifier.java:177) 13:41:48,985 ERROR [stderr] (MSC service thread 1-4) at org.jboss.weld.event.ObserverNotifier.fireEvent(ObserverNotifier.java:171) 13:41:48,985 ERROR [stderr] (MSC service thread 1-4) at org.jboss.weld.bootstrap.events.AbstractContainerEvent.fire(AbstractContainerEvent.java:53) 13:41:48,985 ERROR [stderr] (MSC service thread 1-4) at org.jboss.weld.bootstrap.events.AbstractDefinitionContainerEvent.fire(AbstractDefinitionContainerEvent.java:44) 13:41:48,985 ERROR [stderr] (MSC service thread 1-4) at org.jboss.weld.bootstrap.events.ProcessManagedBeanImpl.fire(ProcessManagedBeanImpl.java:31) 13:41:48,985 ERROR [stderr] (MSC service thread 1-4) at org.jboss.weld.bootstrap.events.ContainerLifecycleEvents.fireProcessBean(ContainerLifecycleEvents.java:246) 13:41:48,985 ERROR [stderr] (MSC service thread 1-4) at org.jboss.weld.bootstrap.events.ContainerLifecycleEvents.fireProcessBean(ContainerLifecycleEvents.java:240) 13:41:48,985 ERROR [stderr] (MSC service thread 1-4) at org.jboss.weld.bootstrap.AbstractBeanDeployer.fireProcessBeanEvents(AbstractBeanDeployer.java:128) 13:41:48,985 ERROR [stderr] (MSC service thread 1-4) at org.jboss.weld.bootstrap.BeanDeployer.deploy(BeanDeployer.java:331) 13:41:48,985 ERROR [stderr] (MSC service thread 1-4) at org.jboss.weld.bootstrap.BeanDeployment.deployBeans(BeanDeployment.java:264) 13:41:48,985 ERROR [stderr] (MSC service thread 1-4) at org.jboss.weld.bootstrap.WeldStartup.deployBeans(WeldStartup.java:453) 13:41:48,985 ERROR [stderr] (MSC service thread 1-4) at org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:86) 13:41:48,985 ERROR [stderr] (MSC service thread 1-4) at org.jboss.as.weld.WeldStartService.start(WeldStartService.java:97) 13:41:48,985 ERROR [stderr] (MSC service thread 1-4) at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1739) 13:41:48,985 ERROR [stderr] (MSC service thread 1-4) at org.jboss.msc.service.ServiceControllerImpl$StartTask.execute(ServiceControllerImpl.java:1701) 13:41:48,985 ERROR [stderr] (MSC service thread 1-4) at org.jboss.msc.service.ServiceControllerImpl$ControllerTask.run(ServiceControllerImpl.java:1559) 13:41:48,985 ERROR [stderr] (MSC service thread 1-4) at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35) 13:41:48,985 ERROR [stderr] (MSC service thread 1-4) at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982) 13:41:48,985 ERROR [stderr] (MSC service thread 1-4) at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486) 13:41:48,985 ERROR [stderr] (MSC service thread 1-4) at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377) 13:41:48,985 ERROR [stderr] (MSC service thread 1-4) at java.lang.Thread.run(Thread.java:748)
This happens when a deployment is deployed. There is no issue with ConfigSource class as it reads the file correctly on the first time.