[JBoss JIRA] (ISPN-9627) Removing a listener after cache manager stop throws an exception
by Dan Berindei (Jira)
[ https://issues.jboss.org/browse/ISPN-9627?page=com.atlassian.jira.plugin.... ]
Dan Berindei commented on ISPN-9627:
------------------------------------
[~pferraro] I created the issue, but the more I think about it, the more I'm convinced that listeners should be stopped **before** stopping the cache manager, or not at all.
If one thread stops the cache manager and another tries to remove a listener, the only way to avoid throwing a {{IllegalLifecycleStateException}} from {{removeListener()}} would be to actually catch {{IllegalLifecycleStateException}}, and that seems too much like a hack.
Allowing {{removeListener()}} after {{stop()}} might also give the user the impression that listeners are normally preserved across {{stop()}} and {{start()}}, which is not the case.
> Removing a listener after cache manager stop throws an exception
> ----------------------------------------------------------------
>
> Key: ISPN-9627
> URL: https://issues.jboss.org/browse/ISPN-9627
> Project: Infinispan
> Issue Type: Bug
> Components: Core
> Affects Versions: 9.4.0.Final
> Reporter: Dan Berindei
> Assignee: Dan Berindei
> Priority: Major
> Fix For: 9.4.1.Final
>
>
> {{DefaultCacheManager.removeListener()}} needs the {{CacheManagerNotifier}} component and fails if the component can't be accessed, e.g. because the manager is stopped. Since listeners are removed automatically on stop, a {{DefaultCacheManager.removeListener()}} call after stop should be a no-op.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years, 5 months
[JBoss JIRA] (ISPN-9627) Removing a listener after cache manager stop throws an exception
by Dan Berindei (Jira)
Dan Berindei created ISPN-9627:
----------------------------------
Summary: Removing a listener after cache manager stop throws an exception
Key: ISPN-9627
URL: https://issues.jboss.org/browse/ISPN-9627
Project: Infinispan
Issue Type: Bug
Components: Core
Affects Versions: 9.4.0.Final
Reporter: Dan Berindei
Assignee: Dan Berindei
Fix For: 9.4.1.Final
{{DefaultCacheManager.removeListener()}} needs the {{CacheManagerNotifier}} component and fails if the component can't be accessed, e.g. because the manager is stopped. Since listeners are removed automatically on stop, a {{DefaultCacheManager.removeListener()}} call after stop should be a no-op.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years, 5 months
[JBoss JIRA] (ISPN-9615) Move command perform logic into CallInterceptor directly
by William Burns (Jira)
[ https://issues.jboss.org/browse/ISPN-9615?page=com.atlassian.jira.plugin.... ]
William Burns updated ISPN-9615:
--------------------------------
Status: Open (was: New)
> Move command perform logic into CallInterceptor directly
> --------------------------------------------------------
>
> Key: ISPN-9615
> URL: https://issues.jboss.org/browse/ISPN-9615
> Project: Infinispan
> Issue Type: Sub-task
> Components: Core
> Reporter: William Burns
> Assignee: William Burns
> Priority: Major
>
> By having the command perform logic in the CallInterceptor, we can avoid additional allocations for every command as the dependencies are stored in the interceptor stack. This would include things such as CacheNotifier and others.
> This also provides us the ability to more easily utilize the async interceptor stack for the actual command invocations.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years, 5 months
[JBoss JIRA] (ISPN-9615) Move command perform logic into CallInterceptor directly
by William Burns (Jira)
[ https://issues.jboss.org/browse/ISPN-9615?page=com.atlassian.jira.plugin.... ]
Work on ISPN-9615 started by William Burns.
-------------------------------------------
> Move command perform logic into CallInterceptor directly
> --------------------------------------------------------
>
> Key: ISPN-9615
> URL: https://issues.jboss.org/browse/ISPN-9615
> Project: Infinispan
> Issue Type: Sub-task
> Components: Core
> Reporter: William Burns
> Assignee: William Burns
> Priority: Major
>
> By having the command perform logic in the CallInterceptor, we can avoid additional allocations for every command as the dependencies are stored in the interceptor stack. This would include things such as CacheNotifier and others.
> This also provides us the ability to more easily utilize the async interceptor stack for the actual command invocations.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years, 5 months
[JBoss JIRA] (ISPN-9626) RocksDB documentation is not compiling because of properties are configured wrong
by Diego Lovison (Jira)
[ https://issues.jboss.org/browse/ISPN-9626?page=com.atlassian.jira.plugin.... ]
Diego Lovison updated ISPN-9626:
--------------------------------
Status: Pull Request Sent (was: Open)
Git Pull Request: https://github.com/infinispan/infinispan/pull/6343
> RocksDB documentation is not compiling because of properties are configured wrong
> ---------------------------------------------------------------------------------
>
> Key: ISPN-9626
> URL: https://issues.jboss.org/browse/ISPN-9626
> Project: Infinispan
> Issue Type: Bug
> Reporter: Diego Lovison
> Priority: Minor
>
> {code:java}
> Properties props = new Properties();
> props.addProperty("database.max_background_compactions", "2");
> props.addProperty("data.write_buffer_size", "512MB");
> {code}
> should be
> {code:java}
> Properties props = new Properties();
> props.put("database.max_background_compactions", "2");
> props.put("data.write_buffer_size", "512MB");
> {code}
> -----
> {code:xml}
> <property name="database.max_background_compactions" value="2"/>
> <property name="data.write_buffer_size" value="512MB"/>
> {code}
> should be
> {code:xml}
> <property name="database.max_background_compactions">2</property>
> <property name="data.write_buffer_size">512MB</property>
> {code}
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years, 5 months
[JBoss JIRA] (ISPN-9626) RocksDB documentation is not compiling because of properties are configured wrong
by Diego Lovison (Jira)
[ https://issues.jboss.org/browse/ISPN-9626?page=com.atlassian.jira.plugin.... ]
Diego Lovison updated ISPN-9626:
--------------------------------
Summary: RocksDB documentation is not compiling because of properties are configured wrong (was: RocksDB documentation is not compiling because of property are configured wrong)
> RocksDB documentation is not compiling because of properties are configured wrong
> ---------------------------------------------------------------------------------
>
> Key: ISPN-9626
> URL: https://issues.jboss.org/browse/ISPN-9626
> Project: Infinispan
> Issue Type: Bug
> Reporter: Diego Lovison
> Priority: Minor
>
> {code:java}
> Properties props = new Properties();
> props.addProperty("database.max_background_compactions", "2");
> props.addProperty("data.write_buffer_size", "512MB");
> {code}
> should be
> {code:java}
> Properties props = new Properties();
> props.put("database.max_background_compactions", "2");
> props.put("data.write_buffer_size", "512MB");
> {code}
> -----
> {code:xml}
> <property name="database.max_background_compactions" value="2"/>
> <property name="data.write_buffer_size" value="512MB"/>
> {code}
> should be
> {code:xml}
> <property name="database.max_background_compactions">2</property>
> <property name="data.write_buffer_size">512MB</property>
> {code}
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years, 5 months
[JBoss JIRA] (ISPN-9626) RocksDB documentation is not compiling because of property are configured wrong
by Diego Lovison (Jira)
Diego Lovison created ISPN-9626:
-----------------------------------
Summary: RocksDB documentation is not compiling because of property are configured wrong
Key: ISPN-9626
URL: https://issues.jboss.org/browse/ISPN-9626
Project: Infinispan
Issue Type: Bug
Reporter: Diego Lovison
{code:java}
Properties props = new Properties();
props.addProperty("database.max_background_compactions", "2");
props.addProperty("data.write_buffer_size", "512MB");
{code}
should be
{code:java}
Properties props = new Properties();
props.put("database.max_background_compactions", "2");
props.put("data.write_buffer_size", "512MB");
{code}
-----
{code:xml}
<property name="database.max_background_compactions" value="2"/>
<property name="data.write_buffer_size" value="512MB"/>
{code}
should be
{code:xml}
<property name="database.max_background_compactions">2</property>
<property name="data.write_buffer_size">512MB</property>
{code}
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years, 5 months
[JBoss JIRA] (ISPN-9626) RocksDB documentation is not compiling because of property are configured wrong
by Diego Lovison (Jira)
[ https://issues.jboss.org/browse/ISPN-9626?page=com.atlassian.jira.plugin.... ]
Diego Lovison updated ISPN-9626:
--------------------------------
Status: Open (was: New)
> RocksDB documentation is not compiling because of property are configured wrong
> -------------------------------------------------------------------------------
>
> Key: ISPN-9626
> URL: https://issues.jboss.org/browse/ISPN-9626
> Project: Infinispan
> Issue Type: Bug
> Reporter: Diego Lovison
> Priority: Minor
>
> {code:java}
> Properties props = new Properties();
> props.addProperty("database.max_background_compactions", "2");
> props.addProperty("data.write_buffer_size", "512MB");
> {code}
> should be
> {code:java}
> Properties props = new Properties();
> props.put("database.max_background_compactions", "2");
> props.put("data.write_buffer_size", "512MB");
> {code}
> -----
> {code:xml}
> <property name="database.max_background_compactions" value="2"/>
> <property name="data.write_buffer_size" value="512MB"/>
> {code}
> should be
> {code:xml}
> <property name="database.max_background_compactions">2</property>
> <property name="data.write_buffer_size">512MB</property>
> {code}
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years, 5 months
[JBoss JIRA] (ISPN-9455) When underlying store becomes available, the queued modifications are not been written
by Ryan Emerson (Jira)
[ https://issues.jboss.org/browse/ISPN-9455?page=com.atlassian.jira.plugin.... ]
Ryan Emerson resolved ISPN-9455.
--------------------------------
Resolution: Explained
> When underlying store becomes available, the queued modifications are not been written
> --------------------------------------------------------------------------------------
>
> Key: ISPN-9455
> URL: https://issues.jboss.org/browse/ISPN-9455
> Project: Infinispan
> Issue Type: Bug
> Reporter: Diego Lovison
> Assignee: Ryan Emerson
> Priority: Critical
>
> In order to reproduce this issue, you will need to do the following.
> 1) Start a remote Infinispan server using: ./standalone.sh -c clustered.xml
> 2) Add a breakpoint in AsynCacheWriter line 423. The line is: "retryWork(configuration.connectionAttempts());" into the "run" method
> 3) Run the application
> 4) When the breakpoint stops in AsynCacheWriter::423, kill the remote server and then resume.
> 5) Wait for the message in the log: "ISPN000053: Unable to process some async modifications after 5 retries!"
> 6) After the message, start again the remote server.
> 7) After 120 seconds we will double check in the remote store if the data is available. It will fail. There is no data in the remote store. Based on https://issues.jboss.org/browse/JDG-1051 "Once the underlying store becomes available, the queued modifications should be written and then the cache should become available."
> Application
> {code:java}
> public class ConfigurationJdbcStoreFileCacheExample {
> public static void main(String[] args) throws InterruptedException, IOException, SQLException {
> EmbeddedCacheManager cacheManager = new DefaultCacheManager("cache-store.xml");
> ExecutorService executorService = Executors.newFixedThreadPool(10);
> try {
> Cache<String, String> cache = cacheManager.getCache("myCache");
> List<Future<String>> keys = new ArrayList<>();
> for (int i = 0; i < 10; i++) {
> keys.add(executorService.submit(() -> {
> String key = UUID.randomUUID().toString();
> try {
> cache.put(key, key);
> System.out.println("Done: " + key);
> } catch (Throwable e) {
> e.printStackTrace();
> }
> return key;
> }));
> }
> TimeUnit.SECONDS.sleep(120);
> RemoteCacheManager remoteCacheManager = new RemoteCacheManager(new ConfigurationBuilder()
> .addServer()
> .host("localhost")
> .port(11222)
> .build());
> RemoteCache<String, String> remoteCache =
> remoteCacheManager.administration().getOrCreateCache("default", (String) null);
> keys.forEach(f -> {
> try {
> String key = f.get();
> Assert.assertNotNull(remoteCache.get(key));
> } catch (InterruptedException e) {
> throw new IllegalStateException(e);
> } catch (ExecutionException e) {
> throw new IllegalStateException(e);
> }
> });
> } finally {
> cacheManager.stop();
> executorService.shutdownNow();
> }
> }
> }
> {code}
> Configuration
> {code:xml}
> <?xml version="1.0" ?>
> <infinispan>
> <jgroups>
> <stack-file name="external-file" path="default-jgroups-tcp.xml"/>
> </jgroups>
> <cache-container name="myCacheContainer" default-cache="myCache" statistics="true">
> <transport cluster="WeatherApp" stack="external-file" />
> <distributed-cache owners="2" mode="SYNC" remote-timeout="15000" name="myCache">
> <transaction mode="NONE"/>
> <persistence availability-interval="1000" connection-attempts="5" connection-interval="1000">
> <remote-store cache="default" raw-values="true">
> <remote-server host="localhost" port="11222" />
> <write-behind modification-queue-size="100" thread-pool-size="20" fail-silently="true"/>
> </remote-store>
> </persistence>
> </distributed-cache>
> </cache-container>
> </infinispan>
> {code}
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
7 years, 5 months