From shade at openjdk.org Mon Nov 13 11:31:38 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Mon, 13 Nov 2023 11:31:38 GMT Subject: RFR: 7903579: JOL: Heap dump parser handles superclasses incorrectly Message-ID: Current heap dump parser relies on class records to appear after the superclass records appear. This does not actually hold for hprof: we can emit the subclass records first, and only then emit the superclass records. Therefore, current heap dump reader is broken when it encounters hierarchical classes. It would then underestimate the footprint of subclasses, because it does not record superclasses. ------------- Commit messages: - Fix Changes: https://git.openjdk.org/jol/pull/53/files Webrev: https://webrevs.openjdk.org/?repo=jol&pr=53&range=00 Issue: https://bugs.openjdk.org/browse/CODETOOLS-7903579 Stats: 54 lines in 2 files changed: 37 ins; 6 del; 11 mod Patch: https://git.openjdk.org/jol/pull/53.diff Fetch: git fetch https://git.openjdk.org/jol.git pull/53/head:pull/53 PR: https://git.openjdk.org/jol/pull/53 From shade at openjdk.org Mon Nov 13 11:56:55 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Mon, 13 Nov 2023 11:56:55 GMT Subject: RFR: 7903579: JOL: Heap dump parser handles superclasses incorrectly [v2] In-Reply-To: References: Message-ID: <315ysIsnz80-TxTa-NXdumQEEAYojZxoGdjPblYNG_o=.7dee91c8-4a4b-428c-87ce-19ff46a34304@github.com> > Current heap dump parser relies on class records to appear after the superclass records appear. This does not actually hold for hprof: we can emit the subclass records first, and only then emit the superclass records. > > Therefore, current heap dump reader is broken when it encounters hierarchical classes. If the superclass was not seen before current class is being parsed, the heap dump reader would silently treat the current class as having _no super klasses_ at all. It would then underestimate the class footprint, because it does not record superclasses. Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: Fix up more super klass metadata ------------- Changes: - all: https://git.openjdk.org/jol/pull/53/files - new: https://git.openjdk.org/jol/pull/53/files/b721c6e1..7e4a4872 Webrevs: - full: https://webrevs.openjdk.org/?repo=jol&pr=53&range=01 - incr: https://webrevs.openjdk.org/?repo=jol&pr=53&range=00-01 Stats: 24 lines in 2 files changed: 10 ins; 11 del; 3 mod Patch: https://git.openjdk.org/jol/pull/53.diff Fetch: git fetch https://git.openjdk.org/jol.git pull/53/head:pull/53 PR: https://git.openjdk.org/jol/pull/53 From duke at openjdk.org Mon Nov 13 17:36:38 2023 From: duke at openjdk.org (duke) Date: Mon, 13 Nov 2023 17:36:38 GMT Subject: git: openjdk/jol: 7903579: JOL: Heap dump parser handles superclasses incorrectly Message-ID: <61a5c88f-3690-4cad-a59e-0d3e637fd86d@openjdk.org> Changeset: aa19b082 Author: Aleksey Shipil?v Committer: GitHub Date: 2023-11-13 18:35:29 +0000 URL: https://git.openjdk.org/jol/commit/aa19b0827e23c493dd3e7a893acc81b5dad0cf83 7903579: JOL: Heap dump parser handles superclasses incorrectly ! jol-core/src/main/java/org/openjdk/jol/heap/HeapDumpReader.java ! jol-core/src/main/java/org/openjdk/jol/info/ClassData.java ! jol-core/src/main/java/org/openjdk/jol/util/Multimap.java From shade at openjdk.org Mon Nov 13 17:38:32 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Mon, 13 Nov 2023 17:38:32 GMT Subject: Withdrawn: 7903579: JOL: Heap dump parser handles superclasses incorrectly In-Reply-To: References: Message-ID: On Mon, 13 Nov 2023 11:27:14 GMT, Aleksey Shipilev wrote: > Current heap dump parser relies on class records to appear after the superclass records appear. This does not actually hold for hprof: we can emit the subclass records first, and only then emit the superclass records. > > Therefore, current heap dump reader is broken when it encounters hierarchical classes. If the superclass was not seen before current class is being parsed, the heap dump reader would silently treat the current class as having _no super klasses_ at all. It would then underestimate the class footprint, because it does not record superclasses. This pull request has been closed without being integrated. ------------- PR: https://git.openjdk.org/jol/pull/53 From shade at openjdk.org Fri Nov 17 10:42:13 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 17 Nov 2023 10:42:13 GMT Subject: RFR: 7903583: JOL: Heap dump parser misses superclasses with empty fields Message-ID: <_6qP0AK_xgvtWjJGlv19LGer7hb-rsSVRKMvIEP8sYc=.e9027a08-a19d-488c-85cf-d8cabfc14fd6@github.com> [CODETOOLS-7903579](https://bugs.openjdk.org/browse/CODETOOLS-7903579) was not complete for old layouter. There are still problems when superclasses do not have fields. ------------- Commit messages: - Fix Changes: https://git.openjdk.org/jol/pull/54/files Webrev: https://webrevs.openjdk.org/?repo=jol&pr=54&range=00 Issue: https://bugs.openjdk.org/browse/CODETOOLS-7903583 Stats: 17 lines in 3 files changed: 14 ins; 0 del; 3 mod Patch: https://git.openjdk.org/jol/pull/54.diff Fetch: git fetch https://git.openjdk.org/jol.git pull/54/head:pull/54 PR: https://git.openjdk.org/jol/pull/54 From duke at openjdk.org Fri Nov 17 10:52:09 2023 From: duke at openjdk.org (Sergey Ponomarev) Date: Fri, 17 Nov 2023 10:52:09 GMT Subject: RFR: 7903583: JOL: Heap dump parser misses superclasses with empty fields In-Reply-To: <_6qP0AK_xgvtWjJGlv19LGer7hb-rsSVRKMvIEP8sYc=.e9027a08-a19d-488c-85cf-d8cabfc14fd6@github.com> References: <_6qP0AK_xgvtWjJGlv19LGer7hb-rsSVRKMvIEP8sYc=.e9027a08-a19d-488c-85cf-d8cabfc14fd6@github.com> Message-ID: On Fri, 17 Nov 2023 10:37:21 GMT, Aleksey Shipilev wrote: > [CODETOOLS-7903579](https://bugs.openjdk.org/browse/CODETOOLS-7903579) was not complete for old layouter. There are still problems when superclasses do not have fields. Marked as reviewed by stokito at github.com (no known OpenJDK username). ------------- PR Review: https://git.openjdk.org/jol/pull/54#pullrequestreview-1736624787 From shade at openjdk.org Fri Nov 17 10:56:36 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 17 Nov 2023 10:56:36 GMT Subject: RFR: 7903583: JOL: Heap dump parser misses superclasses with empty fields [v2] In-Reply-To: <_6qP0AK_xgvtWjJGlv19LGer7hb-rsSVRKMvIEP8sYc=.e9027a08-a19d-488c-85cf-d8cabfc14fd6@github.com> References: <_6qP0AK_xgvtWjJGlv19LGer7hb-rsSVRKMvIEP8sYc=.e9027a08-a19d-488c-85cf-d8cabfc14fd6@github.com> Message-ID: <0EIYaNkKQVWIf2MXrKgJw-1aEb8xkYt_E0oHtBa_QDg=.be0aabdb-f246-476f-a44a-e201efecf83a@github.com> > [CODETOOLS-7903579](https://bugs.openjdk.org/browse/CODETOOLS-7903579) was not complete for old layouter. There are still problems when superclasses do not have fields. Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: Also fix test ------------- Changes: - all: https://git.openjdk.org/jol/pull/54/files - new: https://git.openjdk.org/jol/pull/54/files/3f7a88fc..5b7657a3 Webrevs: - full: https://webrevs.openjdk.org/?repo=jol&pr=54&range=01 - incr: https://webrevs.openjdk.org/?repo=jol&pr=54&range=00-01 Stats: 16 lines in 1 file changed: 2 ins; 0 del; 14 mod Patch: https://git.openjdk.org/jol/pull/54.diff Fetch: git fetch https://git.openjdk.org/jol.git pull/54/head:pull/54 PR: https://git.openjdk.org/jol/pull/54 From duke at openjdk.org Fri Nov 17 11:12:42 2023 From: duke at openjdk.org (duke) Date: Fri, 17 Nov 2023 11:12:42 GMT Subject: git: openjdk/jol: 7903583: JOL: Heap dump parser misses superclasses with empty fields Message-ID: Changeset: d0115775 Author: Aleksey Shipil?v Committer: GitHub Date: 2023-11-17 12:11:59 +0000 URL: https://git.openjdk.org/jol/commit/d01157751157360c5bd05fcf4d86ecfd53a4558d 7903583: JOL: Heap dump parser misses superclasses with empty fields ! jol-core/src/main/java/org/openjdk/jol/heap/HeapDumpReader.java ! jol-core/src/main/java/org/openjdk/jol/info/FieldData.java ! jol-core/src/main/java/org/openjdk/jol/util/Multimap.java ! jol-core/src/test/java/org/openjdk/jol/info/ClassDataTest.java From shade at openjdk.org Fri Nov 17 11:15:03 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Fri, 17 Nov 2023 11:15:03 GMT Subject: Withdrawn: 7903583: JOL: Heap dump parser misses superclasses with empty fields In-Reply-To: <_6qP0AK_xgvtWjJGlv19LGer7hb-rsSVRKMvIEP8sYc=.e9027a08-a19d-488c-85cf-d8cabfc14fd6@github.com> References: <_6qP0AK_xgvtWjJGlv19LGer7hb-rsSVRKMvIEP8sYc=.e9027a08-a19d-488c-85cf-d8cabfc14fd6@github.com> Message-ID: <42MFx2seL2N5Gi9r2RqZs4GTK6BUPP_xm9_meHlphQU=.39a22cb6-44b6-43b6-b9c0-a92a2155835f@github.com> On Fri, 17 Nov 2023 10:37:21 GMT, Aleksey Shipilev wrote: > [CODETOOLS-7903579](https://bugs.openjdk.org/browse/CODETOOLS-7903579) was not complete for old layouter. There are still problems when superclasses do not have fields. This pull request has been closed without being integrated. ------------- PR: https://git.openjdk.org/jol/pull/54 From shade at openjdk.org Tue Nov 21 19:44:01 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 21 Nov 2023 19:44:01 GMT Subject: RFR: 7903589: JOL: Rework and amend CLI tools Message-ID: CLI tools need a few touchups. Heapdump utilities, notably, need more work. ------------- Commit messages: - Work Changes: https://git.openjdk.org/jol/pull/55/files Webrev: https://webrevs.openjdk.org/?repo=jol&pr=55&range=00 Issue: https://bugs.openjdk.org/browse/CODETOOLS-7903589 Stats: 1892 lines in 12 files changed: 1721 ins; 73 del; 98 mod Patch: https://git.openjdk.org/jol/pull/55.diff Fetch: git fetch https://git.openjdk.org/jol.git pull/55/head:pull/55 PR: https://git.openjdk.org/jol/pull/55 From shade at openjdk.org Tue Nov 21 19:58:54 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 21 Nov 2023 19:58:54 GMT Subject: RFR: 7903589: JOL: Rework and amend CLI tools [v2] In-Reply-To: References: Message-ID: <_IwLtX9oyqOEbB6028X9yUpY551-sMsudyxew5BzMDQ=.152cf388-1f64-4819-bb52-e9befd236ca9@github.com> > CLI tools need a few touchups. Heapdump utilities, notably, need more work. Aleksey Shipilev has updated the pull request incrementally with two additional commits since the last revision: - More README updates - Cleanups ------------- Changes: - all: https://git.openjdk.org/jol/pull/55/files - new: https://git.openjdk.org/jol/pull/55/files/37ad194e..8649f114 Webrevs: - full: https://webrevs.openjdk.org/?repo=jol&pr=55&range=01 - incr: https://webrevs.openjdk.org/?repo=jol&pr=55&range=00-01 Stats: 75 lines in 4 files changed: 53 ins; 16 del; 6 mod Patch: https://git.openjdk.org/jol/pull/55.diff Fetch: git fetch https://git.openjdk.org/jol.git pull/55/head:pull/55 PR: https://git.openjdk.org/jol/pull/55 From shade at openjdk.org Tue Nov 21 20:18:53 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 21 Nov 2023 20:18:53 GMT Subject: RFR: 7903589: JOL: Rework and amend CLI tools [v3] In-Reply-To: References: Message-ID: > CLI tools need a few touchups. Heapdump utilities, notably, need more work. Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: Update more README ------------- Changes: - all: https://git.openjdk.org/jol/pull/55/files - new: https://git.openjdk.org/jol/pull/55/files/8649f114..a37e94ea Webrevs: - full: https://webrevs.openjdk.org/?repo=jol&pr=55&range=02 - incr: https://webrevs.openjdk.org/?repo=jol&pr=55&range=01-02 Stats: 102 lines in 2 files changed: 8 ins; 3 del; 91 mod Patch: https://git.openjdk.org/jol/pull/55.diff Fetch: git fetch https://git.openjdk.org/jol.git pull/55/head:pull/55 PR: https://git.openjdk.org/jol/pull/55 From shade at openjdk.org Tue Nov 21 20:30:02 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 21 Nov 2023 20:30:02 GMT Subject: RFR: 7903589: JOL: Rework and amend CLI tools [v4] In-Reply-To: References: Message-ID: > CLI tools need a few touchups. Heapdump utilities, notably, need more work. Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision: Cleanups ------------- Changes: - all: https://git.openjdk.org/jol/pull/55/files - new: https://git.openjdk.org/jol/pull/55/files/a37e94ea..aa5ec193 Webrevs: - full: https://webrevs.openjdk.org/?repo=jol&pr=55&range=03 - incr: https://webrevs.openjdk.org/?repo=jol&pr=55&range=02-03 Stats: 34 lines in 3 files changed: 0 ins; 32 del; 2 mod Patch: https://git.openjdk.org/jol/pull/55.diff Fetch: git fetch https://git.openjdk.org/jol.git pull/55/head:pull/55 PR: https://git.openjdk.org/jol/pull/55 From duke at openjdk.org Tue Nov 21 20:43:11 2023 From: duke at openjdk.org (duke) Date: Tue, 21 Nov 2023 20:43:11 GMT Subject: git: openjdk/jol: 7903589: JOL: Rework and amend CLI tools Message-ID: <90477f8a-e852-4cbe-9768-9338a1d358bb@openjdk.org> Changeset: d9e89065 Author: Aleksey Shipil?v Committer: GitHub Date: 2023-11-21 21:40:49 +0000 URL: https://git.openjdk.org/jol/commit/d9e890652b4cec9d155b28a8849dcdaa2706e058 7903589: JOL: Rework and amend CLI tools ! README.md ! jol-cli/src/main/java/org/openjdk/jol/Main.java + jol-cli/src/main/java/org/openjdk/jol/operations/HeapDumpBoxes.java + jol-cli/src/main/java/org/openjdk/jol/operations/HeapDumpDuplicates.java ! jol-cli/src/main/java/org/openjdk/jol/operations/HeapDumpStats.java + jol-cli/src/main/java/org/openjdk/jol/operations/HeapDumpStrings.java ! jol-core/src/main/java/org/openjdk/jol/heap/HeapDumpReader.java ! jol-core/src/main/java/org/openjdk/jol/info/ClassData.java ! jol-core/src/main/java/org/openjdk/jol/info/GraphLayout.java + jol-core/src/main/java/org/openjdk/jol/util/ASCIITable.java ! jol-core/src/main/java/org/openjdk/jol/util/Multimap.java ! jol-core/src/main/java/org/openjdk/jol/util/Multiset.java From shade at openjdk.org Tue Nov 21 20:43:43 2023 From: shade at openjdk.org (Aleksey Shipilev) Date: Tue, 21 Nov 2023 20:43:43 GMT Subject: Withdrawn: 7903589: JOL: Rework and amend CLI tools In-Reply-To: References: Message-ID: <961OIaBdH2d_EFB869YoYEmw8YL8z4EultqtRniprtI=.9c1bedf2-2d11-4d4c-98cf-e2f239e4dc60@github.com> On Tue, 21 Nov 2023 19:38:05 GMT, Aleksey Shipilev wrote: > CLI tools need a few touchups. Heapdump utilities, notably, need more work. This pull request has been closed without being integrated. ------------- PR: https://git.openjdk.org/jol/pull/55