Return-Path: X-Original-To: apmail-chemistry-dev-archive@www.apache.org Delivered-To: apmail-chemistry-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id D7805C957 for ; Fri, 14 Nov 2014 12:07:39 +0000 (UTC) Received: (qmail 71336 invoked by uid 500); 14 Nov 2014 12:07:34 -0000 Delivered-To: apmail-chemistry-dev-archive@chemistry.apache.org Received: (qmail 71246 invoked by uid 500); 14 Nov 2014 12:07:34 -0000 Mailing-List: contact dev-help@chemistry.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@chemistry.apache.org Delivered-To: mailing list dev@chemistry.apache.org Received: (qmail 71177 invoked by uid 99); 14 Nov 2014 12:07:34 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 14 Nov 2014 12:07:34 +0000 Date: Fri, 14 Nov 2014 12:07:34 +0000 (UTC) From: "Yi Wang (JIRA)" To: dev@chemistry.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Created] (CMIS-868) OOM issue when run concurrent test on GetDescendant, GetTypeFlat, GetTypeTree. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 Yi Wang created CMIS-868: ---------------------------- Summary: OOM issue when run concurrent test on GetDescendant, GetTypeFlat, GetTypeTree. Key: CMIS-868 URL: https://issues.apache.org/jira/browse/CMIS-868 Project: Chemistry Issue Type: Bug Components: opencmis-client Affects Versions: OpenCMIS 0.12.0 Environment: AIX 7.1+Websphere ND 8.5.5.3 Java(TM) SE Runtime Environment (build pap6460_26sr2ifix-20120419_02(SR2+IV19661)) IBM J9 VM (build 2.6, JRE 1.6.0 AIX ppc64-64 20120322_106210 (JIT enabled, AOT enabled) J9VM - R26_Java626_SR2_20120322_1722_B106210 JIT - r11_20120322_22976 GC - R26_Java626_SR2_20120322_1722_B106210 J9CL - 20120322_106210) JCL - 20120316_01 Reporter: Yi Wang Priority: Critical When I run concurrent test with 100 threads on GetDescendants, GetTypeTree, GetTypeFlat function. I found there are many hashtable objects(>500MB) saved in heap after analyzed heap dump. I found there was one line(red line below) in convertTypeDefinition method that chemistry used typeDefinition object as the key of HashMap. However, JAVA does not think 2 typeDefinition objects are same objects although the value of typeDefinition members are same. I debug to this line, the "result" variable always was "null". It made the objectTypecache larger and larger when run concurrent test. private ObjectType convertTypeDefinition(TypeDefinition typeDefinition) { lock.writeLock().lock(); try { ObjectType result = null; if (objectTypeCache == null) { objectTypeCache = new IdentityHashMap(); } else { result = objectTypeCache.get(typeDefinition); } if (result == null) { result = objectFactory.convertTypeDefinition(typeDefinition); objectTypeCache.put(typeDefinition, result); } return result; } finally { lock.writeLock().unlock(); } } -- This message was sent by Atlassian JIRA (v6.3.4#6332)