Hi ,
We have noted another incident in our testing environment where we
have noted that there is a concurrency issue with the drools and mvel
version we are using where the threads are blocked for a long time
resulting the application node/JVM reach an unexpected state which
needed to be restarted.Could some one look into this if there is a known
defect on this and if it has been resolved in a later version?.
Thread[DSLFpmlDataRecordKeepingTradeViewCacheWorker:5,5,DSLFpmlDataRecordKeepingTradeViewCache]
java.util.WeakHashMap.get(WeakHashMap.java:470)
org.mvel2.util.ParseTools.getBestCandidate(ParseTools.java:246)
org.mvel2.util.ParseTools.getBestCandidate(ParseTools.java:224)
org.mvel2.compiler.PropertyVerifier.getMethod(PropertyVerifier.java:509)
org.mvel2.compiler.PropertyVerifier.analyze(PropertyVerifier.java:120)
org.mvel2.compiler.ExpressionCompiler.verify(ExpressionCompiler.java:381)
org.mvel2.compiler.ExpressionCompiler._compile(ExpressionCompiler.java:273)
org.mvel2.compiler.ExpressionCompiler.compile(ExpressionCompiler.java:62)
org.mvel2.MVEL.compileExpression(MVEL.java:810)
org.drools.base.mvel.MVELCompilationUnit.compile(MVELCompilationUnit.java:426)
org.drools.base.mvel.MVELCompilationUnit.getCompiledExpression(MVELCompilationUnit.java:243)
org.drools.base.dataproviders.MVELDataProvider.compile(MVELDataProvider.java:83)
org.drools.rule.MVELDialectRuntimeData.onBeforeExecute(MVELDialectRuntimeData.java:162)
org.drools.rule.DialectRuntimeRegistry.onBeforeExecute(DialectRuntimeRegistry.java:138)
org.drools.common.AbstractRuleBase.readExternal(AbstractRuleBase.java:295)
org.drools.reteoo.ReteooRuleBase.readExternal(ReteooRuleBase.java:223)
org.drools.impl.KnowledgeBaseImpl.readExternal(KnowledgeBaseImpl.java:116)
java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1835)
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1794)
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1348)
java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
Thread[DSLFpmlDataRecordKeepingCacheWorker:39,5,DSLFpmlDataRecordKeepingCache]
java.util.WeakHashMap.expungeStaleEntries(WeakHashMap.java:386)
java.util.WeakHashMap.getTable(WeakHashMap.java:417)
java.util.WeakHashMap.get(WeakHashMap.java:464)
org.mvel2.util.ParseTools.getBestCandidate(ParseTools.java:246)
org.mvel2.util.ParseTools.getBestCandidate(ParseTools.java:224)
org.mvel2.compiler.PropertyVerifier.getMethod(PropertyVerifier.java:509)
org.mvel2.compiler.PropertyVerifier.analyze(PropertyVerifier.java:120)
org.mvel2.compiler.ExpressionCompiler.verify(ExpressionCompiler.java:381)
org.mvel2.compiler.ExpressionCompiler._compile(ExpressionCompiler.java:273)
org.mvel2.compiler.ExpressionCompiler.compile(ExpressionCompiler.java:62)
org.mvel2.MVEL.compileExpression(MVEL.java:810)
org.drools.base.mvel.MVELCompilationUnit.compile(MVELCompilationUnit.java:426)
org.drools.base.mvel.MVELCompilationUnit.getCompiledExpression(MVELCompilationUnit.java:243)
org.drools.base.mvel.MVELPredicateExpression.compile(MVELPredicateExpression.java:69)
org.drools.rule.MVELDialectRuntimeData.onBeforeExecute(MVELDialectRuntimeData.java:162)
org.drools.rule.DialectRuntimeRegistry.onBeforeExecute(DialectRuntimeRegistry.java:138)
org.drools.common.AbstractRuleBase.readExternal(AbstractRuleBase.java:295)
org.drools.reteoo.ReteooRuleBase.readExternal(ReteooRuleBase.java:223)
org.drools.impl.KnowledgeBaseImpl.readExternal(KnowledgeBaseImpl.java:116)
java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1835)
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1794)
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1348)
java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
We have found a similar BUG in the drools defect database
https://issues.jboss.org/i#browse/DROOLS-81 but the scenarios are bit
different.
In our case it has happened when we deserialize the serilized
KnowledgeBaseImpl by multiple threads and it seems that the problem is
due to usage of a java.util.WeakHashMap as a class variable in
org.mvel2.util.ParseTools.getBestCandidate(ParseTools.java:246)
Thanks
&
Regards,
Adarsh
SENIOR LEAD DEVELOPMENT SPECIALIST
SCJP, SCWCD
FINANCE TECHNOLOGY
HSBC BANK PLC HBEU
8 Canada Square,Canary Wharf,
London,E14 5HQ,United Kingdom
------------------------------------------------------
Phone +44 207914720
Mobile 07595530105
Email. adarsh.chaini(a)hsbcib.com
________________________________
From:
Imran Shafiq <ishafiq(a)redhat.com>
To:
Adarsh CHAINI/IBEU/HSBC@HSBC
Date:
17/09/2013 18:55
Subject:
Drools Community Issue.
Hi Ardash,
I've seen details of the recent issue you have experienced with the
community Drools product; I was keen to contact you regarding this.
We have been a strategic and global supplier to HSBC for many years, and
have built our success largely on our ability to provide full enterprise
services and productised versions of community products, that are fit for
enterprise use.
In the case of community Drools, our productised version (JBoss BRMS)
provides a full testing, certification, commercial assurance eco-system,
and 24*7 SLA support service - which would appear to be ideally positioned
to help address issues such as that which you are currently experiencing.
Ardash, given the appetite of HSBC to mitigate the risk associated with
the use of community software alone, I would welcome the opportunity to
have a brief initial conversation with you concerning the above.
Might there be a suitable number for me to reach you in the coming days?
Kind regards
Imran
Imran Shafiq
Strategic & Global Accounts Team
Red Hat UK
Direct: +44 (0) 1252 362766
Mobile: +44 (0) 7506 765 287
ishafiq(a)redhat.com
www.europe.redhat.com
************************************************************
HSBC Bank plc may be solicited in the course of its placement efforts for
a new issue, by investment clients of the firm for whom the Bank as a firm
already provides other services. It may equally decide to allocate to its
own proprietary book or with an associate of HSBC Group. This represents a
potential conflict of interest. HSBC Bank plc has internal arrangements
designed to ensure that the firm would give unbiased and full advice to
the corporate finance client about the valuation and pricing of the
offering as well as internal systems, controls and procedures to identify
and manage conflicts of interest.
HSBC Bank plc
Registered Office: 8 Canada Square, London E14 5HQ, United Kingdom
Registered in England - Number 14259
Authorised by the Prudential Regulation Authority and regulated by the
Financial Conduct Authority and the Prudential Regulation Authority
************************************************************
-----------------------------------------
SAVE PAPER - THINK BEFORE YOU PRINT!
This transmission has been issued by a member of the HSBC Group
"HSBC" for the information of the addressee only and should not be
reproduced and/or distributed to any other person. Each page
attached hereto must be read in conjunction with any disclaimer
which forms part of it. Unless otherwise stated, this transmission
is neither an offer nor the solicitation of an offer to sell or
purchase any investment. Its contents are based on information
obtained from sources believed to be reliable but HSBC makes no
representation and accepts no responsibility or liability as to its
completeness or accuracy.