Uploaded image for project: 'Hadoop Common'
  1. Hadoop Common
  2. HADOOP-14474

Use OpenJDK 7 instead of Oracle JDK 7 to avoid oracle-java7-installer failures

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.8.0, 2.7.3
    • Fix Version/s: 2.9.0, 2.7.4, 2.6.6, 2.8.2
    • Component/s: build
    • Labels:
      None
    • Hadoop Flags:
      Reviewed

      Description

      Recently Oracle has changed the download link for Oracle JDK7, and that's why oracle-java7-installer fails. Precommit jobs for branch-2* are failing because of this failure.

        Issue Links

          Activity

          Hide
          djp Junping Du added a comment -

          A quick fix to add back java installer - OpenJDK instead of oracle one is attached in HADOOP-14842. Without this fix, create-release failed to work in docker mode. Can people here give it a quick shot?

          Show
          djp Junping Du added a comment - A quick fix to add back java installer - OpenJDK instead of oracle one is attached in HADOOP-14842 . Without this fix, create-release failed to work in docker mode. Can people here give it a quick shot?
          Hide
          djp Junping Du added a comment -

          HADOOP-14842 get filed for more discussions.

          Show
          djp Junping Du added a comment - HADOOP-14842 get filed for more discussions.
          Hide
          djp Junping Du added a comment -

          Hi, my latest 2.8.2 release docker build get failed, and I get following errors:

           
          "/usr/bin/mvn -Dmaven.repo.local=/maven -pl hadoop-maven-plugins -am clean install
          Error: JAVA_HOME is not defined correctly. We cannot execute /usr/lib/jvm/java-7-oracle/bin/java"
          

          Is that related to this patch? I tried to revert this patch but build progress get failed earlier in java download - may be as mentioned above, some download address get changed by Oracle. Also, hard coding my local JAVA_HOME to create-release or Dockerfile doesn't work here. Any workaround/fix for resolving this issue?

          Show
          djp Junping Du added a comment - Hi, my latest 2.8.2 release docker build get failed, and I get following errors: "/usr/bin/mvn -Dmaven.repo.local=/maven -pl hadoop-maven-plugins -am clean install Error: JAVA_HOME is not defined correctly. We cannot execute /usr/lib/jvm/java-7-oracle/bin/java" Is that related to this patch? I tried to revert this patch but build progress get failed earlier in java download - may be as mentioned above, some download address get changed by Oracle. Also, hard coding my local JAVA_HOME to create-release or Dockerfile doesn't work here. Any workaround/fix for resolving this issue?
          Hide
          aw Allen Wittenauer added a comment -

          Keep reading:

          However, many reviewers find it helpful to include a version number in the patch name (three-digit version number is recommended), so including a version number is the preferred style.
          
          Show
          aw Allen Wittenauer added a comment - Keep reading: However, many reviewers find it helpful to include a version number in the patch name (three-digit version number is recommended), so including a version number is the preferred style.
          Hide
          shahrs87 Rushabh S Shah added a comment -

          To match it with a single digit version number, it should be HADOOP-14521-branch-2.8-2.patch
          Note the dash vs. period in the last chunk. You can see an example why periods tend to be confusing here:

          Then maybe we should change the wiki on "How to contribute" to be more clear.
          https://wiki.apache.org/hadoop/HowToContribute

          Naming your patch
          
          Patches for trunk should be named according to the Jira, with a version number: <jiraName>.<versionNum>.patch, e.g. HADOOP-1234.001.patch, HDFS-4321.002.patch.
          
          Patches for a non-trunk branch should be named <jiraName>-<branchName>.<versionNum>.patch, e.g. HDFS-1234-branch-2.003.patch. The branch name suffix should be the exact name of a git branch, such as "branch-2". Jenkins will check the name of the patch and detect the appropriate branch for testing.
          
          Show
          shahrs87 Rushabh S Shah added a comment - To match it with a single digit version number, it should be HADOOP-14521 -branch-2.8-2.patch Note the dash vs. period in the last chunk. You can see an example why periods tend to be confusing here: Then maybe we should change the wiki on "How to contribute" to be more clear. https://wiki.apache.org/hadoop/HowToContribute Naming your patch Patches for trunk should be named according to the Jira, with a version number: <jiraName>.<versionNum>.patch, e.g. HADOOP-1234.001.patch, HDFS-4321.002.patch. Patches for a non-trunk branch should be named <jiraName>-<branchName>.<versionNum>.patch, e.g. HDFS-1234-branch-2.003.patch. The branch name suffix should be the exact name of a git branch, such as "branch-2". Jenkins will check the name of the patch and detect the appropriate branch for testing.
          Hide
          aw Allen Wittenauer added a comment -

          Side note:

          HADOOP-14521-branch-2.8.2.patch

          doesn't follow

          <jira#>-<target-branch>-<version#>.patch

          To match it with a single digit version number, it should be HADOOP-14521-branch-2.8-2.patch

          Note the dash vs. period in the last chunk. You can see an example why periods tend to be confusing here: https://www.slideshare.net/allenwittenauer/apache-yetus-intro-to-precommit-for-hbase-contributors#6

          Show
          aw Allen Wittenauer added a comment - Side note: HADOOP-14521-branch-2.8.2.patch doesn't follow <jira#>-<target-branch>-<version#>.patch To match it with a single digit version number, it should be HADOOP-14521 -branch-2.8-2.patch Note the dash vs. period in the last chunk. You can see an example why periods tend to be confusing here: https://www.slideshare.net/allenwittenauer/apache-yetus-intro-to-precommit-for-hbase-contributors#6
          Hide
          aw Allen Wittenauer added a comment -

          The fix version says otherwise.

          Well, it's wrong. One of the nice things about Yetus is that it reveals quite a bit about what is happening. Yetus switched to 2.8.2 based upon your patch name:

          From https://builds.apache.org/job/PreCommit-HADOOP-Build/12784/consoleFull:

          HEAD is now at 5cf6a1a YARN-6805. NPE in LinuxContainerExecutor due to null PrivilegedOperationException exit code. Contributed by Jason Lowe
          Testing HADOOP-14521 patch on branch-2.8.2.
          

          and then processed these lines https://github.com/apache/hadoop/blob/5cf6a1af0f1d1abdd7e9d29d5b427d554991c7dd/dev-support/docker/Dockerfile#L83-L85

          which then blew up.

          Note that the git hash that was switched to and the github reference match. So, no, this fix isn't in 2.8.2. I suspect what's in 2.8.2 vs. what JIRA thinks are in 2.8.2 is wildly wrong, again, because the branch was cut way too long ago and most people don't realize that branch-2.8 is actually 2.8.3 now. It's a mess generated by aggressive RMs that then fall off the face of the earth, but it doesn't appear the PMC really cares about this problem enough to put an end to it. Given that 2.8.1 was voted as a valid release almost 2 months ago and still hasn't seen the light of day says a lot.

          Show
          aw Allen Wittenauer added a comment - The fix version says otherwise. Well, it's wrong. One of the nice things about Yetus is that it reveals quite a bit about what is happening. Yetus switched to 2.8.2 based upon your patch name: From https://builds.apache.org/job/PreCommit-HADOOP-Build/12784/consoleFull: HEAD is now at 5cf6a1a YARN-6805. NPE in LinuxContainerExecutor due to null PrivilegedOperationException exit code. Contributed by Jason Lowe Testing HADOOP-14521 patch on branch-2.8.2. and then processed these lines https://github.com/apache/hadoop/blob/5cf6a1af0f1d1abdd7e9d29d5b427d554991c7dd/dev-support/docker/Dockerfile#L83-L85 which then blew up. Note that the git hash that was switched to and the github reference match. So, no, this fix isn't in 2.8.2. I suspect what's in 2.8.2 vs. what JIRA thinks are in 2.8.2 is wildly wrong, again, because the branch was cut way too long ago and most people don't realize that branch-2.8 is actually 2.8.3 now. It's a mess generated by aggressive RMs that then fall off the face of the earth, but it doesn't appear the PMC really cares about this problem enough to put an end to it. Given that 2.8.1 was voted as a valid release almost 2 months ago and still hasn't seen the light of day says a lot.
          Hide
          shahrs87 Rushabh S Shah added a comment -

          It was my patch naming conventions that was the root cause.
          My patch name was HADOOP-14521-branch-2.8.2.patch
          The convention I followed was

          <jira#>-<target-branch>-<version#>.patch 

          But the last 2 components was a valid branch name.
          Sorry for the noise.

          Show
          shahrs87 Rushabh S Shah added a comment - It was my patch naming conventions that was the root cause. My patch name was HADOOP-14521 -branch-2.8.2.patch The convention I followed was <jira#>-<target-branch>-<version#>.patch But the last 2 components was a valid branch name. Sorry for the noise.
          Hide
          shahrs87 Rushabh S Shah added a comment -

          branch-2.8.2 didn't get this fix

          The fix version says otherwise.
          In any case, can we backport it to branch-2.8 pls ?

          Show
          shahrs87 Rushabh S Shah added a comment - branch-2.8.2 didn't get this fix The fix version says otherwise. In any case, can we backport it to branch-2.8 pls ?
          Hide
          aw Allen Wittenauer added a comment -

          branch-2.8.2 didn't get this fix because it was already cut months before this change landed in branch-2.8. Stuff like this is always going to fall through the cracks when branches are cut months and years in advance of an actual release.

          Show
          aw Allen Wittenauer added a comment - branch-2.8.2 didn't get this fix because it was already cut months before this change landed in branch-2.8. Stuff like this is always going to fall through the cracks when branches are cut months and years in advance of an actual release.
          Hide
          shahrs87 Rushabh S Shah added a comment - - edited

          Hi All,
          One recent precommit build failed.
          https://builds.apache.org/job/PreCommit-HADOOP-Build/12784/console
          Its failing running this line:

          RUN apt-get -q install --no-install-recommends -y oracle-java7-installer
          

          I see in the patch, it removed the above line.
          Akira Ajisaka: can you please take a look ?

          Show
          shahrs87 Rushabh S Shah added a comment - - edited Hi All, One recent precommit build failed. https://builds.apache.org/job/PreCommit-HADOOP-Build/12784/console Its failing running this line: RUN apt-get -q install --no-install-recommends -y oracle-java7-installer I see in the patch, it removed the above line. Akira Ajisaka : can you please take a look ?
          Hide
          ajisakaa Akira Ajisaka added a comment -

          Thanks everyone for the discussion and reviews, and thanks Xiao Chen for the commits.

          Show
          ajisakaa Akira Ajisaka added a comment - Thanks everyone for the discussion and reviews, and thanks Xiao Chen for the commits.
          Hide
          xiaochen Xiao Chen added a comment -

          Thanks Allen, created HADOOP-14480 for the long shot.

          Show
          xiaochen Xiao Chen added a comment - Thanks Allen, created HADOOP-14480 for the long shot.
          Hide
          aw Allen Wittenauer added a comment -

          As a sidenote, I hope people are aware this is likely "the first shot". I wouldn't be surprised to see Oracle JDK 8 eventually also require an Oracle account. We should probably consider moving off of Oracle JDKs in the Dockerfile completely.

          Show
          aw Allen Wittenauer added a comment - As a sidenote, I hope people are aware this is likely "the first shot". I wouldn't be surprised to see Oracle JDK 8 eventually also require an Oracle account. We should probably consider moving off of Oracle JDKs in the Dockerfile completely.
          Hide
          xiaochen Xiao Chen added a comment -

          Pushed to branch-2 and all the way down to branch-2.6, should make pre-commit happy.

          Thanks Akira for the fix, Allen for review, and everyone for discussion!

          Show
          xiaochen Xiao Chen added a comment - Pushed to branch-2 and all the way down to branch-2.6, should make pre-commit happy. Thanks Akira for the fix, Allen for review, and everyone for discussion!
          Hide
          xiaochen Xiao Chen added a comment -

          Thanks Allen Wittenauer for kicking off a jenkins job and reviewing.

          This should probably work. +1

          +1... will commit shortly.

          Show
          xiaochen Xiao Chen added a comment - Thanks Allen Wittenauer for kicking off a jenkins job and reviewing. This should probably work. +1 +1... will commit shortly.
          Hide
          aw Allen Wittenauer added a comment -

          This should probably work. +1

          Show
          aw Allen Wittenauer added a comment - This should probably work. +1
          Hide
          hadoopqa Hadoop QA added a comment -
          +1 overall



          Vote Subsystem Runtime Comment
          0 reexec 13m 1s Docker mode activated.
          +1 @author 0m 0s The patch does not contain any @author tags.
          0 mvndep 1m 11s Maven dependency ordering for branch
          0 mvndep 0m 17s Maven dependency ordering for patch
          +1 shellcheck 0m 0s There were no new shellcheck issues.
          +1 shelldocs 0m 8s There were no new shelldocs issues.
          +1 whitespace 0m 0s The patch has no whitespace issues.
          +1 asflicense 0m 18s The patch does not generate ASF License warnings.
          15m 22s



          Subsystem Report/Notes
          Docker Image:yetus/hadoop:8515d35
          JIRA Issue HADOOP-14474
          JIRA Patch URL https://issues.apache.org/jira/secure/attachment/12870747/HADOOP-14474-branch-2.01.patch
          Optional Tests asflicense shellcheck shelldocs
          uname Linux a9eee9084235 3.13.0-116-generic #163-Ubuntu SMP Fri Mar 31 14:13:22 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
          Build tool maven
          Personality /testptch/hadoop/patchprocess/precommit/personality/provided.sh
          git revision branch-2 / 8e119f1
          shellcheck v0.4.6
          modules C: U:
          Console output https://builds.apache.org/job/PreCommit-HADOOP-Build/12434/console
          Powered by Apache Yetus 0.5.0-SNAPSHOT http://yetus.apache.org

          This message was automatically generated.

          Show
          hadoopqa Hadoop QA added a comment - +1 overall Vote Subsystem Runtime Comment 0 reexec 13m 1s Docker mode activated. +1 @author 0m 0s The patch does not contain any @author tags. 0 mvndep 1m 11s Maven dependency ordering for branch 0 mvndep 0m 17s Maven dependency ordering for patch +1 shellcheck 0m 0s There were no new shellcheck issues. +1 shelldocs 0m 8s There were no new shelldocs issues. +1 whitespace 0m 0s The patch has no whitespace issues. +1 asflicense 0m 18s The patch does not generate ASF License warnings. 15m 22s Subsystem Report/Notes Docker Image:yetus/hadoop:8515d35 JIRA Issue HADOOP-14474 JIRA Patch URL https://issues.apache.org/jira/secure/attachment/12870747/HADOOP-14474-branch-2.01.patch Optional Tests asflicense shellcheck shelldocs uname Linux a9eee9084235 3.13.0-116-generic #163-Ubuntu SMP Fri Mar 31 14:13:22 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux Build tool maven Personality /testptch/hadoop/patchprocess/precommit/personality/provided.sh git revision branch-2 / 8e119f1 shellcheck v0.4.6 modules C: U: Console output https://builds.apache.org/job/PreCommit-HADOOP-Build/12434/console Powered by Apache Yetus 0.5.0-SNAPSHOT http://yetus.apache.org This message was automatically generated.
          Hide
          hadoopqa Hadoop QA added a comment -

          A patch to the testing environment has been detected.
          Re-executing against the patched versions to perform further tests.
          The console is at https://builds.apache.org/job/PreCommit-HADOOP-Build/12434/console in case of problems.

          Show
          hadoopqa Hadoop QA added a comment - A patch to the testing environment has been detected. Re-executing against the patched versions to perform further tests. The console is at https://builds.apache.org/job/PreCommit-HADOOP-Build/12434/console in case of problems.
          Hide
          xiaochen Xiao Chen added a comment -

          Saw branch-2 failures too, thanks Akira Ajisaka for reporting the issue and providing a fix, and other for commenting.

          Can we push this to unblock branch-2, and continue the discussion for a final solution in the meantime?

          Show
          xiaochen Xiao Chen added a comment - Saw branch-2 failures too, thanks Akira Ajisaka for reporting the issue and providing a fix, and other for commenting. Can we push this to unblock branch-2, and continue the discussion for a final solution in the meantime?
          Hide
          kihwal Kihwal Lee added a comment -

          A local cache almost certainly counts as redistribution.

          IANAL, but if the access to the copy is restricted to the user who downloaded it, it doesn't seem like redistribution. In any case, I think switching to OpenJDK 7 is reasonable.

          Show
          kihwal Kihwal Lee added a comment - A local cache almost certainly counts as redistribution. IANAL, but if the access to the copy is restricted to the user who downloaded it, it doesn't seem like redistribution. In any case, I think switching to OpenJDK 7 is reasonable.
          Hide
          aw Allen Wittenauer added a comment -

          (or someone can +1 YETUS-508, which would also fix this issue)

          Show
          aw Allen Wittenauer added a comment - (or someone can +1 YETUS-508 , which would also fix this issue)
          Hide
          aw Allen Wittenauer added a comment -

          Looks like INFRA trashed Maven on some of the build nodes which is why Yetus isn't processing this patch (and probably others). I guess I'll hard code builds to maven 3.3.3 .

          Show
          aw Allen Wittenauer added a comment - Looks like INFRA trashed Maven on some of the build nodes which is why Yetus isn't processing this patch (and probably others). I guess I'll hard code builds to maven 3.3.3 .
          Hide
          aw Allen Wittenauer added a comment -

          Redistributing the Oracle JDK binaries are prohibited by Oracle's license. (This is one of the reasons why Apache Yetus uses a Dockerfile rather than a pre-built binary image.) A local cache almost certainly counts as redistribution.

          Show
          aw Allen Wittenauer added a comment - Redistributing the Oracle JDK binaries are prohibited by Oracle's license. (This is one of the reasons why Apache Yetus uses a Dockerfile rather than a pre-built binary image.) A local cache almost certainly counts as redistribution.
          Hide
          kihwal Kihwal Lee added a comment - - edited

          I have no problem using OpenJDK, but having a local cache sounds reasonable for this kind of frequent downloading.

          Acoording to this,
          https://askubuntu.com/questions/920106/webupd8-oracle-java-7-installer-failing-with-404
          https://stackoverflow.com/questions/44213454/not-able-to-install-oracle-jdk-on-centos-machine-using-wget/44311091#44311091

          They changed it so that an Oracle account is required to download old java releases including jdk7. So our options are 1) serve it from our own copy or 2) switch to OpenJDK.

          Show
          kihwal Kihwal Lee added a comment - - edited I have no problem using OpenJDK, but having a local cache sounds reasonable for this kind of frequent downloading. Acoording to this, https://askubuntu.com/questions/920106/webupd8-oracle-java-7-installer-failing-with-404 https://stackoverflow.com/questions/44213454/not-able-to-install-oracle-jdk-on-centos-machine-using-wget/44311091#44311091 They changed it so that an Oracle account is required to download old java releases including jdk7. So our options are 1) serve it from our own copy or 2) switch to OpenJDK.
          Hide
          openinx Zheng Hu added a comment -

          HBase has the same problem now. But in our view, Oracle JDK will be more common in production settings, so we prefer to use oracle jdk7 for PreCommit.

          The current problem is: we got 404 not found returned when we install jdk7 ( Oracle Corp changed the jdk7 download link and need accept it's license & login with oracle account ) .
          Could we download JDK7 from our own server ( HBase team & Hadoop team can share the JDK7), which is independent of oracle's ?

          Show
          openinx Zheng Hu added a comment - HBase has the same problem now. But in our view, Oracle JDK will be more common in production settings, so we prefer to use oracle jdk7 for PreCommit. The current problem is: we got 404 not found returned when we install jdk7 ( Oracle Corp changed the jdk7 download link and need accept it's license & login with oracle account ) . Could we download JDK7 from our own server ( HBase team & Hadoop team can share the JDK7), which is independent of oracle's ?
          Hide
          ajisakaa Akira Ajisaka added a comment -

          branch-2.8 failure: https://builds.apache.org/job/PreCommit-YARN-Build/16059/console

          Setting up oracle-java7-installer (7u80+7u60arm-0~webupd8~1) ...
          Downloading Oracle Java 7...
          --2017-05-31 21:07:40--  http://download.oracle.com/otn-pub/java/jdk/7u80-b15/jdk-7u80-linux-x64.tar.gz
          Resolving download.oracle.com (download.oracle.com)... 184.25.56.53, 184.25.56.42
          Connecting to download.oracle.com (download.oracle.com)|184.25.56.53|:80... connected.
          HTTP request sent, awaiting response... 302 Moved Temporarily
          Location: https://edelivery.oracle.com/otn-pub/java/jdk/7u80-b15/jdk-7u80-linux-x64.tar.gz [following]
          --2017-05-31 21:07:40--  https://edelivery.oracle.com/otn-pub/java/jdk/7u80-b15/jdk-7u80-linux-x64.tar.gz
          Resolving edelivery.oracle.com (edelivery.oracle.com)... 23.39.16.136, 2600:1409:a:183::2d3e, 2600:1409:a:193::2d3e
          Connecting to edelivery.oracle.com (edelivery.oracle.com)|23.39.16.136|:443... connected.
          HTTP request sent, awaiting response... 302 Moved Temporarily
          Location: http://download.oracle.com/otn-pub/java/jdk/7u80-b15/jdk-7u80-linux-x64.tar.gz?AuthParam=1496264980_00e15e8506d6a3eabcb9dbb52a0dd3b3 [following]
          --2017-05-31 21:07:40--  http://download.oracle.com/otn-pub/java/jdk/7u80-b15/jdk-7u80-linux-x64.tar.gz?AuthParam=1496264980_00e15e8506d6a3eabcb9dbb52a0dd3b3
          Connecting to download.oracle.com (download.oracle.com)|184.25.56.53|:80... connected.
          HTTP request sent, awaiting response... 404 Not Found
          2017-05-31 21:07:41 ERROR 404: Not Found.
          
          download failed
          Oracle JDK 7 is NOT installed.
          dpkg: error processing package oracle-java7-installer (--configure):
           subprocess installed post-installation script returned error exit status 1
          Errors were encountered while processing:
           oracle-java7-installer
          E: Sub-process /usr/bin/dpkg returned an error code (1)
          The command '/bin/sh -c apt-get -q install --no-install-recommends -y oracle-java7-installer' returned a non-zero code: 100
          
          Show
          ajisakaa Akira Ajisaka added a comment - branch-2.8 failure: https://builds.apache.org/job/PreCommit-YARN-Build/16059/console Setting up oracle-java7-installer (7u80+7u60arm-0~webupd8~1) ... Downloading Oracle Java 7... --2017-05-31 21:07:40-- http://download.oracle.com/otn-pub/java/jdk/7u80-b15/jdk-7u80-linux-x64.tar.gz Resolving download.oracle.com (download.oracle.com)... 184.25.56.53, 184.25.56.42 Connecting to download.oracle.com (download.oracle.com)|184.25.56.53|:80... connected. HTTP request sent, awaiting response... 302 Moved Temporarily Location: https://edelivery.oracle.com/otn-pub/java/jdk/7u80-b15/jdk-7u80-linux-x64.tar.gz [following] --2017-05-31 21:07:40-- https://edelivery.oracle.com/otn-pub/java/jdk/7u80-b15/jdk-7u80-linux-x64.tar.gz Resolving edelivery.oracle.com (edelivery.oracle.com)... 23.39.16.136, 2600:1409:a:183::2d3e, 2600:1409:a:193::2d3e Connecting to edelivery.oracle.com (edelivery.oracle.com)|23.39.16.136|:443... connected. HTTP request sent, awaiting response... 302 Moved Temporarily Location: http://download.oracle.com/otn-pub/java/jdk/7u80-b15/jdk-7u80-linux-x64.tar.gz?AuthParam=1496264980_00e15e8506d6a3eabcb9dbb52a0dd3b3 [following] --2017-05-31 21:07:40-- http://download.oracle.com/otn-pub/java/jdk/7u80-b15/jdk-7u80-linux-x64.tar.gz?AuthParam=1496264980_00e15e8506d6a3eabcb9dbb52a0dd3b3 Connecting to download.oracle.com (download.oracle.com)|184.25.56.53|:80... connected. HTTP request sent, awaiting response... 404 Not Found 2017-05-31 21:07:41 ERROR 404: Not Found. download failed Oracle JDK 7 is NOT installed. dpkg: error processing package oracle-java7-installer (--configure): subprocess installed post-installation script returned error exit status 1 Errors were encountered while processing: oracle-java7-installer E: Sub-process /usr/bin/dpkg returned an error code (1) The command '/bin/sh -c apt-get -q install --no-install-recommends -y oracle-java7-installer' returned a non-zero code: 100

            People

            • Assignee:
              ajisakaa Akira Ajisaka
              Reporter:
              ajisakaa Akira Ajisaka
            • Votes:
              0 Vote for this issue
              Watchers:
              12 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development