[infinispan-issues] [JBoss JIRA] (ISPN-11854) Infinispan local cache error: Unable to invoke method public void org.infinispan.globalstate.impl.GlobalConfigurationManagerImpl.start()

Marnee DeRider (Jira) issues at jboss.org
Mon May 18 20:56:05 EDT 2020


     [ https://issues.redhat.com/browse/ISPN-11854?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Marnee DeRider updated ISPN-11854:
----------------------------------
    Description: 
*Summary:*
I have upgraded a Spring boot service to Infinispan 9.4.16.Final from 5.2.20.Final. The service had two XML files. Both have local-cache entries and no other types of caches. I used the conversion script to convert them. 

One was left with an empty transport element by the conversion tool. That transport element seems to have been the cause of errors preventing the service from running. I believe the defect is that the config-converter tool added empty `transport` element.

*Details: *


When we deploy and run the service, we see this warning at startup:

org.infinispan.manager.EmbeddedCacheManagerStartupException: org.infinispan.commons.CacheException: Unable to invoke method public void org.infinispan.globalstate.impl.GlobalConfigurationManagerImpl.start() on object of type GlobalConfigurationManagerImpl

The above is the first warning/error we see. There is no stack trace. It shouldn't be calling GlobalConfigurationManagerImpl when we're only using local cache.

A few lines later in the log, then I see many The cache has been stopped and invocations are not allowed! errors. The last error we see is as follows. The service fails to start up successfully.

Caused by: org.infinispan.commons.CacheException: Initial state transfer timed out for cache org.infinispan.CONFIG on <server_name>

Interestingly, we started seeing log messages containing "JGroup" after the upgrade. Since we're using local cache, we don't expect to see that. (Example: "Unable to use any JGroups configuration mechanisms provided in properties {}. Using default JGroups configuration!")

The culprit was I believe the empty <transport /> element as shown below. This is one of our two XML config files:


{code:java}
<infinispan
   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation = "urn:infinispan:config:9.4 http://www.infinispan.org/schemas/infinispan-config-9.4.xsd"
   xmlns = "urn:infinispan:config:9.4">

    <threads/>
    <cache-container name = "TestCenterServiceCache">
<!-- The conversion tool added this empty "transport" element. It was not present in our old config file -->
        <transport/>
        <jmx domain = "org.infinispan.TestCenterServiceCache"/>
        <local-cache name = "authorizedLocations">
            <expiration lifespan = "3600000"/>
        </local-cache>

        <!--caching for 24 hours: 3,600,000 milliseconds/hr x 24 hours -->
        <local-cache name = "proximitySearchConfiguration">
            <expiration lifespan = "86400000"/>
        </local-cache>
    </cache-container>
</infinispan>
{code}


Once I removed the empty <transport />, then the warnings, errors, and references to JGroup went away.

The original XML was:

{code:java}

<?xml version="1.0" encoding="UTF-8"?>
<infinispan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="urn:infinispan:config:5.1 http://www.infinispan.org/schemas/infinispan-config-5.1.xsd"
	xmlns="urn:infinispan:config:5.1">

	<global>
		<globalJmxStatistics
			cacheManagerName="TestCenterServiceCache"
			jmxDomain="org.infinispan.TestCenterServiceCache"/>
	</global>

	<!--caching for 1 hour: 3600000 milli secs-->
	<namedCache name="authorizedLocations">
		<expiration lifespan="3600000"/>
	</namedCache>

	<!--caching for 24 hours: 3,600,000 milliseconds/hr x 24 hours -->
	<namedCache name="proximitySearchConfiguration">
		<expiration lifespan="86400000"/>
	</namedCache>

</infinispan>
{code}



In order to convert it, I updated the schema to:


{code:java}
<infinispan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:infinispan:config:6.0 http://www.infinispan.org/schemas/infinispan-config-6.0.xsd"
xmlns="urn:infinispan:config:6.0">
{code}


before converting.

Note: When I removed the `global` element from the above before converting, then the empty `<transport />` element was not added.

Finally, as proof that the transport element was the culprit, the MBeans showed that under org.infinispan.TestCenterServiceCache -> Cache there was:


{code:java}
"org.infinispan.CONFIG(repl_sync)"
{code}


Without `<transport />`, there was:


{code:java}
"org.infinispan.CONFIG(local)"
{code}




  was:
*Summary: *
I have upgraded a Spring boot service to Infinispan 9.4.16.Final from 5.2.20.Final. The service had two XML files. Both have local-cache entries and no other types of caches. I used the conversion script to convert them. 

One was left with an empty transport element by the conversion tool. That transport element seems to have been the cause of errors preventing the service from running. I believe the defect is that the config-converter tool added empty `transport` element.

*Details: *


When we deploy and run the service, we see this warning at startup:

org.infinispan.manager.EmbeddedCacheManagerStartupException: org.infinispan.commons.CacheException: Unable to invoke method public void org.infinispan.globalstate.impl.GlobalConfigurationManagerImpl.start() on object of type GlobalConfigurationManagerImpl

The above is the first warning/error we see. There is no stack trace. It shouldn't be calling GlobalConfigurationManagerImpl when we're only using local cache.

A few lines later in the log, then I see many The cache has been stopped and invocations are not allowed! errors. The last error we see is as follows. The service fails to start up successfully.

Caused by: org.infinispan.commons.CacheException: Initial state transfer timed out for cache org.infinispan.CONFIG on <server_name>

~~More Info~~~

Interestingly, we started seeing log messages containing "JGroup" after the upgrade. Since we're using local cache, we don't expect to see that. (Example: "Unable to use any JGroups configuration mechanisms provided in properties {}. Using default JGroups configuration!")

The culprit was I believe the empty <transport /> element as shown below. This is one of our two XML config files:


{code:java}
<infinispan
   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation = "urn:infinispan:config:9.4 http://www.infinispan.org/schemas/infinispan-config-9.4.xsd"
   xmlns = "urn:infinispan:config:9.4">

    <threads/>
    <cache-container name = "TestCenterServiceCache">
<!-- The conversion tool added this empty "transport" element. It was not present in our old config file -->
        <transport/>
        <jmx domain = "org.infinispan.TestCenterServiceCache"/>
        <local-cache name = "authorizedLocations">
            <expiration lifespan = "3600000"/>
        </local-cache>

        <!--caching for 24 hours: 3,600,000 milliseconds/hr x 24 hours -->
        <local-cache name = "proximitySearchConfiguration">
            <expiration lifespan = "86400000"/>
        </local-cache>
    </cache-container>
</infinispan>
{code}


Once I removed the empty <transport />, then the warnings, errors, and references to JGroup went away.

The original XML was:

{code:java}

<?xml version="1.0" encoding="UTF-8"?>
<infinispan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="urn:infinispan:config:5.1 http://www.infinispan.org/schemas/infinispan-config-5.1.xsd"
	xmlns="urn:infinispan:config:5.1">

	<global>
		<globalJmxStatistics
			cacheManagerName="TestCenterServiceCache"
			jmxDomain="org.infinispan.TestCenterServiceCache"/>
	</global>

	<!--caching for 1 hour: 3600000 milli secs-->
	<namedCache name="authorizedLocations">
		<expiration lifespan="3600000"/>
	</namedCache>

	<!--caching for 24 hours: 3,600,000 milliseconds/hr x 24 hours -->
	<namedCache name="proximitySearchConfiguration">
		<expiration lifespan="86400000"/>
	</namedCache>

</infinispan>
{code}



In order to convert it, I updated the schema to:


{code:java}
<infinispan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:infinispan:config:6.0 http://www.infinispan.org/schemas/infinispan-config-6.0.xsd"
xmlns="urn:infinispan:config:6.0">
{code}


before converting.

Note: When I removed the `global` element from the above before converting, then the empty `<transport />` element was not added.

Finally, as proof that the transport element was the culprit, the MBeans showed that under org.infinispan.TestCenterServiceCache -> Cache there was:


{code:java}
"org.infinispan.CONFIG(repl_sync)"
{code}


Without `<transport />`, there was:


{code:java}
"org.infinispan.CONFIG(local)"
{code}






> Infinispan local cache error: Unable to invoke method public void org.infinispan.globalstate.impl.GlobalConfigurationManagerImpl.start()
> ----------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: ISPN-11854
>                 URL: https://issues.redhat.com/browse/ISPN-11854
>             Project: Infinispan
>          Issue Type: Bug
>    Affects Versions: 9.4.16.Final
>            Reporter: Marnee DeRider
>            Priority: Major
>              Labels: config-converter, local-scope-mode
>
> *Summary:*
> I have upgraded a Spring boot service to Infinispan 9.4.16.Final from 5.2.20.Final. The service had two XML files. Both have local-cache entries and no other types of caches. I used the conversion script to convert them. 
> One was left with an empty transport element by the conversion tool. That transport element seems to have been the cause of errors preventing the service from running. I believe the defect is that the config-converter tool added empty `transport` element.
> *Details: *
> When we deploy and run the service, we see this warning at startup:
> org.infinispan.manager.EmbeddedCacheManagerStartupException: org.infinispan.commons.CacheException: Unable to invoke method public void org.infinispan.globalstate.impl.GlobalConfigurationManagerImpl.start() on object of type GlobalConfigurationManagerImpl
> The above is the first warning/error we see. There is no stack trace. It shouldn't be calling GlobalConfigurationManagerImpl when we're only using local cache.
> A few lines later in the log, then I see many The cache has been stopped and invocations are not allowed! errors. The last error we see is as follows. The service fails to start up successfully.
> Caused by: org.infinispan.commons.CacheException: Initial state transfer timed out for cache org.infinispan.CONFIG on <server_name>
> Interestingly, we started seeing log messages containing "JGroup" after the upgrade. Since we're using local cache, we don't expect to see that. (Example: "Unable to use any JGroups configuration mechanisms provided in properties {}. Using default JGroups configuration!")
> The culprit was I believe the empty <transport /> element as shown below. This is one of our two XML config files:
> {code:java}
> <infinispan
>    xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
>    xsi:schemaLocation = "urn:infinispan:config:9.4 http://www.infinispan.org/schemas/infinispan-config-9.4.xsd"
>    xmlns = "urn:infinispan:config:9.4">
>     <threads/>
>     <cache-container name = "TestCenterServiceCache">
> <!-- The conversion tool added this empty "transport" element. It was not present in our old config file -->
>         <transport/>
>         <jmx domain = "org.infinispan.TestCenterServiceCache"/>
>         <local-cache name = "authorizedLocations">
>             <expiration lifespan = "3600000"/>
>         </local-cache>
>         <!--caching for 24 hours: 3,600,000 milliseconds/hr x 24 hours -->
>         <local-cache name = "proximitySearchConfiguration">
>             <expiration lifespan = "86400000"/>
>         </local-cache>
>     </cache-container>
> </infinispan>
> {code}
> Once I removed the empty <transport />, then the warnings, errors, and references to JGroup went away.
> The original XML was:
> {code:java}
> <?xml version="1.0" encoding="UTF-8"?>
> <infinispan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> 	xsi:schemaLocation="urn:infinispan:config:5.1 http://www.infinispan.org/schemas/infinispan-config-5.1.xsd"
> 	xmlns="urn:infinispan:config:5.1">
> 	<global>
> 		<globalJmxStatistics
> 			cacheManagerName="TestCenterServiceCache"
> 			jmxDomain="org.infinispan.TestCenterServiceCache"/>
> 	</global>
> 	<!--caching for 1 hour: 3600000 milli secs-->
> 	<namedCache name="authorizedLocations">
> 		<expiration lifespan="3600000"/>
> 	</namedCache>
> 	<!--caching for 24 hours: 3,600,000 milliseconds/hr x 24 hours -->
> 	<namedCache name="proximitySearchConfiguration">
> 		<expiration lifespan="86400000"/>
> 	</namedCache>
> </infinispan>
> {code}
> In order to convert it, I updated the schema to:
> {code:java}
> <infinispan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="urn:infinispan:config:6.0 http://www.infinispan.org/schemas/infinispan-config-6.0.xsd"
> xmlns="urn:infinispan:config:6.0">
> {code}
> before converting.
> Note: When I removed the `global` element from the above before converting, then the empty `<transport />` element was not added.
> Finally, as proof that the transport element was the culprit, the MBeans showed that under org.infinispan.TestCenterServiceCache -> Cache there was:
> {code:java}
> "org.infinispan.CONFIG(repl_sync)"
> {code}
> Without `<transport />`, there was:
> {code:java}
> "org.infinispan.CONFIG(local)"
> {code}



--
This message was sent by Atlassian Jira
(v7.13.8#713008)


More information about the infinispan-issues mailing list