[JBoss JIRA] (ISPN-9541) Module initialization is not thread-safe
by Dan Berindei (Jira)
[ https://issues.jboss.org/browse/ISPN-9541?page=com.atlassian.jira.plugin.... ]
Dan Berindei updated ISPN-9541:
-------------------------------
Sprint: Sprint 10.0.0.Alpha1, Sprint 10.0.0.Alpha2, Sprint 9.4.0.Final, Sprint 10.0.0.Alpha0, Sprint 10.0.0.Beta1 (was: Sprint 10.0.0.Alpha1, Sprint 10.0.0.Alpha2, Sprint 9.4.0.Final, Sprint 10.0.0.Alpha0, Sprint 10.0.0.Beta1, DataGrid Sprint #31)
> Module initialization is not thread-safe
> ----------------------------------------
>
> Key: ISPN-9541
> URL: https://issues.jboss.org/browse/ISPN-9541
> Project: Infinispan
> Issue Type: Bug
> Components: Core, Server
> Affects Versions: 9.4.0.CR3
> Reporter: Dan Berindei
> Assignee: Dan Berindei
> Priority: Major
> Fix For: 10.0.0.Final
>
>
> In my ISPN-9127 fix I created a {{BasicComponentRegistry}} interface that represents a mostly-read-only collection of components. It has {{replaceComponent()}} method and a {{rewire()}} method for testing purposes, but it turns out modules were also relying on the ability to replace existing components in order to work.
> Replacing global components is normally safe during the {{ModuleLifecycle.cacheManagerStarting()}}, because none of the components are started yet, so when a component starts later we can still start its dependencies first. But because some modules starts some global components, e.g. by calling {{manager.getCache(name)}}, that assumption breaks.
> The {{infinispan-server-event-logger}} module is a bit more sneaky: it doesn't replace a component, instead it replaces the actual implementation of the event logger in the {{EventLogManager}} component. Events that happen before the module's {{cacheManagerStarting()}} or after {{cacheManagerStopping()}} will be silently dropped from the persistent event log.
> I am investigating making the module a factory of factories. Instead of having a monolitic {{cacheManagerStarting()}} method, it could define a set of components that it can create, and a set of components that should be started before the cache manager is "running". We probably need a way to depend on other modules as well, maybe reusing the {{@Inject}} and {{@ComponentName}} annotations.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
6 years, 8 months
[JBoss JIRA] (ISPN-10456) Remove ExternalPojo Interface and ExternallyMarshallable
by Ryan Emerson (Jira)
Ryan Emerson created ISPN-10456:
-----------------------------------
Summary: Remove ExternalPojo Interface and ExternallyMarshallable
Key: ISPN-10456
URL: https://issues.jboss.org/browse/ISPN-10456
Project: Infinispan
Issue Type: Sub-task
Components: Core
Affects Versions: 10.0.0.Beta4
Reporter: Ryan Emerson
Assignee: Ryan Emerson
Fix For: 10.0.0.Beta5
ExternallyMarshallable & ExternalPojo don't really make sense with the latest marshaller changes (ISPN-10354), as the Global & Persistence marshallers can only handle types they know about. Unknown types are always handled by the user marshaller and when JavaSerializationMarshaller is used (the default now) the user has to explicitly add classes to the white list.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
6 years, 8 months
[JBoss JIRA] (ISPN-10450) ServerNG: improve the initial experience
by Ryan Emerson (Jira)
[ https://issues.jboss.org/browse/ISPN-10450?page=com.atlassian.jira.plugin... ]
Ryan Emerson resolved ISPN-10450.
---------------------------------
Resolution: Done
> ServerNG: improve the initial experience
> ----------------------------------------
>
> Key: ISPN-10450
> URL: https://issues.jboss.org/browse/ISPN-10450
> Project: Infinispan
> Issue Type: Enhancement
> Components: Server
> Reporter: Tristan Tarrant
> Assignee: Tristan Tarrant
> Priority: Major
> Fix For: 10.0.0.Beta5
>
>
> A list of various items to improve the initial serverng experience:
> * Localizable help messages for server and user-tool
> * Stack selection via the command-line (-j)
> * Port binding via the command-line (-p)
> * Make default configuration (infinispan.xml) clustered
> * Add non-clustered configuration infinispan-local.xml
> * Disable TLS/keystore and memcached connector in default config
> * Refactor shells scripts extracting common logic to common.sh
> * Add a README.md file to get users started
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
6 years, 8 months
[JBoss JIRA] (IPROTO-101) Enum values with same name in different classes clash
by Nistor Adrian (Jira)
[ https://issues.jboss.org/browse/IPROTO-101?page=com.atlassian.jira.plugin... ]
Nistor Adrian resolved IPROTO-101.
----------------------------------
Fix Version/s: 4.3.0.Alpha10
Resolution: Rejected
Rejecting it, works as designed. See the other comments.
> Enum values with same name in different classes clash
> -----------------------------------------------------
>
> Key: IPROTO-101
> URL: https://issues.jboss.org/browse/IPROTO-101
> Project: Infinispan ProtoStream
> Issue Type: Bug
> Affects Versions: 4.3.0.Alpha6
> Reporter: Ryan Emerson
> Assignee: Nistor Adrian
> Priority: Major
> Fix For: 4.3.0.Alpha10
>
>
> {code:java}
> @ProtoName("TakeSiteOfflineResponse")
> public enum TakeSiteOfflineResponse {
> @ProtoEnumValue(number = 1)
> NO_SUCH_SITE,
> @ProtoEnumValue(number = 2)
> ALREADY_OFFLINE,
> @ProtoEnumValue(number = 3)
> TAKEN_OFFLINE
> }
> @ProtoName("BringSiteOnlineResponse")
> public enum BringSiteOnlineResponse {
> @ProtoEnumValue(number = 1)
> NO_SUCH_SITE,
> @ProtoEnumValue(number = 2)
> ALREADY_ONLINE,
> @ProtoEnumValue(number = 3)
> BROUGHT_ONLINE
> }
> {code}
> Results in:
> {code:java}
> Enum value org.infinispan.test.TakeSiteOfflineResponse.NO_SUCH_SITE clashes with enum value org.infinispan.test.BringSiteOnlineResponse.NO_SUCH_SITE
> {code}
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
6 years, 8 months
[JBoss JIRA] (IPROTO-101) Enum values with same name in different classes clash
by Nistor Adrian (Jira)
[ https://issues.jboss.org/browse/IPROTO-101?page=com.atlassian.jira.plugin... ]
Nistor Adrian commented on IPROTO-101:
--------------------------------------
And you will be delighted to see the output of this ...
{code}
package test_enums_package;
enum TestEnum1 {
YES = 1;
NO = 0;
MAYBE = 10;
}
enum TestEnum2 {
TestEnum1 = 4;
}
{code}
> Enum values with same name in different classes clash
> -----------------------------------------------------
>
> Key: IPROTO-101
> URL: https://issues.jboss.org/browse/IPROTO-101
> Project: Infinispan ProtoStream
> Issue Type: Bug
> Affects Versions: 4.3.0.Alpha6
> Reporter: Ryan Emerson
> Assignee: Nistor Adrian
> Priority: Major
>
> {code:java}
> @ProtoName("TakeSiteOfflineResponse")
> public enum TakeSiteOfflineResponse {
> @ProtoEnumValue(number = 1)
> NO_SUCH_SITE,
> @ProtoEnumValue(number = 2)
> ALREADY_OFFLINE,
> @ProtoEnumValue(number = 3)
> TAKEN_OFFLINE
> }
> @ProtoName("BringSiteOnlineResponse")
> public enum BringSiteOnlineResponse {
> @ProtoEnumValue(number = 1)
> NO_SUCH_SITE,
> @ProtoEnumValue(number = 2)
> ALREADY_ONLINE,
> @ProtoEnumValue(number = 3)
> BROUGHT_ONLINE
> }
> {code}
> Results in:
> {code:java}
> Enum value org.infinispan.test.TakeSiteOfflineResponse.NO_SUCH_SITE clashes with enum value org.infinispan.test.BringSiteOnlineResponse.NO_SUCH_SITE
> {code}
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
6 years, 8 months
[JBoss JIRA] (IPROTO-101) Enum values with same name in different classes clash
by Nistor Adrian (Jira)
[ https://issues.jboss.org/browse/IPROTO-101?page=com.atlassian.jira.plugin... ]
Nistor Adrian commented on IPROTO-101:
--------------------------------------
Please test with this proto file by running it through protoc: {quote}protoc test_enums.proto -o/tmp/protoc_out.bin {quote}
{code}
// File test_enums.proto
package test_enums_package;
enum TestEnum1 {
YES = 1;
NO = 0;
MAYBE = 10;
}
enum TestEnum2 {
YES = 4;
NOPE = 5;
}
{code}
The output is self-explanatory (C++ scoping rules, the 80's are calling...):
{quote}
test_enums.proto:11:3: "YES" is already defined in "test_enums_package".
test_enums.proto:11:3: Note that enum values use C++ scoping rules, meaning that enum values are siblings of their type, not children of it. Therefore, "YES" must be unique within "test_enums_package", not just within "TestEnum2".
{quote}
> Enum values with same name in different classes clash
> -----------------------------------------------------
>
> Key: IPROTO-101
> URL: https://issues.jboss.org/browse/IPROTO-101
> Project: Infinispan ProtoStream
> Issue Type: Bug
> Affects Versions: 4.3.0.Alpha6
> Reporter: Ryan Emerson
> Assignee: Nistor Adrian
> Priority: Major
>
> {code:java}
> @ProtoName("TakeSiteOfflineResponse")
> public enum TakeSiteOfflineResponse {
> @ProtoEnumValue(number = 1)
> NO_SUCH_SITE,
> @ProtoEnumValue(number = 2)
> ALREADY_OFFLINE,
> @ProtoEnumValue(number = 3)
> TAKEN_OFFLINE
> }
> @ProtoName("BringSiteOnlineResponse")
> public enum BringSiteOnlineResponse {
> @ProtoEnumValue(number = 1)
> NO_SUCH_SITE,
> @ProtoEnumValue(number = 2)
> ALREADY_ONLINE,
> @ProtoEnumValue(number = 3)
> BROUGHT_ONLINE
> }
> {code}
> Results in:
> {code:java}
> Enum value org.infinispan.test.TakeSiteOfflineResponse.NO_SUCH_SITE clashes with enum value org.infinispan.test.BringSiteOnlineResponse.NO_SUCH_SITE
> {code}
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
6 years, 8 months
[JBoss JIRA] (IPROTO-101) Enum values with same name in different classes clash
by Nistor Adrian (Jira)
[ https://issues.jboss.org/browse/IPROTO-101?page=com.atlassian.jira.plugin... ]
Nistor Adrian commented on IPROTO-101:
--------------------------------------
I could not find where in the protobuf spec is this specified, but I do know that this works as intended so I will reject this bug.
> Enum values with same name in different classes clash
> -----------------------------------------------------
>
> Key: IPROTO-101
> URL: https://issues.jboss.org/browse/IPROTO-101
> Project: Infinispan ProtoStream
> Issue Type: Bug
> Affects Versions: 4.3.0.Alpha6
> Reporter: Ryan Emerson
> Assignee: Nistor Adrian
> Priority: Major
>
> {code:java}
> @ProtoName("TakeSiteOfflineResponse")
> public enum TakeSiteOfflineResponse {
> @ProtoEnumValue(number = 1)
> NO_SUCH_SITE,
> @ProtoEnumValue(number = 2)
> ALREADY_OFFLINE,
> @ProtoEnumValue(number = 3)
> TAKEN_OFFLINE
> }
> @ProtoName("BringSiteOnlineResponse")
> public enum BringSiteOnlineResponse {
> @ProtoEnumValue(number = 1)
> NO_SUCH_SITE,
> @ProtoEnumValue(number = 2)
> ALREADY_ONLINE,
> @ProtoEnumValue(number = 3)
> BROUGHT_ONLINE
> }
> {code}
> Results in:
> {code:java}
> Enum value org.infinispan.test.TakeSiteOfflineResponse.NO_SUCH_SITE clashes with enum value org.infinispan.test.BringSiteOnlineResponse.NO_SUCH_SITE
> {code}
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
6 years, 8 months