[jboss-jira] [JBoss JIRA] (WFWIP-279) FaultTolerance subsystem gets MP Config properties values too many times

Ivan Straka (Jira) issues at jboss.org
Fri Dec 6 07:34:00 EST 2019


    [ https://issues.redhat.com/browse/WFWIP-279?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13822103#comment-13822103 ] 

Ivan Straka commented on WFWIP-279:
-----------------------------------

I have played a bit with it and I still run into the issue. I have hit it solely on https://jenkins.hosts.mwqe.eng.bos.redhat.com/hudson/job/istraka-mp-metrics-ft/4/console. A limit to open files on my system is 1024 and I easily hit the issue. My terminal is floated with the exception. I can not hit the issue on Jenkins because the limit is much higher:

{code:java}
[istraka-mp-metrics-ft] $ bash -xe /tmp/hudson5563650662992666495.sh
+ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) 8388608
pending signals                 (-i) 31189
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 640000
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 16384
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
{code}

However I have added prints to the ConfigSource class that provides MP Config properties. see repeated lines:

{code:java}
12:30:09,290 INFO  [stdout] (MSC service thread 1-3) ==================> About to read properties from the disk...
12:30:09,290 INFO  [stdout] (MSC service thread 1-3) ==================> Success!
12:30:09,290 INFO  [stdout] (MSC service thread 1-3) ==================> About to read properties from the disk...
12:30:09,290 INFO  [stdout] (MSC service thread 1-3) ==================> Success!
12:30:09,290 INFO  [stdout] (MSC service thread 1-3) ==================> About to read properties from the disk...
12:30:09,290 INFO  [stdout] (MSC service thread 1-3) ==================> Success!
12:30:09,290 INFO  [stdout] (MSC service thread 1-3) ==================> About to read properties from the disk...
12:30:09,290 INFO  [stdout] (MSC service thread 1-3) ==================> Success!
{code}

Here is the run: https://jenkins.hosts.mwqe.eng.bos.redhat.com/hudson/job/istraka-mp-metrics-ft/4/console



> FaultTolerance subsystem gets MP Config properties values too many times
> ------------------------------------------------------------------------
>
>                 Key: WFWIP-279
>                 URL: https://issues.redhat.com/browse/WFWIP-279
>             Project: WildFly WIP
>          Issue Type: Bug
>          Components: MP Config
>            Reporter: Ivan Straka
>            Assignee: Jeff Mesnil
>            Priority: Blocker
>
> 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: 
> {code:java}
> 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)
> {code}
> This happens when a deployment is deployed. There is no issue with ConfigSource class as it reads the file correctly on the first time.
>  



--
This message was sent by Atlassian Jira
(v7.13.8#713008)


More information about the jboss-jira mailing list