Daftar Patch untuk Amazon Corretto 8 - Amazon Corretto

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Daftar Patch untuk Amazon Corretto 8

Bagian ini mencantumkan semua patch yang diterapkan pada OpenJDK untuk Amazon Corretto 8. Kami juga menyediakan tautan ke masalah dalam proyek OpenJDK.

[C8-1] Mencegah OutOfMemoryException dini saat pemanggilan G1 GC ditangguhkan oleh panggilan asli yang berjalan lama.

Program yang menggunakan G1 GC dapat mengalami palsu out-of-memory (OOM) pengecualian bahkan ketika tumpukan Java jauh dari diisi. Hal ini terjadi ketika spin loop yang menunggu lama berjalan panggilan asli menyerah setelah hanya dua putaran. Patch kecil ini membuat loop ini menunggu selama dibutuhkan. Biasanya beberapa putaran lagi cukup. Kasus terburuk, GC penuh akhirnya akan terjadi (berkat JDK-8137099) dan juga menyelesaikan masalah ini. Patch termasuk unit test yang memprovokasi membutuhkan lebih dari dua putaran, dan berhasil hanya jika patch di tempat. LihatJDK-8137099untuk diskusi.

[C8-2] Kembali port dari OpenJDK 10, memperbaikiJDK-8177809: “File.lastModified () kehilangan milidetik (selalu berakhir dengan 000)”.

Patch menghapus inkonsistensi dalam bagaimana stempel waktu terakhir yang dimodifikasi dari file dilaporkan. Ini menstandarisasi perilaku di seluruh platform build dan metode Java sehingga pengguna menerima presisi tingkat kedua. LihatJDK-8177809.

[C8-3] Kembali port dari OpenJDK9,memperbaiki JDK-8150013, “PARNew: Prune nmethod daftar scavengable”.

Patch ini mengurangi latensi jeda untuk Paralel dan pengumpul sampah CMS. GC “root scanning” mempercepat hingga tiga urutan besarnya dengan mengurangi pemeriksaan kode berlebihan.

[C8-4] Kembali port dari OpenJDK 9, memperbaikiJDK-8047338: “javac tidak benar penyaringan metode non-anggota untuk mendapatkan fungsi descriptor”.

Patch ini memperbaiki bug kompilator yang menyebabkan kesalahan waktu kompilasi ketika antarmuka fungsional melemparkan pengecualian yang memperpanjangPengecualian.

[C8-5] Kembali port dari OpenJDK 10, memperbaikiJDK-8144185: “javac menghasilkan atribut panjang RuntimeInvisibleTypeAnnotations yang salah”.

Masalah ini membuat Findbugs, JaCoCo, dan Checker Framework gagal pada beberapa program masukan yang terbentuk dengan baik.

[C8-6] Pemicu pembersihan tabel string di G1 berdasarkan pertumbuhan tabel string.

Patch ini memicu “campuran” koleksi G1 yang diperlukan untuk membersihkan entri tabel string berdasarkan pertumbuhan tabel string, bukan hanya Java heap use. Yang terakhir adalah pengukuran independen dan mungkin memicu terlalu jarang atau bahkan tidak pernah, dalam beberapa aplikasi. Kemudian tabel string dapat tumbuh tanpa batas, yang secara efektif kebocoran memori asli. LihatJDK-8213198.

[C8-7] Backport dari OpenJDK 9, memperbaikiJDK-8149442: “MonitorInUseLists harus aktif secara default, mengempis monitor idle terlalu lama”.

Patch ini membuat menghapus hambatan kinerja untuk aplikasi yang sangat intensif benang sebagai pengaturan default. Mengaktifkan MonitorInUseLists memungkinkan deflasi yang lebih efisien hanya monitor yang berpotensi digunakan, bukan seluruh populasi monitor.

[C8-8] Kembali port dari OpenJDK 11, memperbaikiJDK-8198794: “Hotspot crash pada Cassandra 3.11.1 startup dengan libnuma 2.0.3”.

Patch ini mencegah Cassandra 3.11.1 menabrak saat startup.

[C8-9] Kembali port dari OpenJDK 11, memperbaikiJDK-8195115: “G1 Old Gen MemoryPool CollectionUsage.Used values tidak mencerminkan hasil GC campuran”.

Tanpa patch ini, tidak mungkin untuk menentukan seberapa penuh tumpukan dengan cara JMX saat menggunakan G1 GC.

[C8-10] Mempercepat Class.getSimpleName () dan Class.getCanonicalName ().

Hafalan sangat mempercepat fungsi-fungsi ini. Patch ini termasuk tes unit kebenaran. LihatJDK-8187123.

[C8-11] Kembali port JDK-8068736 dari OpenJDK9, memperbaiki “Hindari sinkronisasi pada Executable/Field.DeclaredAnnotations”.

Meningkatkan kinerja executable/field.declaredAnnotations () dengan hasil caching yang menghindari sinkronisasi benang.

[C8-12] Kembali port dari OpenJDK 9, memperbaikiJDK-8077605: “Menginisialisasi bidang statis menyebabkan rekursi tak terbatas di javac”.
[C8-13] Tetap JDK-8130493: “javac diam-diam mengabaikan kelas cacat dalam prosesor anotasi”.

javac diam-diam menelan file kelas cacat dalam prosesor anotasi dan kembali dengan kode keluar 0. Dengan patch ini, javac melaporkan pesan kesalahan dan kembali dengan kode keluar nonkosong.

[C8-14] Peningkatan pesan kesalahan untuk alat jmap.

Pesan kesalahan yang diperbarui untuk menyarankan pendekatan tambahan saat proses target tidak responsif. LihatJDK-8213443.

[C8-15] Tetap JDK-8185005: “Meningkatkan kinerja ThreadMXBean.getThreadInfo (id panjang [], int MaxDepth)”.

Patch ini meningkatkan kinerja fungsi JVM-internal yang mencari contoh Java Thread dari ID thread OS. Ini menguntungkan beberapa panggilan ThreadMXBean seperti getThreadInfo (), getThreadCpuTime (), dan getThreadUserTime (). Peningkatan kinerja relatif meningkat dengan jumlah benang di JVM, sebagai pencarian linier digantikan oleh pencarian tabel hash.

[C8-16] Kembali port dari OpenJDK 12, memperbaikiJDK-8206075: “Pada x86, menegaskan pada label assembler terikat digunakan sebagai target cabang”.

contoh kelas label (digunakan untuk mendefinisikan kode pseudo-assembly) dapat digunakan secara tidak benar di kedua C1 dan Interpreter. Kesalahan paling umum untuk label adalah “bercabang ke” tetapi tidak pernah didefinisikan sebagai lokasi dalam kode melalui bind (). Sebuah menegaskan ditambahkan untuk menangkap ini dan dengan demikian dipicu 106 jtreg/hotspot dan 17 kegagalan uji jtreg/jdk. Kami kemudian menentukan bahwa label backedge_counter_overflow tidak terikat ketika UseLoopCounter adalah True, tetapi UseOnStackReplacement adalah False. Ini sekarang diperbaiki dan dijaga oleh tes di atas.

[C8-17] Meningkatkan portabilitas kode sumber JVM saat menggunakan gcc7.

Patch ini menempatkan deklarasi tipe terbaru di semua tempat di mana saklar gcc “-WNo-Deprecated-deklarasi” akan menandai masalah. Hal ini juga memungkinkan beralih untuk menangkap masalah terkait masa depan. Hal ini membuat kompilasi kode sumber pada semua versi Amazon Linux yang ada. Ini adalah kombinasi dari banyakJDK-8152856,JDK-8184309,JDK-8185826,JDK-8185900,JDK-8187676,JDK-8196909,JDK-8196985,JDK-8199685,JDK-8200052,JDK-8200110,JDK-8209786,JDK-8210836,JDK-8211146,JDK-8211370,JDK-8211929,JDK-8213414, danJDK-8213575.

[C8-18] Kembali port dari JDK 10, memperbaikiJDK-8195848: “Tes JTREG untuk StartManagementAgent gagal”.

Lihathttp://serviceability-dev.openjdk.java.narkive.com/cDFwZce9untuk lebih jelasnya.

[C8-19] Re-memungkinkan warisan/cacat cipher suite untuk lulus dua tes TCK yang dinyatakan akan gagal.

 

Tiga backports dari OpenJDK9 untuk mendukung menggunakan pustaka terinstal.

Item backported: JDK-8043805 untuk libjpeg,JDK-8035341 untuk libpng, danJDK-8042159 untuk lcms2.

Integrasi dukungan aarch64 dari IcedTea 3.8.

 

Pembaruan metadata terkait vendor.

Mengidentifikasi Amazon sebagai vendor distribusi OpenJDK ini dan menambahkan hyperlink untuk melaporkan masalah.

Kembali port dari OpenJDK 9, memperbaikiJDK-8048782: “OpenJDK: PiscesCache: xmax/ymax pembulatan dapat menyebabkan RasterFormatException”.

Bug ini terkait dengan konstruktor sun.java2d.pisces.piscesCache yang menerima '(int minx, int miny, int maxx, int maxy)' argumen: internal 'BBoxX1' dan 'BBoXy1' diatur ke nilai satu lebih besar dari nilai X dan Y maksimum yang diberikan.