Bug 1060301

Summary: Unable to create a cache store that requires two or more store properties
Product: [JBoss] JBoss Data Grid 6 Reporter: Larry O'Leary <loleary>
Component: JON PluginAssignee: Tristan Tarrant <ttarrant>
Status: CLOSED UPSTREAM QA Contact: Martin Gencur <mgencur>
Severity: urgent Docs Contact:
Priority: unspecified    
Version: 6.2.0CC: jdg-bugs, ksuzumur, tsykora, wburns
Target Milestone: CR1   
Target Release: 6.2.1   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2025-02-10 03:35:01 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:
Bug Depends On: 1076047    
Bug Blocks:    
Attachments:
Description Flags
jon-server-side-error-more-props-during-cache-store-creation none

Description Larry O'Leary 2014-01-31 18:11:57 UTC
Description of problem:
When creating a cache store that contains multiples properties defined in the store's 'Properties' configuration element, the creation of the store fails. It appears the data type sent by the management plug-in does not match that of the required type expected by the management API.

This issue prevents a user from creating or modifying a cache store that contains additional properties. Therefore they are unable to use the "managed" part of their subscription in these cases.

Version-Release number of selected component (if applicable):
JDG Plugin Pack Update-01 for JBoss ON 3.2.0
   Infinispan Plugin 6.0.1.Final-redhat-2

How reproducible:
Always

Steps to Reproduce:
1.  Install and start JON 3.2 system.
2.  Install JDG Plugin Pack Update-01 for JBoss ON 3.2.0.
3.  Install and start JDG server using clustered.xml configuration
4.  Import JDG 6.2 server into inventory.
5.  Configure JDG connection settings.
6.  Create a new Infinispan Cache:

    From JDG (127.0.0.1:9990) / infinispan / Cache Containers / clustered -> Create Child > Cache
    *   *New Resource Name*: `MyCacheA`
    *   *Kind of cache*: *distributed-cache*
    *   *Start*: *LAZY*
    *   *Batching*: *No*
    *   *Indexing*: *NONE*
    *   *Mode*: *SYNC*

7.  Create a new Cache Store:

    From JDG (127.0.0.1:9990) / infinispan / Cache Containers / clustered / Cache / MyCacheA -> Create Child > Store
    *   *New Resource Name*: `MyCacheStoreA`
    *   *Kind of store*:    *Generic Store*
    *   *Class*:    `org.infinispan.loaders.leveldb.LevelDBCacheStore`
    *   *Properties*:
        *   `cacheSize` = `5`
        *   `location` = `leveldb/F2/data`
        *   `expiredLocation` = `leveldb/F2/expired`

Actual results:
Cache creation fails and child history report contains the following error:
    JBAS014688: Wrong type for properties. Expected [PROPERTY] but was OBJECT, rolled-back=true

Expected results:
Cache creation should be successful.

Additional info:
If you only add a single property name/value pair to the "properties" list the cache IS created successfully. The error only occurs when there are two or more properties.

Comment 1 Larry O'Leary 2014-01-31 18:13:04 UTC
This bug relates to bug 1060299 as they both appear to deal with incorrect configuration being sent to the management API by the JDG management plug-in.

Comment 4 Tomas Sykora 2014-02-17 10:55:08 UTC
No, this functionality was added in 6.2.

Comment 5 Tomas Sykora 2014-02-17 13:09:51 UTC
Created attachment 864079 [details]
jon-server-side-error-more-props-during-cache-store-creation

Comment 6 Tomas Sykora 2014-02-17 13:10:43 UTC
I confirm this is real issue. I can experience this unwanted behaviour with environment set up mentioned by customer.

Added an attachment with underlying error from JON server.log which might or might not be connected to this issue. 

An interesting thing is that error is thrown even in case of only ONE property is filled in 'Properties' list... a particular store is created successfully with this set-up.

Anyway, more properties in 'Properties' list cause problems.

CCing William to let him know about this issue as well.

Comment 7 Tomas Sykora 2014-03-14 13:11:26 UTC
This should be now ok -- in 6.2.1 CR1 we were able to successfully configure and create LevelDB cache store for a particular cache resource. There is a new possibility of cache child resource creation (directly LevelDB store).

Note that after a configuration, the JDG server needs to be restarted to make changes in standalone.xml file live and apply. 

Note2 that JDG need to be patched properly to use LevelDB JNI implementation.

We were able to store entries into the store, restart JDG server and fetch entries from the store, so we verified that data were actually really stored there.

Good news for this work flow (requirement).

Comment 8 Tomas Sykora 2014-03-31 12:05:41 UTC
6.2.1 CR3 update.

Now we are able to configure generic cache store via JON even with 2 or more set up properties.

Note that property CLASS is now fully required for generic store. For creation of LevelDB related stores, customers should be guide to use different operation: create child -> levelDB store.

Note that this needs to have properly patched JDG. (Fusesource libs, leveldb)

Setting this as VERIFIED. Thanks for the fix!

Comment 10 Red Hat Bugzilla 2025-02-10 03:35:01 UTC
This product has been discontinued or is no longer tracked in Red Hat Bugzilla.