[ 
https://issues.apache.org/jira/browse/GEODE-9980?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kirk Lund updated GEODE-9980:
-----------------------------
    Description: 
The following error conditions need better handling and should cause the 
startup of a Locator or Server to fail. Without the changes for this ticket, 
Geode will handle errors inconsistently and in most cases will log a warning 
and then continue running.

1) The user is trying to secure the JVM very thoroughly and accidentally 
specifies both {{-Djdk.serialFilter}} and {{-Dgeode.enableGlobalSerialFilter}}. 

2) The user runs some non-Geode code in the same JVM that invokes 
{{ObjectInputFilter.Config.setFilter(...)}} directly.

3) The user is using a version of Java 8 prior to 8u121 (the release that first 
added {{sun.misc.ObjectInputFilter}}) and specifies 
{{-Dgeode.enableGlobalSerialFilter=true}}. Also, the same behavior occurs if 
they do NOT specify enabling that property.

4) {{LocatorLauncher}} or {{ServerLauncher}} is started in a JVM that has 
already created at least one {{ObjectInputStream}} which will cause 
{{ObjectInputFilter.Config.setFilter(...)}} to fail.

5) {{LocatorLauncher}} or {{ServerLauncher}} is started in a Java 8 JVM that is 
not based on OpenJDK (ie {{sun.misc.ObjectInputFilter}} does not exist).

6) {{LocatorLauncher}} or {{ServerLauncher}} is started in an unforeseen 
environment that causes invocation of 
{{ObjectInputFilter.Config.setFilter(...)}} via Java Reflection to throw 
{{IllegalAccessException}}.

  was:
The following error conditions need better handling and should cause the 
startup of a Locator or Server to fail. Without the changes for this ticket, 
Geode will handle errors inconsistently and in most cases will log a statement 
that it could not set the serialization filter and then simply continue running.

1) The user is trying to secure the JVM very thoroughly and accidentally 
specifies both {{-Djdk.serialFilter}} and {{-Dgeode.enableGlobalSerialFilter}}. 

2) The user runs some non-Geode code in the same JVM that invokes 
{{ObjectInputFilter.Config.setFilter(...)}} directly.

3) The user is using a version of Java 8 prior to 8u121 (the release that first 
added {{sun.misc.ObjectInputFilter}}) and specifies 
{{-Dgeode.enableGlobalSerialFilter=true}}. Also, the same behavior occurs if 
they do NOT specify enabling that property.

4) {{LocatorLauncher}} or {{ServerLauncher}} is started in a JVM that has 
already created at least one {{ObjectInputStream}} which will cause 
{{ObjectInputFilter.Config.setFilter(...)}} to fail.

5) {{LocatorLauncher}} or {{ServerLauncher}} is started in a Java 8 JVM that is 
not based on OpenJDK (ie {{sun.misc.ObjectInputFilter}} does not exist).

6) {{LocatorLauncher}} or {{ServerLauncher}} is started in an unforeseen 
environment that causes invocation of 
{{ObjectInputFilter.Config.setFilter(...)}} via Java Reflection to throw 
{{IllegalAccessException}}.


> Startup of Locator or Server should fail fast if 
> geode.enableGlobalSerialFilter is enabled but fails due to configuration error
> -------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: GEODE-9980
>                 URL: https://issues.apache.org/jira/browse/GEODE-9980
>             Project: Geode
>          Issue Type: Bug
>          Components: serialization
>    Affects Versions: 1.15.0
>            Reporter: Kirk Lund
>            Assignee: Kirk Lund
>            Priority: Major
>              Labels: GeodeOperationAPI, pull-request-available
>
> The following error conditions need better handling and should cause the 
> startup of a Locator or Server to fail. Without the changes for this ticket, 
> Geode will handle errors inconsistently and in most cases will log a warning 
> and then continue running.
> 1) The user is trying to secure the JVM very thoroughly and accidentally 
> specifies both {{-Djdk.serialFilter}} and 
> {{-Dgeode.enableGlobalSerialFilter}}. 
> 2) The user runs some non-Geode code in the same JVM that invokes 
> {{ObjectInputFilter.Config.setFilter(...)}} directly.
> 3) The user is using a version of Java 8 prior to 8u121 (the release that 
> first added {{sun.misc.ObjectInputFilter}}) and specifies 
> {{-Dgeode.enableGlobalSerialFilter=true}}. Also, the same behavior occurs if 
> they do NOT specify enabling that property.
> 4) {{LocatorLauncher}} or {{ServerLauncher}} is started in a JVM that has 
> already created at least one {{ObjectInputStream}} which will cause 
> {{ObjectInputFilter.Config.setFilter(...)}} to fail.
> 5) {{LocatorLauncher}} or {{ServerLauncher}} is started in a Java 8 JVM that 
> is not based on OpenJDK (ie {{sun.misc.ObjectInputFilter}} does not exist).
> 6) {{LocatorLauncher}} or {{ServerLauncher}} is started in an unforeseen 
> environment that causes invocation of 
> {{ObjectInputFilter.Config.setFilter(...)}} via Java Reflection to throw 
> {{IllegalAccessException}}.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to