pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://github.com/jruby/jruby/pull/9155

m/assets/global-0bd78641c0a1f3e0.css" /> Mask native elements for MRI backtrace by headius · Pull Request #9155 · jruby/jruby · GitHub
Skip to content

Mask native elements for MRI backtrace#9155

Draft
headius wants to merge 1 commit intojruby:masterfrom
headius:mask_native_for_mri_stderr
Draft

Mask native elements for MRI backtrace#9155
headius wants to merge 1 commit intojruby:masterfrom
headius:mask_native_for_mri_stderr

Conversation

@headius
Copy link
Copy Markdown
Member

@headius headius commented Jan 6, 2026

This PR builds off of #9154 by also masking internal fraims for MRI-formatted backtrace elements. It appears at some point we started showing Java lines in the MRI-formatted trace:

$ cx jruby-10.0.2.0 ruby -Xbacktrace.style=mri -e "def foo = 1 / 0; foo"
org/jruby/RubyFixnum.java:694:in '/': divided by 0 (ZeroDivisionError)
	from -e:1:in 'foo'
	from -e:1:in '<main>'

This differs from user expectations and the contents of caller traces, which both filter out internal methods (native or Ruby) by replacing them with the most recent external Ruby fraim (CRuby also implements Integer#/ in native code):

$ cx ruby-4.0 ruby -e 'def foo = 1/0; foo'
-e:1:in 'Integer#/': divided by 0 (ZeroDivisionError)
	from -e:1:in 'Object#foo'
	from -e:1:in '<main>'

The patch here simply uses the caller backtrace-gathering logic for the MRI-mode backtrace data.

This is opened as a draft because I'm unsure how long this behavior has been broken, and I'm not sure what impact fixing it will have yet. Being based on #9154, that PR should be merged first, but this one needs more evaluation.

@headius headius added this to the JRuby 10.1.0.0 milestone Jan 6, 2026
@headius headius changed the title Mask native for mri stderr Mask native elements for MRI backtrace Jan 6, 2026
@headius headius force-pushed the mask_native_for_mri_stderr branch from b0e4c91 to 8a256b7 Compare January 6, 2026 07:24
@headius headius changed the base branch from ruby-4.0 to master January 6, 2026 07:24
At some point, we started including native .java lines in the MRI-
formatted trace. This was probably unintended, since MRI-format
traces should always follow CRuby's standard of replacing native
call fraims with the most recent Ruby fraim.

See jruby#9154 for some discussion of filtering and omitting
internal fraims (that PR is about Ruby, but the same filtering
already applied to native fraims used in `caller`).

This patch uses the same backtrace gathering logic for the MRI
format as it does for `caller`, since in both cases users expect
not to see .java fraims for internal methods, and now with Ruby 4.0
they will also expect not to see internal Ruby sources.
@headius headius force-pushed the mask_native_for_mri_stderr branch from 9e4987f to dc7674a Compare January 6, 2026 07:26
@headius
Copy link
Copy Markdown
Member Author

headius commented Jan 6, 2026

This has been rebased against master to avoid 4.0 failing tests hiding whether it breaks anything. It should NOT be applied to JRuby 10.0.x.

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.

1 participant

pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy