Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add detail to initial Java dump topic #79

Merged
merged 1 commit into from
Sep 18, 2018

Conversation

SueChaplain
Copy link
Contributor

Includes sections to cover all the different
parts that make up a Java dump file, with explanations
for the data. Makes use of a very recent javacore
that includes the new cgroup information for
eclipse-openj9/openj9#1932

Signed-off-by: Sue Chaplain [email protected]

@SueChaplain SueChaplain requested a review from pshipton September 6, 2018 17:10
@SueChaplain
Copy link
Contributor Author

Work in progress. @pshipton please can you review what I have so far for accuracy. I wrote it up based on a recent javacore but there are some explanations missing and possibly some errors.

The core file did not have a SHARED CLASSES section as I guess it wasn't enabled. Can you provide me with something please?

Still work to do for THREADS but that's all I have time for this week.

@pshipton
Copy link
Member

Attaching a javacore containing shared cache info. The cgroup info change is not delivered yet so the javacore does not contain this.
javacore.20180910.132612.3586.0001.txt

NULL
```

## THREADS
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is no explanation of the THREADS section.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep, WIP. Will get back to it soon. Thanks for the SHARED CLASSES output.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SHARED CLASSES and THREADS sections now in place. I think that the topic now contains a relatively complete set of information. Do we know if the cgroup PR will go in to 0.10.0 please? If it will not, I'll comment out the parts that relate to it and I think this is good to merge.

What I'd like to do as a separate task is take 2 or 3 specific scenarios (hopefully from service) and create troubleshooting examples. E.g. I got a gpf, what can javadump tell me about the root cause? If we can supplement this topic with those examples, I think the info here is as good as it was in the J9 docs. If you have any thoughts on what the scenarios should be, please let me know.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cgroup PR is still under review and blocked on the docs being ready. It doesn't need to go into 0.10.0, but it depends on when the review comments are suitably addressed and the branch for 0.10.0 occurs. In theory it should go in after 0.10.0 but no guarantees.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gpf or assert, user signal, OOM, deadlock maybe.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the suggestions on scenarios.

For cgroup, I think the docs are ready .... I've got it in the release notes and what's new, plus this javadump topic contains a mention and example output. One of the developers is writing a blog about it, which I might be able to extract more information from later on. If I can get this topic merged I can close the doc issue. Let me know ....

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The cgroup review still needs to close before it can be merged, and the review comments haven't yet been addressed. We were hoping to branch for 0.10.0 tomorrow, but seems likely we won't be ready.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cgroup information removed for 0.10.0


In the following example, the shared classes cache was created with a Class Debug Area (`-Xnolinenumbers=false`). Byte code instrumentation (BCI) is enabled, which is the default, and VMs sharing the cache are allowed to store classpaths, which is also the default.

The `Cache Summary` shows a cache size (`2SCLTEXTCSZ`) of 16776608 bytes, with a soft maximum size (`2SCLTEXTSMB`) also of 16776608 bytes, which leaves 12691668 bytes of free space (`2SCLTEXTFRB`). The size of the Class Debug Area (`2SCLTEXTDAS`) is 1331200 bytes, which uses only 11% of the available space.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

11% is the amount used inside of the class debug area, i.e. 156240 is used out of 1331200.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed, thanks.

- `3XMTHREADINFO3`: Java callstack information (`4XESTACKTRACE`) or Native call stack information (`4XENATIVESTACK`).
- `5XESTACKTRACE`: This line indicates whether locks were taken by a specific method.

Java thread priorities are mapped to operating system priority values. The larger the thread priority, the more frequently the thread runs.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The larger the thread priority, the more frequently the thread runs.
Not necessarily true https://www.linuxjournal.com/node/10267

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, removed that statement.

@SueChaplain SueChaplain force-pushed the javadump branch 2 times, most recently from 46b5d55 to 84404d7 Compare September 17, 2018 15:08
@SueChaplain
Copy link
Contributor Author

Jenkins doc stage

Includes sections to cover all the different
parts that make up a Java dump file, with explanations
for the data. Makes use of a very recent javacore.

Signed-off-by: Sue Chaplain <[email protected]>
@SueChaplain SueChaplain changed the title [WIP] Add detail to initial Java dump topic Add detail to initial Java dump topic Sep 18, 2018
@pmhayward pmhayward merged commit ccf4717 into eclipse-openj9:master Sep 18, 2018
@SueChaplain SueChaplain deleted the javadump branch November 12, 2018 09:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants