[JBoss JIRA] (ISPN-375) Enable Hot Rod clients to start transactions
by Tristan Tarrant (JIRA)
[ https://issues.jboss.org/browse/ISPN-375?page=com.atlassian.jira.plugin.s... ]
Tristan Tarrant reassigned ISPN-375:
------------------------------------
Assignee: Pedro Ruivo
> Enable Hot Rod clients to start transactions
> --------------------------------------------
>
> Key: ISPN-375
> URL: https://issues.jboss.org/browse/ISPN-375
> Project: Infinispan
> Issue Type: Feature Request
> Components: Remote Protocols
> Reporter: Galder Zamarreño
> Assignee: Pedro Ruivo
> Priority: Blocker
> Labels: hackathon
>
> It might be useful to allow Hot Rod clients to start transactions within Hot Rod servers. The possibility of clients participating in the actual transaction, i.e. being an XAResource, should not be imposed since this might be less than trivial to achieve in non-Java environments. The alternative would be to allow clients to start Hot Rod server local transactions only.
> This would require enhancing Hot Rod spec to have some begin/commit/rollback commands that return a tx id, and for clients to be able to send this id as part of each command that should participate in the transaction.
> Pitfalls to avoid include avoiding a transaction to be propagated over several Hot Rod servers. IOW, to simplify things, if a tx is started in server A, all ops within that tx should be directed to tx. Load balancing could still happen but would need to be tx sticky.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
8 years, 11 months
[JBoss JIRA] (ISPN-7800) Cluster always in Degraded Mode
by Dan Berindei (JIRA)
[ https://issues.jboss.org/browse/ISPN-7800?page=com.atlassian.jira.plugin.... ]
Dan Berindei commented on ISPN-7800:
------------------------------------
The {{CacheNotFoundResponse}} is expected. Initially I thought there was a problem with the retry logic in the cluster recovery process, but now I think this is a duplicate of ISPN-5290.
The nodes are restarted with different JGroups addresses, so the number of running nodes matching the latest stable cache topology stays the same, and the cache stays in degraded mode.
> Cluster always in Degraded Mode
> -------------------------------
>
> Key: ISPN-7800
> URL: https://issues.jboss.org/browse/ISPN-7800
> Project: Infinispan
> Issue Type: Bug
> Affects Versions: 8.2.6.Final, 9.0.0.Final
> Reporter: Pedro Ruivo
>
> Scenario:
> * 3 nodes, server mode with Partition handling enabled
> * 2 nodes are killed and bring back online
> * the nodes are unable to merge and the cluster remains in degraded mode.
> I suspect that the FORK channel/protocol is the culprit since the heartbeat command is never handled in the joiner node, but the coordinator receives a {{CacheNotFoundResponse}} quickly (i.e. without timeout). The request is received and "delivered" but never reaches Infinispan.
> When starting node 1 (logs from coordinator):
> {code}
> Received new cluster view: 5, isCoordinator = true, old status = COORDINATOR
> Received new cluster view: 5, isCoordinator = true, old status = COORDINATOR
> //hearbeat sent, ClusterTopologyManagerImpl.confirmMembersAvailable();
> Responses: value=CacheNotFoundResponse, received=true, suspected=false
> Node node01-47572 left while updating cache members
> //the view is not handled
> {code}
> When I started node 2:
> {code}
> Received new cluster view: 6, isCoordinator = true, old status = COORDINATOR
> Updating cluster members for all the caches. New list is [node03-48579, node01-47572, node02-32959]
> //hearbeat sent, ClusterTopologyManagerImpl.confirmMembersAvailable();
> Responses: Responses{
> node01-47572: value=SuccessfulResponse{responseValue=true} , received=true, suspected=false
> node02-32959: value=CacheNotFoundResponse, received=true, suspected=false}
> Node node02-32959 left while updating cache members
> //the view is not handled
> {code}
> It is always reproducible. The configuration is
> {code:xml}
> <replicated-cache name="default" mode="SYNC" batching="true">
> <partition-handling enabled="true"/>
> <locking isolation="REPEATABLE_READ"/>
> <state-transfer enabled="false"/>
> {code}
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
8 years, 11 months
[JBoss JIRA] (ISPN-7811) Improve out-of-the-box server security in cloud
by Galder Zamarreño (JIRA)
Galder Zamarreño created ISPN-7811:
--------------------------------------
Summary: Improve out-of-the-box server security in cloud
Key: ISPN-7811
URL: https://issues.jboss.org/browse/ISPN-7811
Project: Infinispan
Issue Type: Enhancement
Components: Security, Server
Affects Versions: 9.0.0.Final
Reporter: Galder Zamarreño
Assignee: Galder Zamarreño
Fix For: 9.1.0.Final, 9.0.1.Final
When running Infinispan 9.0.0.Final in a cloud env, the default security code enforcements are causing issues when trying to register a proto file.
The "___protobuf_metadata" cache cannot be written remotely any more. Accessing this cache to add protofile descriptors to server. The default configuration throws this error:
{code}
[datagrid-1-akxoi]
[datagrid-1-akxoi] 12:15:56,602 ERROR [org.infinispan.server.hotrod.CacheDecodeContext] (HotRod-ServerWorker-4-2) ISPN005003: Exception reported: org.infinispan.server.hotrod.RequestParsingException: Remote requests are allowed to protected caches only over loopback or if authorization is enabled. Do no send remote requests to cache '___protobuf_metadata'
[datagrid-1-akxoi] at org.infinispan.server.hotrod.CacheDecodeContext.obtainCache(CacheDecodeContext.java:116)
[datagrid-1-akxoi] at org.infinispan.server.hotrod.HotRodDecoder.decodeHeader(HotRodDecoder.java:162)
[datagrid-1-akxoi] at org.infinispan.server.hotrod.HotRodDecoder.decode(HotRodDecoder.java:93)
{code}
The code in CacheDecodeContext that enables this check does the following:
{code}
if (!cacheManager.getCacheManagerConfiguration().security().authorization().enabled()...
{code}
In order to have better out-of-the-box experience in cloud but still be secured, the following should be done:
* Remove the code check for authorization in CacheDecodeContext.
* Server's default configuration should require authentication.
* Docker image allows passing in APP_USER and APP_PASS as env variables easily, but it provides default usernames and passwords for both APP and MGMT. These defaults should be removed since they're a security risk.
* Docker image should have the possibility to set APP_GROUPS so that we can pass in optionally the role groups associated with a user. This is handy for making it easier in the future for users to add authorization on top of authentication.
I will create JIRA subtasks for these so that the work can be divided.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
8 years, 11 months
[JBoss JIRA] (ISPN-7417) Implement transcoding
by Gustavo Fernandes (JIRA)
[ https://issues.jboss.org/browse/ISPN-7417?page=com.atlassian.jira.plugin.... ]
Gustavo Fernandes updated ISPN-7417:
------------------------------------
Comment: was deleted
(was: [~galder.zamarreno] The idea is to remove compatibility mode. For the task use case, the Infinispan server caches will be configured by default with a mime-type reflecting the storage format, for example:
_application/vnd.infinispan.v9.wrapped+x-jboss-marshalling_
At runtime it will be possible to decorate the cache to deal with other types, for example:
{code:java}
cache.withContentType("application/x-java-object")
{code}
all operations on that decorated cache will deal with POJOs, using internally a transcoder that supports _application/x-java-object_ and _application/vnd.infinispan.v9.wrapped+x-jboss-marshalling_ to do on-the-fly conversion
DISCLAIMER: this is all WIP at the moment, names and API calls are not final
)
> Implement transcoding
> ---------------------
>
> Key: ISPN-7417
> URL: https://issues.jboss.org/browse/ISPN-7417
> Project: Infinispan
> Issue Type: Enhancement
> Reporter: Galder Zamarreño
> Assignee: Gustavo Fernandes
>
> The aim of this JIRA is to implement transcoding so that data of any type can be stored and it can be transformed on the fly, regardless of the endpoint. The work of the JIRA will be split into different subtasks to be able to split the work.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
8 years, 11 months
[JBoss JIRA] (ISPN-7584) Rolling upgrade fails with "java.lang.ClassCastException: SimpleClusteredVersion cannot be cast to NumericVersion"
by RH Bugzilla Integration (JIRA)
[ https://issues.jboss.org/browse/ISPN-7584?page=com.atlassian.jira.plugin.... ]
RH Bugzilla Integration commented on ISPN-7584:
-----------------------------------------------
Tristan Tarrant <ttarrant(a)redhat.com> changed the Status of [bug 1435617|https://bugzilla.redhat.com/show_bug.cgi?id=1435617] from NEW to POST
> Rolling upgrade fails with "java.lang.ClassCastException: SimpleClusteredVersion cannot be cast to NumericVersion"
> ------------------------------------------------------------------------------------------------------------------
>
> Key: ISPN-7584
> URL: https://issues.jboss.org/browse/ISPN-7584
> Project: Infinispan
> Issue Type: Bug
> Reporter: Gustavo Fernandes
> Assignee: Gustavo Fernandes
> Labels: rolling_upgrade
> Fix For: 9.0.0.CR4
>
>
> Cache configuration, both for source and target clusters:
> {code:xml}
> <replicated-cache name="test-cache" mode="SYNC" start="EAGER">
> <expiration interval="300000" lifespan="525600000000" />
> <locking isolation="REPEATABLE_READ" acquire-timeout="20000" concurrency-level="500" striping="false" />
> <transaction mode="NONE" />
> <string-keyed-jdbc-store datasource="java:jboss/datasources/OracleDS" passivation="false" preload="false" purge="false" shared="true">
> <property name="databaseType">ORACLE</property>
> <string-keyed-table prefix="ISPN">
> <id-column name="id" type="VARCHAR(256)" />
> <data-column name="datum" type="BLOB" />
> <timestamp-column name="version" type="NUMBER" />
> </string-keyed-table>
> </string-keyed-jdbc-store>
> <remote-store cache="test-cache" hotrod-wrapping="true" socket-timeout="60000" tcp-no-delay="true" shared="true" passivation="false" purge="false" read-only="true">
> <remote-server outbound-socket-binding="source-cluster" />
> </remote-store>
> </replicated-cache>
> {code}
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
8 years, 11 months
[JBoss JIRA] (ISPN-6539) ClassCastException with Remote Cache Loader and GetWithMetadata
by RH Bugzilla Integration (JIRA)
[ https://issues.jboss.org/browse/ISPN-6539?page=com.atlassian.jira.plugin.... ]
RH Bugzilla Integration commented on ISPN-6539:
-----------------------------------------------
Tristan Tarrant <ttarrant(a)redhat.com> changed the Status of [bug 1435617|https://bugzilla.redhat.com/show_bug.cgi?id=1435617] from NEW to POST
> ClassCastException with Remote Cache Loader and GetWithMetadata
> ---------------------------------------------------------------
>
> Key: ISPN-6539
> URL: https://issues.jboss.org/browse/ISPN-6539
> Project: Infinispan
> Issue Type: Bug
> Components: Core, Loaders and Stores, Server
> Affects Versions: 8.2.1.Final, 9.0.0.Alpha1
> Reporter: Gustavo Fernandes
> Assignee: Gustavo Fernandes
> Fix For: 9.0.0.Alpha2, 9.0.0.Final
>
>
> A combination of remote cache loader and {{IsolationLevel.REPEATABLE_READ}} will cause a ClassCastException when doing a {{GetWithMetadata}}:
> {noformat}
> org.infinispan.client.hotrod.exceptions.HotRodClientException:Request for messageId=11
> returned server error (status=0x85): java.lang.ClassCastException:
> org.infinispan.container.entries.RepeatableReadEntry cannot be cast to
> org.infinispan.container.entries.InternalCacheEntry
> {noformat}
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
8 years, 11 months