Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1212731

Summary: wrong estimation of BufferFrontedFileStoreCache.maxMemoryBlocks
Product: [JBoss] JBoss Data Virtualization 6 Reporter: Hisanobu Okuda <hokuda>
Component: TeiidAssignee: Van Halbert <vhalbert>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.1.0CC: jdurani, vhalbert
Target Milestone: ER1Keywords: QA-Closed
Target Release: 6.2.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-02-10 08:57:29 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Hisanobu Okuda 2015-04-17 08:44:44 UTC
BufferFrontedFileStoreCache.maxMemoryBlocks is under-estimated. For example, when max-storage-object-size=8000000, maxMemoryBlocks
is 488 at the line #575 in org.teiid.common.buffer.impl.BufferFrontedFileStoreCache.initialize() (after that, it is decrimented some times, but it does not matter).

main[1] run

> 

Breakpoint hit: "thread=MSC service thread 1-3", org.teiid.common.buffer.impl.BufferFrontedFileStoreCache.initialize(), line=573 bci=163

573    		maxMemoryBlocks = Math.min(maxMemoryBlocks, maxStorageObjectSize>>LOG_BLOCK_SIZE + ((maxStorageObjectSize&BufferFrontedFileStoreCache.BLOCK_MASK)>0?1:0));

 

MSC service thread 1-3[1] next

> 

Step completed: "thread=MSC service thread 1-3", org.teiid.common.buffer.impl.BufferFrontedFileStoreCache.initialize(), line=575 bci=198

575    		cleaningThreshold = Math.min(maxMemoryBlocks<<4, blocks>>1);

 

MSC service thread 1-3[1] dump this

 this = {

    ...snip...

    maxStorageObjectSize: 8000000

    ...snip...

    maxMemoryBlocks: 488

An actual cache object size for maxMemoryBlocks: 488 is roughly:-

8192 * 488 = 3997696

It is less than half of maxStorageObjectSize. It sometimes causes TEIID30001.



Steps to reproduce:

1. set 8000000 to max-storage-object-size
2. attach a debugger to JDV and observe maxMemoryBlocks

Comment 2 JBoss JIRA Server 2015-04-17 11:52:46 UTC
Steven Hawkins <shawkins> updated the status of jira TEIID-3443 to Resolved

Comment 4 JBoss JIRA Server 2015-06-22 15:22:59 UTC
Steven Hawkins <shawkins> updated the status of jira TEIID-3443 to Closed