[JBoss JIRA] (DROOLS-2542) KieHelper.getKieContainer() is not thread-safe
by Mario Fusco (Jira)
[ https://issues.jboss.org/browse/DROOLS-2542?page=com.atlassian.jira.plugi... ]
Mario Fusco resolved DROOLS-2542.
---------------------------------
Resolution: Won't Fix
KieHelper is mainly an internal helper class, and it is not indented to be thread-safe
> KieHelper.getKieContainer() is not thread-safe
> ----------------------------------------------
>
> Key: DROOLS-2542
> URL: https://issues.jboss.org/browse/DROOLS-2542
> Project: Drools
> Issue Type: Bug
> Affects Versions: 7.7.0.Final
> Reporter: Nils Meyer
> Assignee: Mario Fusco
> Priority: Major
>
> Calling org.kie.api.KieServices.newKieContainer(ReleaseId, ClassLoader), in the way it is done in org.kie.internal.utils.KieHelper.getKieContainer() can cause problems in situations where concurrent threads are in action. newKieContainer reads the latest KieModule from the repository that was written by a builder. If multiple builders for different rules are running in parallel, it's not predictable, which rules will be used when creating a new session (see my sample below).
> I'm aware that I can work around this issue by using ReleaseIds, but nevertheless this behavior is cumbersome if you'd like to understand the relation between the KieFileSystem and the KieContainer in org.kie.internal.utils.KieHelper.getKieContainer()
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years, 8 months
[JBoss JIRA] (WFWIP-144) Add possibility to query subset of metrics - e.g. /metrics/vendor/subsystem/jca
by Jeff Mesnil (Jira)
[ https://issues.jboss.org/browse/WFWIP-144?page=com.atlassian.jira.plugin.... ]
Jeff Mesnil resolved WFWIP-144.
-------------------------------
Resolution: Won't Do
The MP metrics does not support drill down of metrics other than /metrics, /metrics/<scope>, and /metrics/<scope>/<metric name>.
Besides, we are considering changing the way WildFly metrics are represented and it is likely that the names of the metrics will change and will no longer looks like a path
> Add possibility to query subset of metrics - e.g. /metrics/vendor/subsystem/jca
> -------------------------------------------------------------------------------
>
> Key: WFWIP-144
> URL: https://issues.jboss.org/browse/WFWIP-144
> Project: WildFly WIP
> Issue Type: Enhancement
> Components: MP Metrics
> Reporter: Rostislav Svoboda
> Assignee: Jeff Mesnil
> Priority: Major
>
> Add possibility to query subset of metrics - e.g. /metrics/vendor/subsystem/jca
> Could be helpful for vendor / subsystem specific metrics
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years, 8 months
[JBoss JIRA] (WFWIP-151) HTTP Verb OPTIONS requires to have Accept header defined, response should provide some guidance about this
by Jeff Mesnil (Jira)
[ https://issues.jboss.org/browse/WFWIP-151?page=com.atlassian.jira.plugin.... ]
Jeff Mesnil resolved WFWIP-151.
-------------------------------
Resolution: Deferred
This type of enhancement should be done at the MP Metrics level (or at least in SmallRye implementation) which is where the HTTP endpoints are specified.
Once they are specified, we can then support them in WildFly.
> HTTP Verb OPTIONS requires to have Accept header defined, response should provide some guidance about this
> ----------------------------------------------------------------------------------------------------------
>
> Key: WFWIP-151
> URL: https://issues.jboss.org/browse/WFWIP-151
> Project: WildFly WIP
> Issue Type: Enhancement
> Components: MP Metrics
> Reporter: Rostislav Svoboda
> Assignee: Jeff Mesnil
> Priority: Major
>
> HTTP Verb OPTIONS requires to have Accept header defined
> {code}
> $ curl -X OPTIONS http://127.0.0.1:10090/metrics/vendor
> No exporter found for method OPTIONS and media type
> {code}
> I have to specify json mediatype
> {code}
> curl -X OPTIONS -H "Accept: application/json" http://127.0.0.1:10090/metrics/vendor
> {code}
> I was expecting that I get -the json response or at least more- helpful message.
> OpenLiberty returns
> {code}
> Error 406: CWMMC0000I: The accept header format */* is incorrect.
> {code}
> which at least points user to define proper header
> Update:
> Spec requires header to be defined, so WF could be a bit more helpful in the response message
> {code}
> The implementation must return a 406 response code if the request’s HTTP Accept header
> for an OPTIONS request does not match application/json.
> {code}
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years, 8 months
[JBoss JIRA] (WFWIP-152) Metrics endpoint should inform about supported request types, HTTP code change to be considered
by Jeff Mesnil (Jira)
[ https://issues.jboss.org/browse/WFWIP-152?page=com.atlassian.jira.plugin.... ]
Jeff Mesnil resolved WFWIP-152.
-------------------------------
Resolution: Deferred
This type of enhancement should be done at the MP Metrics level (or at least in SmallRye implementation) which is where the HTTP endpoints are specified.
Once they are specified, we can then support them in WildFly.
> Metrics endpoint should inform about supported request types, HTTP code change to be considered
> -----------------------------------------------------------------------------------------------
>
> Key: WFWIP-152
> URL: https://issues.jboss.org/browse/WFWIP-152
> Project: WildFly WIP
> Issue Type: Enhancement
> Components: MP Metrics
> Reporter: Rostislav Svoboda
> Assignee: Jeff Mesnil
> Priority: Minor
>
> Metrics endpoint could inform about supported request types, current response is
> {code}
> curl http://127.0.0.1:10090/metrics/vendor -X PUT
> No exporter found for method PUT and media type
> {code}
> OpenLiberty provide info which HTTP verbs are supported
> {code}
> curl https://localhost:9443/metrics/ --insecure -u theUser:thePassword -X PUT
> Error 405: CWMMC0001I: The method request type must be GET or OPTIONS.
> {code}
> Side comment - We return {{< HTTP/1.1 406 Not Acceptable}}, OpenLiberty returns {{< HTTP/1.1 405 Method Not Allowed}} which feels more appropriate.
> Spec speaks only about 404 and 406.
> {code}
> • 404 if a directly-addressed item does not exist. This may be a non-existing sub-tree or non- existing object
> • 406 if the HTTP Accept Header in the request cannot be handled by the server.
> {code}
> But 406 only mentions Accept Header, not the HTTP verb.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years, 8 months
[JBoss JIRA] (DROOLS-2581) Java-level deadlock in Drools ProjectClassLoader
by Mario Fusco (Jira)
[ https://issues.jboss.org/browse/DROOLS-2581?page=com.atlassian.jira.plugi... ]
Mario Fusco resolved DROOLS-2581.
---------------------------------
Resolution: Done
> Java-level deadlock in Drools ProjectClassLoader
> ------------------------------------------------
>
> Key: DROOLS-2581
> URL: https://issues.jboss.org/browse/DROOLS-2581
> Project: Drools
> Issue Type: Bug
> Components: core engine
> Affects Versions: 7.5.0.Final
> Environment: * 7.5.0.Final-redhat-4 from RHDM 7.0
> Reporter: Kylin Soong
> Assignee: Mario Fusco
> Priority: Critical
> Attachments: t.dump
>
>
> After install the RHDM 7.0 and started it, it's not possible to restart or stop, Java-level deadlock cause this:
> {code}
> Found one Java-level deadlock:
> =============================
> "ForkJoinPool.commonPool-worker-1":
> waiting to lock monitor 0x000000000418a588 (object 0x00000006e56789b8, a org.drools.core.common.ProjectClassLoader),
> which is held by "EJB default - 1"
> "EJB default - 1":
> waiting to lock monitor 0x0000000007fd7bc8 (object 0x00000006e77d7a78, a org.drools.core.common.ProjectClassLoader$DefaultInternalTypesClassLoader),
> which is held by "ForkJoinPool.commonPool-worker-1"
> Java stack information for the threads listed above:
> ===================================================
> "ForkJoinPool.commonPool-worker-1":
> at java.lang.ClassLoader.loadClass(ClassLoader.java:404)
> - waiting to lock <0x00000006e56789b8> (a org.drools.core.common.ProjectClassLoader)
> at org.drools.core.common.ProjectClassLoader.internalLoadClass(ProjectClassLoader.java:167)
> at org.drools.core.common.ProjectClassLoader$DefaultInternalTypesClassLoader.loadClass(ProjectClassLoader.java:423)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
> at java.lang.Class.getDeclaredFields0(Native Method)
> at java.lang.Class.privateGetDeclaredFields(Class.java:2583)
> at java.lang.Class.getDeclaredFields(Class.java:1916)
> at org.drools.compiler.builder.impl.TypeDeclarationCache.processFieldsPosition(TypeDeclarationCache.java:206)
> at org.drools.compiler.builder.impl.TypeDeclarationCache.initTypeDeclaration(TypeDeclarationCache.java:151)
> at org.drools.compiler.builder.impl.TypeDeclarationCache.getAndRegisterTypeDeclaration(TypeDeclarationCache.java:91)
> at org.drools.compiler.builder.impl.TypeDeclarationBuilder.getAndRegisterTypeDeclaration(TypeDeclarationBuilder.java:69)
> at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.getAndRegisterTypeDeclaration(KnowledgeBuilderImpl.java:1860)
> at org.drools.compiler.rule.builder.PatternBuilder.processClassObjectType(PatternBuilder.java:306)
> at org.drools.compiler.rule.builder.PatternBuilder.build(PatternBuilder.java:181)
> at org.drools.compiler.rule.builder.PatternBuilder.build(PatternBuilder.java:151)
> at org.drools.compiler.rule.builder.PatternBuilder.build(PatternBuilder.java:133)
> at org.drools.compiler.rule.builder.GroupElementBuilder.build(GroupElementBuilder.java:66)
> at org.drools.compiler.rule.builder.RuleBuilder.build(RuleBuilder.java:105)
> at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.addRule(KnowledgeBuilderImpl.java:1281)
> at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.lambda$compileRulesLevel$3(KnowledgeBuilderImpl.java:1242)
> at org.drools.compiler.builder.impl.KnowledgeBuilderImpl$$Lambda$1035/1743914198.accept(Unknown Source)
> at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
> at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
> at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
> at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
> at java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291)
> at java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731)
> at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
> at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
> at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
> at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
> "EJB default - 1":
> at java.lang.ClassLoader.loadClass(ClassLoader.java:404)
> - waiting to lock <0x00000006e77d7a78> (a org.drools.core.common.ProjectClassLoader$DefaultInternalTypesClassLoader)
> at org.drools.core.common.ProjectClassLoader$DefaultInternalTypesClassLoader.loadType(ProjectClassLoader.java:431)
> at org.drools.core.common.ProjectClassLoader.loadType(ProjectClassLoader.java:177)
> at org.drools.core.common.ProjectClassLoader.loadClass(ProjectClassLoader.java:149)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:348)
> at org.mvel2.util.ParseTools.forNameWithInner(ParseTools.java:2178)
> at org.mvel2.ParserConfiguration.checkForDynamicImport(ParserConfiguration.java:154)
> at org.mvel2.ParserConfiguration.hasImport(ParserConfiguration.java:175)
> at org.mvel2.ParserContext.hasImport(ParserContext.java:386)
> at org.mvel2.compiler.PropertyVerifier.getBeanProperty(PropertyVerifier.java:175)
> at org.mvel2.compiler.PropertyVerifier.analyze(PropertyVerifier.java:132)
> at org.mvel2.compiler.ExpressionCompiler.verify(ExpressionCompiler.java:392)
> at org.mvel2.compiler.ExpressionCompiler._compile(ExpressionCompiler.java:281)
> at org.mvel2.util.ParseTools.subCompileExpression(ParseTools.java:2064)
> at org.mvel2.ast.Negation.<init>(Negation.java:40)
> at org.mvel2.compiler.AbstractParser.nextToken(AbstractParser.java:1233)
> at org.mvel2.compiler.ExpressionCompiler._compile(ExpressionCompiler.java:126)
> at org.mvel2.compiler.ExpressionCompiler.compile(ExpressionCompiler.java:67)
> at org.mvel2.MVEL.analyze(MVEL.java:680)
> at org.mvel2.MVEL.analyze(MVEL.java:685)
> at org.drools.compiler.rule.builder.dialect.mvel.MVELExprAnalyzer.analyzeExpression(MVELExprAnalyzer.java:130)
> at org.drools.compiler.rule.builder.dialect.mvel.MVELDialect.analyzeExpression(MVELDialect.java:509)
> at org.drools.compiler.rule.builder.dialect.mvel.MVELDialect.analyzeExpression(MVELDialect.java:491)
> at org.drools.compiler.rule.builder.PatternBuilder.buildAnalysis(PatternBuilder.java:1602)
> at org.drools.compiler.rule.builder.PatternBuilder.buildEval(PatternBuilder.java:1497)
> at org.drools.compiler.rule.builder.PatternBuilder.createAndBuildPredicate(PatternBuilder.java:1339)
> at org.drools.compiler.rule.builder.PatternBuilder.buildExpression(PatternBuilder.java:974)
> at org.drools.compiler.rule.builder.PatternBuilder.buildCcdDescr(PatternBuilder.java:946)
> at org.drools.compiler.rule.builder.PatternBuilder.build(PatternBuilder.java:767)
> at org.drools.compiler.rule.builder.PatternBuilder.processConstraintsAndBinds(PatternBuilder.java:627)
> at org.drools.compiler.rule.builder.PatternBuilder.build(PatternBuilder.java:184)
> at org.drools.compiler.rule.builder.PatternBuilder.build(PatternBuilder.java:151)
> at org.drools.compiler.rule.builder.PatternBuilder.build(PatternBuilder.java:133)
> at org.drools.compiler.rule.builder.GroupElementBuilder.build(GroupElementBuilder.java:66)
> at org.drools.compiler.rule.builder.RuleBuilder.build(RuleBuilder.java:105)
> at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.addRule(KnowledgeBuilderImpl.java:1281)
> at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.lambda$compileRulesLevel$3(KnowledgeBuilderImpl.java:1242)
> at org.drools.compiler.builder.impl.KnowledgeBuilderImpl$$Lambda$1035/1743914198.accept(Unknown Source)
> at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
> at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
> at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
> at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
> at java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291)
> at java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731)
> at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
> at java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:401)
> at java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:734)
> at java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160)
> at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174)
> at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
> at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
> at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.compileRulesLevel(KnowledgeBuilderImpl.java:1238)
> at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.compileRules(KnowledgeBuilderImpl.java:1218)
> at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.compileKnowledgePackages(KnowledgeBuilderImpl.java:1056)
> at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.buildRules(KnowledgeBuilderImpl.java:2630)
> at org.drools.compiler.builder.impl.KnowledgeBuilderImpl.buildPackages(KnowledgeBuilderImpl.java:2565)
> at org.drools.compiler.builder.impl.CompositeKnowledgeBuilderImpl.buildPackages(CompositeKnowledgeBuilderImpl.java:109)
> at org.drools.compiler.builder.impl.CompositeKnowledgeBuilderImpl.build(CompositeKnowledgeBuilderImpl.java:99)
> at org.drools.compiler.kie.builder.impl.AbstractKieProject.buildKnowledgePackages(AbstractKieProject.java:238)
> at org.drools.compiler.kie.builder.impl.AbstractKieProject.verify(AbstractKieProject.java:65)
> at org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildKieProject(KieBuilderImpl.java:356)
> at org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildKieModule(KieBuilderImpl.java:348)
> at org.kie.scanner.KieRepositoryScannerImpl.build(KieRepositoryScannerImpl.java:248)
> at org.kie.scanner.KieRepositoryScannerImpl.buildArtifact(KieRepositoryScannerImpl.java:198)
> at org.kie.scanner.KieRepositoryScannerImpl.loadArtifact(KieRepositoryScannerImpl.java:154)
> at org.kie.scanner.KieRepositoryScannerImpl.loadArtifact(KieRepositoryScannerImpl.java:149)
> - locked <0x00000006e6e94d50> (a org.kie.scanner.KieRepositoryScannerImpl)
> at org.drools.compiler.kie.builder.impl.KieRepositoryImpl.loadKieModuleFromMavenRepo(KieRepositoryImpl.java:192)
> at org.drools.compiler.kie.builder.impl.KieRepositoryImpl.getKieModule(KieRepositoryImpl.java:138)
> at org.drools.compiler.kie.builder.impl.KieRepositoryImpl.getKieModule(KieRepositoryImpl.java:115)
> at org.drools.compiler.kie.builder.impl.KieServicesImpl.newKieContainer(KieServicesImpl.java:184)
> at org.drools.compiler.kie.builder.impl.KieServicesImpl.newKieContainer(KieServicesImpl.java:176)
> at org.kie.server.services.impl.KieServerImpl.createContainer(KieServerImpl.java:269)
> - locked <0x00000006e6d9c1a0> (a org.kie.server.services.impl.KieContainerInstanceImpl)
> at org.kie.server.services.impl.ContainerManager.installContainersSync(ContainerManager.java:43)
> at org.kie.server.services.impl.ContainerManager.installContainers(ContainerManager.java:33)
> at org.kie.server.jms.ContainerManagerEJB.installContainers(ContainerManagerEJB.java:38)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at org.jboss.as.ee.component.ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptor.java:52)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
> at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:509)
> at org.jboss.as.weld.interceptors.Jsr299BindingsInterceptor.doMethodInterception(Jsr299BindingsInterceptor.java:90)
> at org.jboss.as.weld.interceptors.Jsr299BindingsInterceptor.processInvocation(Jsr299BindingsInterceptor.java:101)
> at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
> at org.jboss.as.ejb3.component.invocationmetrics.ExecutionTimeInterceptor.processInvocation(ExecutionTimeInterceptor.java:43)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
> at org.jboss.as.ejb3.tx.EjbBMTInterceptor.handleInvocation(EjbBMTInterceptor.java:103)
> at org.jboss.as.ejb3.tx.BMTInterceptor.processInvocation(BMTInterceptor.java:58)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
> at org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
> at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:40)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
> at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:53)
> at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:52)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
> at org.jboss.as.ejb3.component.singleton.SingletonComponentInstanceAssociationInterceptor.processInvocation(SingletonComponentInstanceAssociationInterceptor.java:53)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
> at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:509)
> at org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:73)
> at org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(EjbRequestScopeActivationInterceptor.java:89)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
> at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
> at org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(WaitTimeInterceptor.java:47)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
> at org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:100)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
> at org.jboss.as.ejb3.deployment.processors.StartupAwaitInterceptor.processInvocation(StartupAwaitInterceptor.java:22)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
> at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:509)
> at org.jboss.as.ejb3.concurrency.ContainerManagedConcurrencyInterceptor.processInvocation(ContainerManagedConcurrencyInterceptor.java:110)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
> at org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:64)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
> at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:67)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
> at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
> at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:54)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
> at org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:60)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
> at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:438)
> at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:609)
> at org.jboss.invocation.AccessCheckingInterceptor.processInvocation(AccessCheckingInterceptor.java:57)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
> at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:53)
> at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:198)
> at org.jboss.as.ee.component.ViewDescription$1.processInvocation(ViewDescription.java:185)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
> at org.jboss.as.ejb3.component.interceptors.LogDiagnosticContextRecoveryInterceptor.processInvocation(LogDiagnosticContextRecoveryInterceptor.java:82)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
> at org.jboss.as.ejb3.component.interceptors.AsyncFutureInterceptorFactory$2$2.runInvocation(AsyncFutureInterceptorFactory.java:152)
> at org.jboss.as.ejb3.component.interceptors.AsyncInvocationTask.run(AsyncInvocationTask.java:81)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at java.lang.Thread.run(Thread.java:748)
> at org.jboss.threads.JBossThread.run(JBossThread.java:320)
> Found 1 deadlock.
> {code}
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years, 8 months
[JBoss JIRA] (WFWIP-152) Metrics endpoint should inform about supported request types, HTTP code change to be considered
by Jeff Mesnil (Jira)
[ https://issues.jboss.org/browse/WFWIP-152?page=com.atlassian.jira.plugin.... ]
Jeff Mesnil updated WFWIP-152:
------------------------------
Priority: Minor (was: Major)
> Metrics endpoint should inform about supported request types, HTTP code change to be considered
> -----------------------------------------------------------------------------------------------
>
> Key: WFWIP-152
> URL: https://issues.jboss.org/browse/WFWIP-152
> Project: WildFly WIP
> Issue Type: Enhancement
> Components: MP Metrics
> Reporter: Rostislav Svoboda
> Assignee: Jeff Mesnil
> Priority: Minor
>
> Metrics endpoint could inform about supported request types, current response is
> {code}
> curl http://127.0.0.1:10090/metrics/vendor -X PUT
> No exporter found for method PUT and media type
> {code}
> OpenLiberty provide info which HTTP verbs are supported
> {code}
> curl https://localhost:9443/metrics/ --insecure -u theUser:thePassword -X PUT
> Error 405: CWMMC0001I: The method request type must be GET or OPTIONS.
> {code}
> Side comment - We return {{< HTTP/1.1 406 Not Acceptable}}, OpenLiberty returns {{< HTTP/1.1 405 Method Not Allowed}} which feels more appropriate.
> Spec speaks only about 404 and 406.
> {code}
> • 404 if a directly-addressed item does not exist. This may be a non-existing sub-tree or non- existing object
> • 406 if the HTTP Accept Header in the request cannot be handled by the server.
> {code}
> But 406 only mentions Accept Header, not the HTTP verb.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years, 8 months
[JBoss JIRA] (DROOLS-2587) Java 8 and Drools 7.5.0
by Mario Fusco (Jira)
[ https://issues.jboss.org/browse/DROOLS-2587?page=com.atlassian.jira.plugi... ]
Mario Fusco resolved DROOLS-2587.
---------------------------------
Resolution: Cannot Reproduce
> Java 8 and Drools 7.5.0
> -----------------------
>
> Key: DROOLS-2587
> URL: https://issues.jboss.org/browse/DROOLS-2587
> Project: Drools
> Issue Type: Bug
> Components: decision tables
> Affects Versions: 7.5.0.Final
> Environment: Development
> Reporter: Gibran Castillo
> Assignee: Mario Fusco
> Priority: Major
> Labels: support
> Original Estimate: 1 day
> Remaining Estimate: 1 day
>
> I upgraded my Drools 5.x (drools-compiler 5.2.1.Final, drools-decisiontables 5.4.0.Final, and drools-templates 5.4.0.Final; jbpm-flow 5.1.1.Final, jbpm-bmpn2 5.1.1.Final and with their respective dependencies) Java 1.7.0_21 job to drools 7.5.0 and use kie-api/kie-ci and Java 1.8.0_162; I had to do some refactoring because now drools is part of the KIE (Knowledge Is Everything) umbrella, specifically the code below:
> KieServices ks = KieServices.Factory.get();
> KieContainer kc = ks.getKieClasspathContainer();
> KieSession ks = kc.newKieSession("ksession-dtables"); //stateful session
> FactHandle fh = ks.insert(fact);
> ks.fireAllRules();
> ....
> I added the pom.properties file and kmodule.xml file. The java job builds successfully. When I run the java job the packages and rules are loaded into the Knowledge Base but only the first rules fire up and then it stops or ends.
> This seems to be a bug in the decision table (spreadsheet), it works with Java 7/Drools 5 but not with Java 8/Drools 7
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years, 8 months
[JBoss JIRA] (DROOLS-2646) KieContainer#updateToVersion removing rules: logically inserted objects not removed correctly
by Mario Fusco (Jira)
[ https://issues.jboss.org/browse/DROOLS-2646?page=com.atlassian.jira.plugi... ]
Mario Fusco updated DROOLS-2646:
--------------------------------
Sprint: 2018 Week 48-50
> KieContainer#updateToVersion removing rules: logically inserted objects not removed correctly
> ---------------------------------------------------------------------------------------------
>
> Key: DROOLS-2646
> URL: https://issues.jboss.org/browse/DROOLS-2646
> Project: Drools
> Issue Type: Bug
> Components: core engine
> Affects Versions: 7.7.0.Final
> Reporter: Olga Rodionova
> Assignee: Mario Fusco
> Priority: Major
> Attachments: RuleRemovalABTest.java, SimpleRuleAB.drl
>
>
> Consider two rules which have one of the patterns in common, each of which logically inserts an object in the RHS. Build the KieModule from the KieFileSystem including these rules, create the KieContainer and the KieSession. Insert the facts. Everything works fine.
> Create a new KieModule excluding these rules from the KieFileSystem, update the KieContainer. Expect the logically inserted facts to be retracted, as the rules which trigged their creation is no longer present. Turns out that is true for the facts inserted by the first rule, but not for the second one: the facts remain in the working memory.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years, 8 months
[JBoss JIRA] (DROOLS-2646) KieContainer#updateToVersion removing rules: logically inserted objects not removed correctly
by Mario Fusco (Jira)
[ https://issues.jboss.org/browse/DROOLS-2646?page=com.atlassian.jira.plugi... ]
Mario Fusco commented on DROOLS-2646:
-------------------------------------
poker: 5
> KieContainer#updateToVersion removing rules: logically inserted objects not removed correctly
> ---------------------------------------------------------------------------------------------
>
> Key: DROOLS-2646
> URL: https://issues.jboss.org/browse/DROOLS-2646
> Project: Drools
> Issue Type: Bug
> Components: core engine
> Affects Versions: 7.7.0.Final
> Reporter: Olga Rodionova
> Assignee: Mario Fusco
> Priority: Major
> Attachments: RuleRemovalABTest.java, SimpleRuleAB.drl
>
>
> Consider two rules which have one of the patterns in common, each of which logically inserts an object in the RHS. Build the KieModule from the KieFileSystem including these rules, create the KieContainer and the KieSession. Insert the facts. Everything works fine.
> Create a new KieModule excluding these rules from the KieFileSystem, update the KieContainer. Expect the logically inserted facts to be retracted, as the rules which trigged their creation is no longer present. Turns out that is true for the facts inserted by the first rule, but not for the second one: the facts remain in the working memory.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years, 8 months
[JBoss JIRA] (DROOLS-2763) Heap Space Pile Up after some Time
by Mario Fusco (Jira)
[ https://issues.jboss.org/browse/DROOLS-2763?page=com.atlassian.jira.plugi... ]
Mario Fusco resolved DROOLS-2763.
---------------------------------
Resolution: Cannot Reproduce
> Heap Space Pile Up after some Time
> ----------------------------------
>
> Key: DROOLS-2763
> URL: https://issues.jboss.org/browse/DROOLS-2763
> Project: Drools
> Issue Type: Bug
> Components: decision tables
> Affects Versions: 6.1.0.Final
> Reporter: Bishnu Shankar Pandey
> Assignee: Mario Fusco
> Priority: Major
> Attachments: Rule Engine Heap ScreenShoot.png
>
>
> After running rule Engine for 2-3 hours with data every 2 milliseconds I am getting heap space Error. After doing heap dump analysis i found that org.drools.core.phreak.RightTupleEntry.{next} class is taking 3.84GB heap space. Space and class details are in the below screenshot.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years, 8 months