[JBoss JIRA] (ISPN-12097) NonBlockingStore.batch(...) unexpectedly triggers entry removal
by Paul Ferraro (Jira)
[ https://issues.redhat.com/browse/ISPN-12097?page=com.atlassian.jira.plugi... ]
Paul Ferraro updated ISPN-12097:
--------------------------------
Description:
There seems to be something amiss with the new NonBlockingStore changes. When a transactional invalidation cache is used with a shared cache store, I've observed the entries published to the removePublisher of the NonBlockStore.batch(...) which should have targeted the writePublisher. This seems to happen when a batch only contains writes, but no removes.
See the attached test to reproduce the issue, which executes two simple cache operations against a transactional vs non-transactional cache using a shared write-through store. The transactional version fails due to unexpected removals triggered by the batch(...) method (which, in the case of the JDBC store delegates to the deleteBatch(...) and bulkUpdate(...) methods. TRACE logging indicates that entries are unexpectedly published to the removePublisher of batch(...) when transactions are enabled causing entries to be removed unexpectedly from the store (as the result of a Cache.put(...)). When tx are disabled, the batch(...) method is, of course, not in play, and everything works correctly via the individual write/delete methods.
was:
There seems to be something amiss with the new NonBlockingStore changes. When a transactional invalidation cache is used with a shared cache store, I've observed the removePublisher of the NonBlockStore.batch(...) receive subscriptions for entries that should have been published to the writePublisher.
See the attached test to reproduce the issue, which executes two simple cache operations against a transactional vs non-transactional cache using a shared write-through store. The transactional version fails due to unexpected removals triggered by the batch(...) method (which, in the case of the JDBC store delegates to the deleteBatch(...) and bulkUpdate(...) methods. TRACE logging indicates that entries are unexpectedly published to the removePublisher of batch(...) when transactions are enabled causing entries to be removed unexpectedly from the store (as the result of a Cache.put(...)). When tx are disabled, the batch(...) method is, of course, not in play, and everything works correctly via the individual write/delete methods.
> NonBlockingStore.batch(...) unexpectedly triggers entry removal
> ---------------------------------------------------------------
>
> Key: ISPN-12097
> URL: https://issues.redhat.com/browse/ISPN-12097
> Project: Infinispan
> Issue Type: Bug
> Components: Core, Loaders and Stores
> Affects Versions: 11.0.1.Final
> Reporter: Paul Ferraro
> Assignee: Will Burns
> Priority: Blocker
> Attachments: Test.java
>
>
> There seems to be something amiss with the new NonBlockingStore changes. When a transactional invalidation cache is used with a shared cache store, I've observed the entries published to the removePublisher of the NonBlockStore.batch(...) which should have targeted the writePublisher. This seems to happen when a batch only contains writes, but no removes.
> See the attached test to reproduce the issue, which executes two simple cache operations against a transactional vs non-transactional cache using a shared write-through store. The transactional version fails due to unexpected removals triggered by the batch(...) method (which, in the case of the JDBC store delegates to the deleteBatch(...) and bulkUpdate(...) methods. TRACE logging indicates that entries are unexpectedly published to the removePublisher of batch(...) when transactions are enabled causing entries to be removed unexpectedly from the store (as the result of a Cache.put(...)). When tx are disabled, the batch(...) method is, of course, not in play, and everything works correctly via the individual write/delete methods.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
4 years, 5 months
[JBoss JIRA] (ISPN-12096) ConfigurationBuilder::withProperties should not overwrite the transactionMode
by Pedro Ruivo (Jira)
[ https://issues.redhat.com/browse/ISPN-12096?page=com.atlassian.jira.plugi... ]
Pedro Ruivo updated ISPN-12096:
-------------------------------
Fix Version/s: 12.0.0.Dev01
Sprint: DataGrid Sprint #46
Affects Version/s: (was: 12.0.0.Dev01)
> ConfigurationBuilder::withProperties should not overwrite the transactionMode
> -----------------------------------------------------------------------------
>
> Key: ISPN-12096
> URL: https://issues.redhat.com/browse/ISPN-12096
> Project: Infinispan
> Issue Type: Bug
> Components: Hot Rod
> Affects Versions: 11.0.1.Final
> Reporter: Diego Lovison
> Assignee: Pedro Ruivo
> Priority: Major
> Fix For: 12.0.0.Dev01
>
>
> ConfigurationBuilder::withProperties should not overwrite the transactionMode
>
> {noformat}
> if (transactionMode != null) {
> config.transaction().transactionMode(TransactionMode.valueOf(transactionMode));
> }
> config.maxRetries(maxRetries).socketTimeout(connectionTimeout).connectionTimeout(connectionTimeout);
> if (propertiesPath != null) {
> Properties p = new Properties();
> try (Reader r = new FileReader(propertiesPath)) {
> p.load(r);
> config.withProperties(p);
> } catch (IOException e) {
> throw new IllegalStateException("Something went wrong with provided properties file:" + propertiesPath, e);
> }
> }
> return config;
> }{noformat}
>
> {noformat}
> infinispan.client.hotrod.auth_username=admin
> infinispan.client.hotrod.auth_password=password
> infinispan.client.hotrod.auth_realm=default
> infinispan.client.hotrod.sasl_mechanism=SCRAM-SHA-512{noformat}
>
>
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
4 years, 5 months
[JBoss JIRA] (ISPN-12096) ConfigurationBuilder::withProperties should not overwrite the transactionMode
by Pedro Ruivo (Jira)
[ https://issues.redhat.com/browse/ISPN-12096?page=com.atlassian.jira.plugi... ]
Pedro Ruivo updated ISPN-12096:
-------------------------------
Status: Pull Request Sent (was: Open)
Git Pull Request: https://github.com/infinispan/infinispan/pull/8533
> ConfigurationBuilder::withProperties should not overwrite the transactionMode
> -----------------------------------------------------------------------------
>
> Key: ISPN-12096
> URL: https://issues.redhat.com/browse/ISPN-12096
> Project: Infinispan
> Issue Type: Bug
> Components: Hot Rod
> Affects Versions: 11.0.1.Final, 12.0.0.Dev01
> Reporter: Diego Lovison
> Assignee: Pedro Ruivo
> Priority: Major
>
> ConfigurationBuilder::withProperties should not overwrite the transactionMode
>
> {noformat}
> if (transactionMode != null) {
> config.transaction().transactionMode(TransactionMode.valueOf(transactionMode));
> }
> config.maxRetries(maxRetries).socketTimeout(connectionTimeout).connectionTimeout(connectionTimeout);
> if (propertiesPath != null) {
> Properties p = new Properties();
> try (Reader r = new FileReader(propertiesPath)) {
> p.load(r);
> config.withProperties(p);
> } catch (IOException e) {
> throw new IllegalStateException("Something went wrong with provided properties file:" + propertiesPath, e);
> }
> }
> return config;
> }{noformat}
>
> {noformat}
> infinispan.client.hotrod.auth_username=admin
> infinispan.client.hotrod.auth_password=password
> infinispan.client.hotrod.auth_realm=default
> infinispan.client.hotrod.sasl_mechanism=SCRAM-SHA-512{noformat}
>
>
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
4 years, 5 months
[JBoss JIRA] (ISPN-12096) ConfigurationBuilder::withProperties should not overwrite the transactionMode
by Pedro Ruivo (Jira)
[ https://issues.redhat.com/browse/ISPN-12096?page=com.atlassian.jira.plugi... ]
Pedro Ruivo updated ISPN-12096:
-------------------------------
Status: Open (was: New)
> ConfigurationBuilder::withProperties should not overwrite the transactionMode
> -----------------------------------------------------------------------------
>
> Key: ISPN-12096
> URL: https://issues.redhat.com/browse/ISPN-12096
> Project: Infinispan
> Issue Type: Bug
> Components: Hot Rod
> Affects Versions: 11.0.1.Final, 12.0.0.Dev01
> Reporter: Diego Lovison
> Assignee: Pedro Ruivo
> Priority: Major
>
> ConfigurationBuilder::withProperties should not overwrite the transactionMode
>
> {noformat}
> if (transactionMode != null) {
> config.transaction().transactionMode(TransactionMode.valueOf(transactionMode));
> }
> config.maxRetries(maxRetries).socketTimeout(connectionTimeout).connectionTimeout(connectionTimeout);
> if (propertiesPath != null) {
> Properties p = new Properties();
> try (Reader r = new FileReader(propertiesPath)) {
> p.load(r);
> config.withProperties(p);
> } catch (IOException e) {
> throw new IllegalStateException("Something went wrong with provided properties file:" + propertiesPath, e);
> }
> }
> return config;
> }{noformat}
>
> {noformat}
> infinispan.client.hotrod.auth_username=admin
> infinispan.client.hotrod.auth_password=password
> infinispan.client.hotrod.auth_realm=default
> infinispan.client.hotrod.sasl_mechanism=SCRAM-SHA-512{noformat}
>
>
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
4 years, 5 months
[JBoss JIRA] (ISPN-12097) NonBlockingStore.batch(...) unexpectedly triggers entry removal
by Ryan Emerson (Jira)
[ https://issues.redhat.com/browse/ISPN-12097?page=com.atlassian.jira.plugi... ]
Ryan Emerson reassigned ISPN-12097:
-----------------------------------
Assignee: Will Burns
> NonBlockingStore.batch(...) unexpectedly triggers entry removal
> ---------------------------------------------------------------
>
> Key: ISPN-12097
> URL: https://issues.redhat.com/browse/ISPN-12097
> Project: Infinispan
> Issue Type: Bug
> Components: Core, Loaders and Stores
> Affects Versions: 11.0.1.Final
> Reporter: Paul Ferraro
> Assignee: Will Burns
> Priority: Blocker
> Attachments: Test.java
>
>
> There seems to be something amiss with the new NonBlockingStore changes. When a transactional invalidation cache is used with a shared cache store, I've observed the removePublisher of the NonBlockStore.batch(...) receive subscriptions for entries that should have been published to the writePublisher.
> See the attached test to reproduce the issue, which executes two simple cache operations against a transactional vs non-transactional cache using a shared write-through store. The transactional version fails due to unexpected removals triggered by the batch(...) method (which, in the case of the JDBC store delegates to the deleteBatch(...) and bulkUpdate(...) methods. TRACE logging indicates that entries are unexpectedly published to the removePublisher of batch(...) when transactions are enabled causing entries to be removed unexpectedly from the store (as the result of a Cache.put(...)). When tx are disabled, the batch(...) method is, of course, not in play, and everything works correctly via the individual write/delete methods.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
4 years, 5 months
[JBoss JIRA] (ISPN-12096) ConfigurationBuilder::withProperties should not overwrite the transactionMode
by Pedro Ruivo (Jira)
[ https://issues.redhat.com/browse/ISPN-12096?page=com.atlassian.jira.plugi... ]
Pedro Ruivo reassigned ISPN-12096:
----------------------------------
Assignee: Pedro Ruivo
> ConfigurationBuilder::withProperties should not overwrite the transactionMode
> -----------------------------------------------------------------------------
>
> Key: ISPN-12096
> URL: https://issues.redhat.com/browse/ISPN-12096
> Project: Infinispan
> Issue Type: Bug
> Components: Hot Rod
> Affects Versions: 11.0.1.Final, 12.0.0.Dev01
> Reporter: Diego Lovison
> Assignee: Pedro Ruivo
> Priority: Major
>
> ConfigurationBuilder::withProperties should not overwrite the transactionMode
>
> {noformat}
> if (transactionMode != null) {
> config.transaction().transactionMode(TransactionMode.valueOf(transactionMode));
> }
> config.maxRetries(maxRetries).socketTimeout(connectionTimeout).connectionTimeout(connectionTimeout);
> if (propertiesPath != null) {
> Properties p = new Properties();
> try (Reader r = new FileReader(propertiesPath)) {
> p.load(r);
> config.withProperties(p);
> } catch (IOException e) {
> throw new IllegalStateException("Something went wrong with provided properties file:" + propertiesPath, e);
> }
> }
> return config;
> }{noformat}
>
> {noformat}
> infinispan.client.hotrod.auth_username=admin
> infinispan.client.hotrod.auth_password=password
> infinispan.client.hotrod.auth_realm=default
> infinispan.client.hotrod.sasl_mechanism=SCRAM-SHA-512{noformat}
>
>
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
4 years, 5 months