Hadoop Map/Reduce
  1. Hadoop Map/Reduce
  2. MAPREDUCE-4764

repair test org.apache.hadoop.mapreduce.security.TestBinaryTokenFile

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 3.0.0, 2.0.3-alpha, 0.23.6
    • Component/s: None
    • Labels:
      None

      Description

      the test is @Ignore-ed, and fails being enabled.
      Suggested to repair it to fill the coverage gap.

      Problems fixed in the test:
      (1) MRConfig.FRAMEWORK_NAME and YarnConfiguration.RM_PRINCIPAL properties must be correctly set in the configuration to correctly enable the security in the way this test implies.
      (2) The property MRJobConfig.MAPREDUCE_JOB_CREDENTIALS_BINARY now is not passed into the Job configuration – it is intentionally deleted from there. So, we pass the binary file name in another dedicated property.
      (3) The test was using deprecated cluster classes. All them are updated to the modern analogs.
      (4) The delegation token found in the job context is now correctly compared to the one deserialized from the binary file.

      1. MAPREDUCE-4764.patch
        11 kB
        Ivan A. Veselovsky
      2. MAPREDUCE-4764-trunk.patch
        10 kB
        Ivan A. Veselovsky

        Activity

        Hide
        Hudson added a comment -

        Integrated in Hadoop-Mapreduce-trunk #1270 (See https://builds.apache.org/job/Hadoop-Mapreduce-trunk/1270/)
        MAPREDUCE-4764. repair TestBinaryTokenFile (Ivan A. Veselovsky via bobby) (Revision 1413739)

        Result = FAILURE
        bobby : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1413739
        Files :

        • /hadoop/common/trunk/hadoop-mapreduce-project/CHANGES.txt
        • /hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/security/TestBinaryTokenFile.java
        Show
        Hudson added a comment - Integrated in Hadoop-Mapreduce-trunk #1270 (See https://builds.apache.org/job/Hadoop-Mapreduce-trunk/1270/ ) MAPREDUCE-4764 . repair TestBinaryTokenFile (Ivan A. Veselovsky via bobby) (Revision 1413739) Result = FAILURE bobby : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1413739 Files : /hadoop/common/trunk/hadoop-mapreduce-project/CHANGES.txt /hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/security/TestBinaryTokenFile.java
        Hide
        Hudson added a comment -

        Integrated in Hadoop-Hdfs-trunk #1239 (See https://builds.apache.org/job/Hadoop-Hdfs-trunk/1239/)
        MAPREDUCE-4764. repair TestBinaryTokenFile (Ivan A. Veselovsky via bobby) (Revision 1413739)

        Result = SUCCESS
        bobby : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1413739
        Files :

        • /hadoop/common/trunk/hadoop-mapreduce-project/CHANGES.txt
        • /hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/security/TestBinaryTokenFile.java
        Show
        Hudson added a comment - Integrated in Hadoop-Hdfs-trunk #1239 (See https://builds.apache.org/job/Hadoop-Hdfs-trunk/1239/ ) MAPREDUCE-4764 . repair TestBinaryTokenFile (Ivan A. Veselovsky via bobby) (Revision 1413739) Result = SUCCESS bobby : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1413739 Files : /hadoop/common/trunk/hadoop-mapreduce-project/CHANGES.txt /hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/security/TestBinaryTokenFile.java
        Hide
        Hudson added a comment -

        Integrated in Hadoop-Hdfs-0.23-Build #448 (See https://builds.apache.org/job/Hadoop-Hdfs-0.23-Build/448/)
        svn merge -c 1413739 FIXES: MAPREDUCE-4764. repair TestBinaryTokenFile (Ivan A. Veselovsky via bobby) (Revision 1413742)

        Result = SUCCESS
        bobby : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1413742
        Files :

        • /hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/CHANGES.txt
        • /hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/security/TestBinaryTokenFile.java
        Show
        Hudson added a comment - Integrated in Hadoop-Hdfs-0.23-Build #448 (See https://builds.apache.org/job/Hadoop-Hdfs-0.23-Build/448/ ) svn merge -c 1413739 FIXES: MAPREDUCE-4764 . repair TestBinaryTokenFile (Ivan A. Veselovsky via bobby) (Revision 1413742) Result = SUCCESS bobby : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1413742 Files : /hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/CHANGES.txt /hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/security/TestBinaryTokenFile.java
        Hide
        Hudson added a comment -

        Integrated in Hadoop-Yarn-trunk #49 (See https://builds.apache.org/job/Hadoop-Yarn-trunk/49/)
        MAPREDUCE-4764. repair TestBinaryTokenFile (Ivan A. Veselovsky via bobby) (Revision 1413739)

        Result = SUCCESS
        bobby : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1413739
        Files :

        • /hadoop/common/trunk/hadoop-mapreduce-project/CHANGES.txt
        • /hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/security/TestBinaryTokenFile.java
        Show
        Hudson added a comment - Integrated in Hadoop-Yarn-trunk #49 (See https://builds.apache.org/job/Hadoop-Yarn-trunk/49/ ) MAPREDUCE-4764 . repair TestBinaryTokenFile (Ivan A. Veselovsky via bobby) (Revision 1413739) Result = SUCCESS bobby : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1413739 Files : /hadoop/common/trunk/hadoop-mapreduce-project/CHANGES.txt /hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/security/TestBinaryTokenFile.java
        Hide
        Hudson added a comment -

        Integrated in Hadoop-trunk-Commit #3056 (See https://builds.apache.org/job/Hadoop-trunk-Commit/3056/)
        MAPREDUCE-4764. repair TestBinaryTokenFile (Ivan A. Veselovsky via bobby) (Revision 1413739)

        Result = SUCCESS
        bobby : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1413739
        Files :

        • /hadoop/common/trunk/hadoop-mapreduce-project/CHANGES.txt
        • /hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/security/TestBinaryTokenFile.java
        Show
        Hudson added a comment - Integrated in Hadoop-trunk-Commit #3056 (See https://builds.apache.org/job/Hadoop-trunk-Commit/3056/ ) MAPREDUCE-4764 . repair TestBinaryTokenFile (Ivan A. Veselovsky via bobby) (Revision 1413739) Result = SUCCESS bobby : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1413739 Files : /hadoop/common/trunk/hadoop-mapreduce-project/CHANGES.txt /hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/security/TestBinaryTokenFile.java
        Hide
        Robert Joseph Evans added a comment -

        Thanks Ivan,

        I put this in trunk, branch-2, and branch-0.23

        Show
        Robert Joseph Evans added a comment - Thanks Ivan, I put this in trunk, branch-2, and branch-0.23
        Hide
        Robert Joseph Evans added a comment -

        The changes look good to me +1.

        Show
        Robert Joseph Evans added a comment - The changes look good to me +1.
        Hide
        Hadoop QA added a comment -

        +1 overall. Here are the results of testing the latest attachment
        http://issues.apache.org/jira/secure/attachment/12553341/MAPREDUCE-4764.patch
        against trunk revision .

        +1 @author. The patch does not contain any @author tags.

        +1 tests included. The patch appears to include 1 new or modified test files.

        +1 javac. The applied patch does not increase the total number of javac compiler warnings.

        +1 javadoc. The javadoc tool did not generate any warning messages.

        +1 eclipse:eclipse. The patch built with eclipse:eclipse.

        +1 findbugs. The patch does not introduce any new Findbugs (version 1.3.9) warnings.

        +1 release audit. The applied patch does not increase the total number of release audit warnings.

        +1 core tests. The patch passed unit tests in hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient.

        +1 contrib tests. The patch passed contrib unit tests.

        Test results: https://builds.apache.org/job/PreCommit-MAPREDUCE-Build/3024//testReport/
        Console output: https://builds.apache.org/job/PreCommit-MAPREDUCE-Build/3024//console

        This message is automatically generated.

        Show
        Hadoop QA added a comment - +1 overall . Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12553341/MAPREDUCE-4764.patch against trunk revision . +1 @author . The patch does not contain any @author tags. +1 tests included . The patch appears to include 1 new or modified test files. +1 javac . The applied patch does not increase the total number of javac compiler warnings. +1 javadoc . The javadoc tool did not generate any warning messages. +1 eclipse:eclipse . The patch built with eclipse:eclipse. +1 findbugs . The patch does not introduce any new Findbugs (version 1.3.9) warnings. +1 release audit . The applied patch does not increase the total number of release audit warnings. +1 core tests . The patch passed unit tests in hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient. +1 contrib tests . The patch passed contrib unit tests. Test results: https://builds.apache.org/job/PreCommit-MAPREDUCE-Build/3024//testReport/ Console output: https://builds.apache.org/job/PreCommit-MAPREDUCE-Build/3024//console This message is automatically generated.
        Hide
        Ivan A. Veselovsky added a comment -

        the patch MAPREDUCE-4764 addresses the last comments: adds also checking of the UGI tokens.

        Show
        Ivan A. Veselovsky added a comment - the patch MAPREDUCE-4764 addresses the last comments: adds also checking of the UGI tokens.
        Hide
        Ivan A. Veselovsky added a comment -

        the patch is applicable to trunk, branch-2, branch-0.23.

        Show
        Ivan A. Veselovsky added a comment - the patch is applicable to trunk, branch-2, branch-0.23.
        Hide
        Daryn Sharp added a comment -

        Sure. Just be sure to also check that the tokens are in the current user's UGI.

        Show
        Daryn Sharp added a comment - Sure. Just be sure to also check that the tokens are in the current user's UGI.
        Hide
        Ivan A. Veselovsky added a comment -

        Hi, Daryn,
        I'd like to clarify our plan of improvements in this test.

        Currently the test writes the token into a file, then sets the file name as MRJobConfig.MAPREDUCE_JOB_CREDENTIALS_BINARY value in the config, and also passes the same file name as a value of a dedicated config property (KEY_SECURITY_TOKEN).
        In the job: it gets the tokens from the job context (context.getCredentials().getAllTokens()), and gets the delegation token from there by the known key: let it be token X.
        After that it gets the binary file name from the job config (key KEY_SECURITY_TOKEN), reads the file, de-serializing the token: let it be token Y.
        Then the job asserts X.equals(Y).

        This way the binary token propagation and serialization/de-serialization is checked, and this pretty much corresponds to the test name.

        As I understand, you suggested to check also that the same delegation token is present in UserGroupInformation.getCurrentUser().getTokens(), right?
        So, If I add this check, will you be okay with that test? Or, do you have other suggestions on how to improve it?

        Show
        Ivan A. Veselovsky added a comment - Hi, Daryn, I'd like to clarify our plan of improvements in this test. Currently the test writes the token into a file, then sets the file name as MRJobConfig.MAPREDUCE_JOB_CREDENTIALS_BINARY value in the config, and also passes the same file name as a value of a dedicated config property (KEY_SECURITY_TOKEN). In the job: it gets the tokens from the job context (context.getCredentials().getAllTokens()), and gets the delegation token from there by the known key: let it be token X. After that it gets the binary file name from the job config (key KEY_SECURITY_TOKEN), reads the file, de-serializing the token: let it be token Y. Then the job asserts X.equals(Y). This way the binary token propagation and serialization/de-serialization is checked, and this pretty much corresponds to the test name. As I understand, you suggested to check also that the same delegation token is present in UserGroupInformation.getCurrentUser().getTokens(), right? So, If I add this check, will you be okay with that test? Or, do you have other suggestions on how to improve it?
        Hide
        Daryn Sharp added a comment -

        I was mistaken. I thought the job token for the umbilical was not provided to the task's context, but apparently it is.

        Show
        Daryn Sharp added a comment - I was mistaken. I thought the job token for the umbilical was not provided to the task's context, but apparently it is.
        Hide
        Ivan A. Veselovsky added a comment -

        Daryn, I meant the following your comment:

        "Notably the user's UGI should not have the job token, only what was submitted."

        Please correct me if I misinterpreted something. "User's UGI" is not what we get with UserGroupInformation.getCurrentUser()?

        Show
        Ivan A. Veselovsky added a comment - Daryn, I meant the following your comment: "Notably the user's UGI should not have the job token, only what was submitted." Please correct me if I misinterpreted something. "User's UGI" is not what we get with UserGroupInformation.getCurrentUser()?
        Hide
        Daryn Sharp added a comment -

        are we revealing an implementation bug, or our expectation is wrong?

        I'm a bit confused about what you think might be a bug? Ie. What did you expect as output?

        BTW, I think Bobby's right about the task not running in the same process, you'll have to pass the filename.

        Show
        Daryn Sharp added a comment - are we revealing an implementation bug, or our expectation is wrong? I'm a bit confused about what you think might be a bug? Ie. What did you expect as output? BTW, I think Bobby's right about the task not running in the same process, you'll have to pass the filename.
        Hide
        Ivan A. Veselovsky added a comment -

        Hi, Daryn,
        regarding your suggestion about UGI.getCurrebntUser():
        if inside the job I execute the following code:

              final UserGroupInformation ugi = UserGroupInformation.getCurrentUser();
              final Collection<Token<? extends TokenIdentifier>> ugiTokenCollection = ugi.getTokens();
              for (Token t: ugiTokenCollection) {
                System.out.println("UGI token: [" + t + "]");
              }
        

        , i receive the following output:

        UGI token: [Kind: HDFS_DELEGATION_TOKEN, Service: 127.0.0.1:52538, Ident: (HDFS_DELEGATION_TOKEN token 1 for ivan)]
        UGI token: [Kind: mapreduce.job, Service: 172.18.128.36:59358, Ident: (org.apache.hadoop.mapreduce.security.token.JobTokenIdentifier@3f56e5ed)]
        

        So, are we revealing an implementation bug, or our expectation is wrong?

        Show
        Ivan A. Veselovsky added a comment - Hi, Daryn, regarding your suggestion about UGI.getCurrebntUser(): if inside the job I execute the following code: final UserGroupInformation ugi = UserGroupInformation.getCurrentUser(); final Collection<Token<? extends TokenIdentifier>> ugiTokenCollection = ugi.getTokens(); for (Token t: ugiTokenCollection) { System.out.println("UGI token: [" + t + "]"); } , i receive the following output: UGI token: [Kind: HDFS_DELEGATION_TOKEN, Service: 127.0.0.1:52538, Ident: (HDFS_DELEGATION_TOKEN token 1 for ivan)] UGI token: [Kind: mapreduce.job, Service: 172.18.128.36:59358, Ident: (org.apache.hadoop.mapreduce.security.token.JobTokenIdentifier@3f56e5ed)] So, are we revealing an implementation bug, or our expectation is wrong?
        Hide
        Robert Joseph Evans added a comment -

        Daryn,

        For the hdfs mini cluster it is all running in the same process, but for MR it is not. They actually do launch separate processes, even though the NM and RM are running the same process the AM and tasks are not.

        Show
        Robert Joseph Evans added a comment - Daryn, For the hdfs mini cluster it is all running in the same process, but for MR it is not. They actually do launch separate processes, even though the NM and RM are running the same process the AM and tasks are not.
        Hide
        Daryn Sharp added a comment -

        This test is a bit misleadingly named. It should have been called TestTokenPropagation. It overlaps with other tests, so I think it can be simplified:

        1. create credentials, fill with a few tokens
        2. create job with those creds and submit
        3. in the task, check that the tokens in the context AND the UGI.getCurrentUser() contain the tokens supplied at job submission. Notably the user's UGI should not have the job token, only what was submitted.
        4. since it's a minicluster, no need to write out the tokens and set a conf key for the task to read back in the tokens. it's all in the same process so just use a static class field to hold the creds used to submit the job.

        Then do the same thing, but this time:

        1. write the creds out and set the binary token file key
        2. create a job with empty creds and submit
        3. do the same context and ugi checks as before
        Show
        Daryn Sharp added a comment - This test is a bit misleadingly named. It should have been called TestTokenPropagation . It overlaps with other tests, so I think it can be simplified: create credentials, fill with a few tokens create job with those creds and submit in the task, check that the tokens in the context AND the UGI.getCurrentUser() contain the tokens supplied at job submission. Notably the user's UGI should not have the job token, only what was submitted. since it's a minicluster, no need to write out the tokens and set a conf key for the task to read back in the tokens. it's all in the same process so just use a static class field to hold the creds used to submit the job. Then do the same thing, but this time: write the creds out and set the binary token file key create a job with empty creds and submit do the same context and ugi checks as before
        Hide
        Hadoop QA added a comment -

        -1 overall. Here are the results of testing the latest attachment
        http://issues.apache.org/jira/secure/attachment/12551827/MAPREDUCE-4764-trunk.patch
        against trunk revision .

        +1 @author. The patch does not contain any @author tags.

        +1 tests included. The patch appears to include 1 new or modified test files.

        +1 javac. The applied patch does not increase the total number of javac compiler warnings.

        +1 javadoc. The javadoc tool did not generate any warning messages.

        +1 eclipse:eclipse. The patch built with eclipse:eclipse.

        +1 findbugs. The patch does not introduce any new Findbugs (version 1.3.9) warnings.

        +1 release audit. The applied patch does not increase the total number of release audit warnings.

        -1 core tests. The patch failed these unit tests in hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient:

        org.apache.hadoop.mapred.TestClusterMRNotification

        +1 contrib tests. The patch passed contrib unit tests.

        Test results: https://builds.apache.org/job/PreCommit-MAPREDUCE-Build/2982//testReport/
        Console output: https://builds.apache.org/job/PreCommit-MAPREDUCE-Build/2982//console

        This message is automatically generated.

        Show
        Hadoop QA added a comment - -1 overall . Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12551827/MAPREDUCE-4764-trunk.patch against trunk revision . +1 @author . The patch does not contain any @author tags. +1 tests included . The patch appears to include 1 new or modified test files. +1 javac . The applied patch does not increase the total number of javac compiler warnings. +1 javadoc . The javadoc tool did not generate any warning messages. +1 eclipse:eclipse . The patch built with eclipse:eclipse. +1 findbugs . The patch does not introduce any new Findbugs (version 1.3.9) warnings. +1 release audit . The applied patch does not increase the total number of release audit warnings. -1 core tests . The patch failed these unit tests in hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient: org.apache.hadoop.mapred.TestClusterMRNotification +1 contrib tests . The patch passed contrib unit tests. Test results: https://builds.apache.org/job/PreCommit-MAPREDUCE-Build/2982//testReport/ Console output: https://builds.apache.org/job/PreCommit-MAPREDUCE-Build/2982//console This message is automatically generated.
        Hide
        Ivan A. Veselovsky added a comment -

        The failed test org.apache.hadoop.mapred.TestClusterMRNotification.testMR appears to be flaky: it fails in many previous pre-commit builds.
        Re-submitting the patch to try again.

        Show
        Ivan A. Veselovsky added a comment - The failed test org.apache.hadoop.mapred.TestClusterMRNotification.testMR appears to be flaky: it fails in many previous pre-commit builds. Re-submitting the patch to try again.
        Hide
        Hadoop QA added a comment -

        -1 overall. Here are the results of testing the latest attachment
        http://issues.apache.org/jira/secure/attachment/12551730/MAPREDUCE-4764-trunk.patch
        against trunk revision .

        +1 @author. The patch does not contain any @author tags.

        +1 tests included. The patch appears to include 1 new or modified test files.

        +1 javac. The applied patch does not increase the total number of javac compiler warnings.

        +1 javadoc. The javadoc tool did not generate any warning messages.

        +1 eclipse:eclipse. The patch built with eclipse:eclipse.

        +1 findbugs. The patch does not introduce any new Findbugs (version 1.3.9) warnings.

        +1 release audit. The applied patch does not increase the total number of release audit warnings.

        -1 core tests. The patch failed these unit tests in hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient:

        org.apache.hadoop.mapred.TestClusterMRNotification

        +1 contrib tests. The patch passed contrib unit tests.

        Test results: https://builds.apache.org/job/PreCommit-MAPREDUCE-Build/2978//testReport/
        Console output: https://builds.apache.org/job/PreCommit-MAPREDUCE-Build/2978//console

        This message is automatically generated.

        Show
        Hadoop QA added a comment - -1 overall . Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12551730/MAPREDUCE-4764-trunk.patch against trunk revision . +1 @author . The patch does not contain any @author tags. +1 tests included . The patch appears to include 1 new or modified test files. +1 javac . The applied patch does not increase the total number of javac compiler warnings. +1 javadoc . The javadoc tool did not generate any warning messages. +1 eclipse:eclipse . The patch built with eclipse:eclipse. +1 findbugs . The patch does not introduce any new Findbugs (version 1.3.9) warnings. +1 release audit . The applied patch does not increase the total number of release audit warnings. -1 core tests . The patch failed these unit tests in hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient: org.apache.hadoop.mapred.TestClusterMRNotification +1 contrib tests . The patch passed contrib unit tests. Test results: https://builds.apache.org/job/PreCommit-MAPREDUCE-Build/2978//testReport/ Console output: https://builds.apache.org/job/PreCommit-MAPREDUCE-Build/2978//console This message is automatically generated.
        Hide
        Ivan A. Veselovsky added a comment -

        The patch is applicable to all the main branches: trunk, branch-2, branch-0.23.

        Show
        Ivan A. Veselovsky added a comment - The patch is applicable to all the main branches: trunk, branch-2, branch-0.23.

          People

          • Assignee:
            Unassigned
            Reporter:
            Ivan A. Veselovsky
          • Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development