You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2022/03/18 16:54:00 UTC

[jira] [Commented] (GEODE-9980) Startup of Locator or Server should fail fast if geode.enableGlobalSerialFilter is enabled but fails configuration

    [ https://issues.apache.org/jira/browse/GEODE-9980?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17508926#comment-17508926 ] 

ASF subversion and git services commented on GEODE-9980:
--------------------------------------------------------

Commit 8f3186cb74ccd2eb1ec8ba648c7a11b08d575962 in geode's branch refs/heads/master from Kirk Lund
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=8f3186c ]

GEODE-9817: Enable customized source set paths for ClassAnalysisRule (#7367)

Adds support for customizing source set paths of ClassAnalysisRule.

PROBLEM

Modules external to Geode must be structured the same as Geode
source code in order to use ClassAnalysisRule and the
Analyze*Serializables tests. This is necessary to better facilitate
pluggability of modules that need to provide sanctioned serializable
lists.

SOLUTION

Add source set path customization to ClassAnalysisRule, introduce
a new layer of Analyze*Serializables test base classes that can be
directly extended in order to customize source set paths in
ClassAnalysisRule. Also includes improvements to some iterating
of classes during analysis.

[prereq for backport of GEODE-9980 and GEODE-9758]

(cherry picked from commit 5d1e91932dff296632916a6ceccfb36039357acd)

> Startup of Locator or Server should fail fast if geode.enableGlobalSerialFilter is enabled but fails configuration
> ------------------------------------------------------------------------------------------------------------------
>
>                 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, blocks-1.15.0​, pull-request-available
>
> The following error conditions need better handling which includes handling of all errors consistently and cause the startup of a Locator or Server to fail if it's unable to honor the setting of {{-Dgeode.enableGlobalSerialFilter=true}} for any reason. Currently, if {{-Dgeode.enableGlobalSerialFilter=true}} is specified but Geode is unable to create a global serial filter, then it will will log a warning and continue running. A user may easily miss that log statement and believe that the JVM is running with a properly configured serialization filter.
> 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)