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

[JENKINS-72579] Adjust heap dump file name for compatibility with OpenJDK file suffix requirements #8881

Merged
merged 1 commit into from Jan 24, 2024

Conversation

balaji-sivasakthi
Copy link
Contributor

@balaji-sivasakthi balaji-sivasakthi commented Jan 19, 2024

See JENKINS-72579

Testing done

Done

Proposed changelog entries

  • Adjust heap dump file name for compatibility with OpenJDK file suffix requirements.

Proposed upgrade guidelines

N/A

Submitter checklist

Edit tasklist title
Beta Give feedback Tasklist Submitter checklist, more options

Delete tasklist

Delete tasklist block?
Are you sure? All relationships in this tasklist will be removed.
  1. The Jira issue, if it exists, is well-described.
    Options
  2. The changelog entries and upgrade guidelines are appropriate for the audience affected by the change (users or developers, depending on the change) and are in the imperative mood (see examples). Fill in the Proposed upgrade guidelines section only if there are breaking changes or changes that may require extra steps from users during upgrade.
    Options
  3. There is automated testing or an explanation as to why this change has no tests.
    Options
  4. New public classes, fields, and methods are annotated with @Restricted or have @since TODO Javadocs, as appropriate.
    Options
  5. New deprecations are annotated with @Deprecated(since = "TODO") or @Deprecated(forRemoval = true, since = "TODO"), if applicable.
    Options
  6. New or substantially changed JavaScript is not defined inline and does not call eval to ease future introduction of Content Security Policy (CSP) directives (see documentation).
    Options
  7. For dependency updates, there are links to external changelogs and, if possible, full differentials.
    Options
  8. For new APIs and extension points, there is a link to at least one consumer.
    Options

Desired reviewers

@mention

Before the changes are marked as ready-for-merge:

Maintainer checklist

Edit tasklist title
Beta Give feedback Tasklist Maintainer checklist, more options

Delete tasklist

Delete tasklist block?
Are you sure? All relationships in this tasklist will be removed.
  1. There are at least two (2) approvals for the pull request and no outstanding requests for change.
    Options
  2. Conversations in the pull request are over, or it is explicit that a reviewer is not blocking the change.
    Options
  3. Changelog entries in the pull request title and/or Proposed changelog entries are accurate, human-readable, and in the imperative mood.
    Options
  4. Proper changelog labels are set so that the changelog can be generated automatically.
    Options
  5. If the change needs additional upgrade steps from users, the upgrade-guide-needed label is set and there is a Proposed upgrade guidelines section in the pull request title (see example).
    Options
  6. If it would make sense to backport the change to LTS, a Jira issue must exist, be a Bug or Improvement, and be labeled as lts-candidate to be considered (see query).
    Options

Copy link

welcome bot commented Jan 19, 2024

Yay, your first pull request towards Jenkins core was created successfully! Thank you so much!

A contributor will provide feedback soon. Meanwhile, you can join the chats and community forums to connect with other Jenkins users, developers, and maintainers.

@@ -215,6 +215,8 @@ public void doIndex(StaplerResponse rsp) throws IOException {
@WebMethod(name = "heapdump.hprof")
public void doHeapDump(StaplerRequest req, StaplerResponse rsp) throws IOException, InterruptedException {
owner.checkPermission(Jenkins.ADMINISTER);
String propertyName = "jdk.management.heapdump.allowAnyFileSuffix";
Copy link
Contributor

Choose a reason for hiding this comment

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

wouldn't it be easier to just change the suffix to .hprof in line 179?

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, I changed it.

@basil
Copy link
Member

basil commented Jan 20, 2024

Software testing is necessary to identify and fix any errors or bugs and to ensure the software functions as expected, providing a reliable and user-friendly experience. For this reason, the Testing Done section of the PR template is mandatory, not optional. Can you please confirm that you can start Jenkins with java -jar jenkins.war, complete the setup wizard, and visit http://${JENKINS_URL}/heapDump before and after this change. Before this PR you should get an error, and after this PR your browser should download an hprof heap dump which you should be able to open with e.g. VisualVM. If you can complete all this testing as expected then please update the Testing Done section with the results.

@basil basil self-assigned this Jan 20, 2024
@balaji-sivasakthi
Copy link
Contributor Author

balaji-sivasakthi commented Jan 20, 2024

@basil

Before without .

java.lang.IllegalArgumentException: heapdump file must have .hprof extension
        at jdk.management/com.sun.management.internal.HotSpotDiagnostic.dumpHeap(HotSpotDiagnostic.java:60)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)
        at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:64)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)
        at java.base/sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:97)
        at java.management/com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:193)
        at java.management/com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:175)
        at java.management/com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:115)
        at java.management/com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:52)
        at java.management/com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:236)
        at java.management/com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138)
        at java.management/com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252)
        at java.management/javax.management.StandardMBean.invoke(StandardMBean.java:405)
        at

After including .

Screenshot 2024-01-20 at 11 17 56 AM

@NotMyFault NotMyFault changed the title fix: heap dump suffix allow .hprof [JENKINS-72579] Fix generation of heap dumps Jan 21, 2024
@NotMyFault NotMyFault requested a review from a team January 21, 2024 15:13
@NotMyFault NotMyFault added the bug For changelog: Minor bug. Will be listed after features label Jan 21, 2024
Copy link
Member

@basil basil left a comment

Choose a reason for hiding this comment

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

Looks good. Should include a changelog entry I think.

@daniel-beck daniel-beck added squash-merge-me Unclean or useless commit history, should be merged only with squash-merge and removed squash-merge-me Unclean or useless commit history, should be merged only with squash-merge labels Jan 22, 2024
@balaji-sivasakthi
Copy link
Contributor Author

@basil, should I add it, or will the core team add it? If I should add it, how do I do so?

@basil
Copy link
Member

basil commented Jan 23, 2024

If I should add it, how do I do so?

You can edit the PR description to fill in the "Proposed changelog entries" section.

@basil basil added the needs-security-review Awaiting review by a security team member label Jan 23, 2024
@basil
Copy link
Member

basil commented Jan 23, 2024

@jenkinsci/core-security-review It's been a while since this feature worked. During the intervening years, are there any new security requirements that would inhibit the reintroduction of this feature?

@balaji-sivasakthi
Copy link
Contributor Author

@basil I have updated the changelog.

@Kevin-CB Kevin-CB added security-approved @jenkinsci/core-security-review reviewed this PR for security issues and removed needs-security-review Awaiting review by a security team member labels Jan 24, 2024
@basil
Copy link
Member

basil commented Jan 24, 2024

This PR is now ready for merge. We will merge it after approximately 24 hours if there is no negative feedback. Please see the merge process documentation for more information about the merge process. Thanks!

@basil basil added the ready-for-merge The PR is ready to go, and it will be merged soon if there is no negative feedback label Jan 24, 2024
@basil basil changed the title [JENKINS-72579] Fix generation of heap dumps [JENKINS-72579] Adjust heap dump file name for compatibility with OpenJDK file suffix requirements Jan 24, 2024
@basil basil merged commit a32f24c into jenkinsci:master Jan 24, 2024
17 checks passed
Copy link

welcome bot commented Jan 24, 2024

Congratulations on getting your very first Jenkins core pull request merged 🎉🥳

This is a fantastic achievement, and we're thrilled to have you as part of our community! Thank you for your valuable input, and we look forward to seeing more of your contributions in the future!

We would like to invite you to join the community chats and forums to meet other Jenkins contributors 😊
Don't forget to check out the participation page to learn more about how to contribute to Jenkins.


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug For changelog: Minor bug. Will be listed after features ready-for-merge The PR is ready to go, and it will be merged soon if there is no negative feedback security-approved @jenkinsci/core-security-review reviewed this PR for security issues
Projects
None yet
6 participants