{"id":229541,"date":"2022-10-24T17:58:37","date_gmt":"2022-10-25T00:58:37","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/java\/?p=229541"},"modified":"2023-03-27T13:52:23","modified_gmt":"2023-03-27T20:52:23","slug":"microsoft-build-of-openjdk-october-2022-psu-release","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/java\/microsoft-build-of-openjdk-october-2022-psu-release\/","title":{"rendered":"Microsoft Build of OpenJDK &#8211; October 2022 PSU Release"},"content":{"rendered":"<p>We are happy to announce the latest patch &amp; security update release for the <a href=\"https:\/\/www.microsoft.com\/openjdk\">Microsoft Build of OpenJDK<\/a>. You can find the usual updates from the OpenJDK upstream community:<\/p>\n<ul>\n<li><a href=\"https:\/\/bugs.openjdk.org\/browse\/JDK-8295056?jql=project%20%3D%20JDK%20AND%20status%20in%20(Resolved%2C%20Closed)%20AND%20fixVersion%20%3D%2017.0.5%20ORDER%20BY%20created%20DESC\">List of fixes in OpenJDK 17<\/a><\/li>\n<li><a href=\"https:\/\/bugs.openjdk.org\/browse\/JDK-8295057?jql=project%20%3D%20JDK%20AND%20status%20in%20(Resolved%2C%20Closed)%20AND%20fixVersion%20%3D%2011.0.17%20ORDER%20BY%20created%20DESC\">List of fixes in OpenJDK 11<\/a><\/li>\n<\/ul>\n<p>And you can also see the additional work that our team has put in place in our builds through the <a href=\"https:\/\/learn.microsoft.com\/en-us\/java\/openjdk\/release-notes\">release notes<\/a>. Starting with this release, developers can also see the exact changes we specifically made to our builds by inspecting the source code in our newly established Microsoft repositories for <a href=\"https:\/\/github.com\/microsoft\/openjdk-jdk17u\/tree\/release\/jdk-17.0.5_8\">jdk17u<\/a> and <a href=\"https:\/\/github.com\/microsoft\/openjdk-jdk11u\/tree\/release\/jdk-11.0.17_8\">jdk11u<\/a>.<\/p>\n<h3>New Experimental Feature<\/h3>\n<p>In this release, we have added a new experimental feature to improve the results of Escape Analysis by increasing the number of opportunities for Scalar Replacement. The goal of this feature is to simplify object allocation merges in order to promote Scalar Replacement of the objects involved in the merge. A simpler version of this enhancement has been added to JDK 11, whereas a version that exploits more opportunities has been added to JDK 17. Discussions on this optimization can be found in the\u00a0<a class=\"fui-Link ___m14voj0 f3rmtva f1ern45e f1deefiw f1n71otn f1q5o8ev f1h8hb77 f1vxd6vx f1ewtqcl fyind8e f1k6fduh f1w7gpdv fk6fouc fjoy568 figsok6 f1hu3pq6 f11qmguv f19f4twv f1tyq0we f1g0x7ka fhxju0i f1qch9an f1cnd47f fqv5qza f1vmzxwi f1o700av f13mvf36 f9n3di6 f1ids18y fygtlnl f1deo86v f12x56k7 f1iescvh ftqa4ok f50u1b5 fs3pq8b f1hghxdh f1tymzes f1x7u7e9 f1cmlufx f10aw75t fsle3fq\" tabindex=\"-1\" title=\"https:\/\/mail.openjdk.org\/pipermail\/hotspot-compiler-dev\" href=\"https:\/\/mail.openjdk.org\/pipermail\/hotspot-compiler-dev\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Link hotspot-compiler-dev\">hotspot-compiler-dev<\/a>\u00a0mailing list. For the latest, evolving version of this optimization, please see the\u00a0<a class=\"fui-Link ___m14voj0 f3rmtva f1ern45e f1deefiw f1n71otn f1q5o8ev f1h8hb77 f1vxd6vx f1ewtqcl fyind8e f1k6fduh f1w7gpdv fk6fouc fjoy568 figsok6 f1hu3pq6 f11qmguv f19f4twv f1tyq0we f1g0x7ka fhxju0i f1qch9an f1cnd47f fqv5qza f1vmzxwi f1o700av f13mvf36 f9n3di6 f1ids18y fygtlnl f1deo86v f12x56k7 f1iescvh ftqa4ok f50u1b5 fs3pq8b f1hghxdh f1tymzes f1x7u7e9 f1cmlufx f10aw75t fsle3fq\" tabindex=\"-1\" title=\"https:\/\/github.com\/openjdk\/jdk\/pull\/9073\" href=\"https:\/\/github.com\/openjdk\/jdk\/pull\/9073\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Link PR\">Pull Request<\/a>\u00a0currently being reviewed on tip.<\/p>\n<p>When testing the JDK 17 version of this optimization on internal benchmarks, we saw an increase in the number of Scalar Replacements of 3%-8% across multiple workloads, as well as increases in throughput of 2%. The JDK 11 version of this optimization has demonstrated an 8% decrease in average P99 latency in a memory-hungry production service. Further performance testing is pending.<\/p>\n<p>To enable this feature, developers must use the following JVM flags:<\/p>\n<pre style=\"padding-left: 40px;\">-XX:+UnlockExperimentalVMOptions -XX:+ReduceAllocationMerges<\/pre>\n<p>Join the discussion on the new Escape Analysis work by visiting our respective GitHub repositories for\u00a0<a class=\"fui-Link ___m14voj0 f3rmtva f1ern45e f1deefiw f1n71otn f1q5o8ev f1h8hb77 f1vxd6vx f1ewtqcl fyind8e f1k6fduh f1w7gpdv fk6fouc fjoy568 figsok6 f1hu3pq6 f11qmguv f19f4twv f1tyq0we f1g0x7ka fhxju0i f1qch9an f1cnd47f fqv5qza f1vmzxwi f1o700av f13mvf36 f9n3di6 f1ids18y fygtlnl f1deo86v f12x56k7 f1iescvh ftqa4ok f50u1b5 fs3pq8b f1hghxdh f1tymzes f1x7u7e9 f1cmlufx f10aw75t fsle3fq\" tabindex=\"-1\" title=\"https:\/\/github.com\/microsoft\/openjdk-jdk11u\/discussions\/9\" href=\"https:\/\/github.com\/microsoft\/openjdk-jdk11u\/discussions\/9\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Link EA work on OpenJDK 11\">Escape Analysis work on OpenJDK 11<\/a>, and\u00a0<a class=\"fui-Link ___m14voj0 f3rmtva f1ern45e f1deefiw f1n71otn f1q5o8ev f1h8hb77 f1vxd6vx f1ewtqcl fyind8e f1k6fduh f1w7gpdv fk6fouc fjoy568 figsok6 f1hu3pq6 f11qmguv f19f4twv f1tyq0we f1g0x7ka fhxju0i f1qch9an f1cnd47f fqv5qza f1vmzxwi f1o700av f13mvf36 f9n3di6 f1ids18y fygtlnl f1deo86v f12x56k7 f1iescvh ftqa4ok f50u1b5 fs3pq8b f1hghxdh f1tymzes f1x7u7e9 f1cmlufx f10aw75t fsle3fq\" tabindex=\"-1\" title=\"https:\/\/github.com\/microsoft\/openjdk-jdk17u\/discussions\/3\" href=\"https:\/\/github.com\/microsoft\/openjdk-jdk17u\/discussions\/3\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Link EA work on OpenJDK 17\">Escape Analysis work on OpenJDK 17<\/a>.<\/p>\n<p><span style=\"color: inherit; font-family: inherit; font-size: 1.75rem;\">Source code now on GitHub<\/span><\/p>\n<p>Developers can see the changes we applied to our builds of OpenJDK by looking at the GitHub diffs between our source code, and the ones upstream for both OpenJDK 17 and OpenJDK 11:<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/openjdk\/jdk17u\/compare\/master...microsoft:openjdk-jdk17u:release\/jdk-17.0.5_8\">Microsoft jdk17u diff<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/openjdk\/jdk11u\/compare\/master...microsoft:openjdk-jdk11u:release\/jdk-11.0.17_8\">Microsoft jdk11u diff<\/a><\/li>\n<\/ul>\n<p>We have been busy trying to get our internal mirror of OpenJDK out to where our community lives on GitHub and with the October release, we&#8217;ve finally achieved it. There will be a lot of work to get our processes in the state we&#8217;d like them coming over the next few months, but we are happy to finally be where developers want us to be. The only thing we&#8217;ve left internal is our build process for which we drive using Azure DevOps pipelines rather than the GitHub Actions workflows. Note that our Pull Request process has been altered to be fully out in the open and is like what is defined in the OpenJDK sources.<\/p>\n<h3>Container Images<\/h3>\n<p style=\"font-weight: 400;\">We have also updated our container images, and we now include Microsoft CBL-<u>Mariner<\/u> 2.0 as well as OpenJDK 8 images (based on CBL Mariner) with <a href=\"https:\/\/adoptium.net\/\">Eclipse Temurin<\/a> binaries. Images are available in the following repository:<\/p>\n<pre style=\"padding-left: 40px;\">mcr.microsoft.com\/openjdk\/jdk:&lt;tag&gt;<\/pre>\n<h4>List of tags<\/h4>\n<table style=\"font-weight: 400; width: 82.139684%; height: 182px;\" width=\"662\">\n<thead>\n<tr style=\"height: 43px;\">\n<td style=\"height: 43px;\" width=\"198\"><strong>Base OS<\/strong><\/td>\n<td style=\"height: 43px;\" width=\"127\"><strong>OpenJDK 17<\/strong><\/td>\n<td style=\"height: 43px;\" width=\"143\"><strong>OpenJDK 11<\/strong><\/td>\n<td style=\"height: 43px;\" width=\"111\"><strong>OpenJDK 8<\/strong><\/td>\n<\/tr>\n<\/thead>\n<tbody>\n<tr style=\"height: 10px;\">\n<td style=\"height: 10px;\" width=\"198\"><a href=\"https:\/\/nam06.safelinks.protection.outlook.com\/?url=http%3A%2F%2Freleases.ubuntu.com%2Ffocal%2F&amp;data=05%7C01%7CBruno.Borges%40microsoft.com%7Cbc4b68ebfbe64ce498fd08da8aa945f8%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637974759170112027%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=e3hsDaMWQamQuamPmgLHXthW8J8k8jsW4t9JfORGO00%3D&amp;reserved=0\">Ubuntu 20.04<\/a><\/td>\n<td style=\"height: 10px;\" width=\"127\">17-ubuntu<\/td>\n<td style=\"height: 10px;\" width=\"143\">11-ubuntu<\/td>\n<td style=\"height: 10px;\" width=\"111\"><em>N\/A<\/em><\/td>\n<\/tr>\n<tr style=\"height: 43px;\">\n<td style=\"height: 43px;\" width=\"198\"><a href=\"https:\/\/nam06.safelinks.protection.outlook.com\/?url=https%3A%2F%2Fgithub.com%2Fmicrosoft%2FCBL-Mariner&amp;data=05%7C01%7CBruno.Borges%40microsoft.com%7Cbc4b68ebfbe64ce498fd08da8aa945f8%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637974759170268214%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=6DHkhTYQc6UcqhBnc1r3cgBEQRifQNG%2FP82%2B4ZyYvRk%3D&amp;reserved=0\">CBL Mariner 2.0<\/a><\/td>\n<td style=\"height: 43px;\" width=\"127\">17-mariner<\/td>\n<td style=\"height: 43px;\" width=\"143\">11-mariner<\/td>\n<td style=\"height: 43px;\" width=\"111\">8-mariner<\/td>\n<\/tr>\n<tr style=\"height: 43px;\">\n<td style=\"height: 43px;\" width=\"198\"><a href=\"https:\/\/nam06.safelinks.protection.outlook.com\/?url=https%3A%2F%2Fgithub.com%2Fmicrosoft%2FCBL-Mariner&amp;data=05%7C01%7CBruno.Borges%40microsoft.com%7Cbc4b68ebfbe64ce498fd08da8aa945f8%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637974759170268214%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=6DHkhTYQc6UcqhBnc1r3cgBEQRifQNG%2FP82%2B4ZyYvRk%3D&amp;reserved=0\">CBL Mariner 1.0<\/a><\/td>\n<td style=\"height: 43px;\" width=\"127\">17-mariner-cm1<\/td>\n<td style=\"height: 43px;\" width=\"143\">11-mariner-cm1<\/td>\n<td style=\"height: 43px;\" width=\"111\"><em>N\/A<\/em><\/td>\n<\/tr>\n<tr style=\"height: 43px;\">\n<td style=\"height: 43px;\" width=\"198\">CBL-Mariner 2.0 Distroless<\/td>\n<td style=\"height: 43px;\" width=\"127\">17-distroless<\/td>\n<td style=\"height: 43px;\" width=\"143\">11-distroless<\/td>\n<td style=\"height: 43px;\" width=\"111\">8-distroless<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p style=\"font-weight: 400;\">More details can be found in the\u00a0<a href=\"https:\/\/learn.microsoft.com\/java\/openjdk\/containers\">documentation<\/a>.<\/p>\n<h4>Distroless Images<\/h4>\n<p style=\"font-weight: 400;\">Distroless images based on CBL-Mariner 2.0 are now ready and published. Details on how to use them can be found in the\u00a0<a href=\"https:\/\/nam06.safelinks.protection.outlook.com\/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fjava%2Fopenjdk%2Fcontainers%23distroless&amp;data=05%7C01%7CBruno.Borges%40microsoft.com%7Cbc4b68ebfbe64ce498fd08da8aa945f8%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637974759170268214%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=sTe%2B8lkDFqVFIQXwm5a1gbzJUH6234pFE46wNv1ElgQ%3D&amp;reserved=0\">documentation<\/a>.<\/p>\n<h4>AArch64\/Arm64 images<\/h4>\n<p style=\"font-weight: 400;\">If you have a need for AArch64 \/ Arm64\u00a0container images, please join the <a href=\"https:\/\/github.com\/microsoft\/openjdk-docker\/issues\/46\">discussion<\/a> on GitHub.<\/p>\n<h3>Alpine builds<\/h3>\n<p style=\"font-weight: 400;\">Announced back in April, we now have builds of OpenJDK for Alpine. Users who want to use Alpine inside containers must produce their own images &#8211;\u00a0<a href=\"https:\/\/nam06.safelinks.protection.outlook.com\/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fjava%2Fopenjdk%2Fcontainers%23Alpine%2520images&amp;data=05%7C01%7CBruno.Borges%40microsoft.com%7Cbc4b68ebfbe64ce498fd08da8aa945f8%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637974759170268214%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=cW5AsnhQRfMBVdLibL6KlutAb1wNfM29H8dV6x6Aduk%3D&amp;reserved=0\">see documentation<\/a>. Microsoft will not produce Alpine-based container\u00a0images. Alternatively, users are encouraged to use the CBL-Mariner \u201cDistroless\u201d images instead.<\/p>\n<h4 style=\"padding-left: 40px;\"><em>Note\u00a0on CBL-Mariner 1.0<\/em><\/h4>\n<p style=\"padding-left: 40px;\"><i style=\"font-weight: 400;\">The Microsoft\u00a0<\/i><i>distribution of Linux<\/i><i style=\"font-weight: 400;\">\u00a0CBL-Mariner version 1.0 will be retired sometime in 2023.\u00a0For that reason, the existing Mariner-based images of Microsoft Build of OpenJDK under tags 11-mariner and 17-mariner have already been updated to CBL-Mariner 2.0. Users who \u00a0need to remain on CBL-Mariner 1.0 until then, must change their dependencies to the tags 11-mariner-cm1\u200b\u200b\u200b\u200b\u200b\u200b\u200b and 17-mariner-cm1, knowing that these images will eventually be dropped.<\/i><\/p>\n<h4 style=\"padding-left: 40px;\"><em>Note on CBL-D<\/em><\/h4>\n<p style=\"font-weight: 400; padding-left: 40px;\"><em>Following guidance from the Microsoft CBL-D team, we have unlisted &#8211; though it remains available for now &#8211; the CBL-D based images of Microsoft Build of OpenJDK. These images will no longer be updated, and users must move to CBL-Mariner 2.0 as soon as possible. Alternatively, users may opt to the Ubuntu-based images.<\/em><\/p>\n<h3>End of Life: Azul Zulu for Azure<\/h3>\n<p style=\"font-weight: 400;\"><a href=\"https:\/\/devblogs.microsoft.com\/java\/end-of-updates-support-and-availability-of-zulu-for-azure\/\">Announced in June 30th, 2021<\/a>, the Azul Zulu for Azure builds of OpenJDK are no longer supported and no longer updated. The repositories holding those binaries have been removed or will be removed at some point soon by Azul Systems. Users are urged to move to Microsoft Build of OpenJDK binaries for Java 11 and Java 17, or Eclipse Temurin for Java 8.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We are happy to announce the latest patch &amp; security update release for the Microsoft Build of OpenJDK. You can find the usual updates from the OpenJDK upstream community: List of fixes in OpenJDK 17 List of fixes in OpenJDK 11 And you can also see the additional work that our team has put in [&hellip;]<\/p>\n","protected":false},"author":9388,"featured_media":227205,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1,8,249],"tags":[],"class_list":["post-229541","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java","category-open-source","category-openjdk"],"acf":[],"blog_post_summary":"<p>We are happy to announce the latest patch &amp; security update release for the Microsoft Build of OpenJDK. You can find the usual updates from the OpenJDK upstream community: List of fixes in OpenJDK 17 List of fixes in OpenJDK 11 And you can also see the additional work that our team has put in [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/posts\/229541","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/users\/9388"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/comments?post=229541"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/posts\/229541\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/media\/227205"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/media?parent=229541"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/categories?post=229541"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/java\/wp-json\/wp\/v2\/tags?post=229541"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}