Issue #19363 has been updated by jeremyevans0 (Jeremy Evans).
wanabe (_ wanabe) wrote in #note-4:
(I think ideally `eval` should reject negative line
numbers.
However, it is not a bug but feature request, and it may be compatibility issues.)
[
tilt](https://github.com/jeremyevans/tilt) (~445 million downloads, dependency of
Sinatra) uses `eval` with negative line numbers, so that the line numbers reported in back
traces match the lines in the user-provided template file, even though tilt adds lines
before those lines. There would be significant backwards compatibility issues if negative
line numbers were removed.
----------------------------------------
Bug #19363: Fix rb_transient_heap_mark: wrong header (T_STRUCT) segfault
https://bugs.ruby-lang.org/issues/19363#change-102560
* Author: bkuhlmann (Brooke Kuhlmann)
* Status: Open
* Priority: Normal
* Assignee: mame (Yusuke Endoh)
* ruby -v: ruby 3.2.0 (2022-12-25 revision a528908271) +YJIT [arm64-darwin22.2.0]
* Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN
----------------------------------------
## Overview
Hello. 👋 I'm hitting an issue where my build is constantly failing with a segfault.
The following is a snippet taken from my local machine with YJIT enabled (see attachments
for details):
```
/Users/bkuhlmann/.cache/frum/versions/3.2.0/lib/ruby/gems/3.2.0/gems/puma-6.0.2/lib/puma/runner.rb:
[BUG] rb_transient_heap_mark: wrong header, T_STRUCT (0x0000000109ea98a0)
ruby 3.2.0 (2022-12-25 revision a528908271) +YJIT [arm64-darwin22.2.0]
```
The closest issue I could find that might be related to this issue (but not sure) is this
issue: #15358.
## Steps to Recreate
You should be able to quickly recreate this issue via these steps:
- Download/clone my [
Hemo](https://github.com/bkuhlmann/hemo) project.
- Run the setup steps.
- Run the test suite by running `bin/rspec`.
If you need an example of the same segfault (but not on my macOS machine), you can see the
same segfault via my [Circle CI
Build](https://app.circleci.com/pipelines/github/bkuhlmann/hemo/11/workflow….
My Circle CI build is using my [Docker Alpine Linux
Ruby](https://www.alchemists.io/projects/docker-alpine-ruby) image which might be of
interest as well. This Docker image is also built with YJIT enabled.
Interestingly, is if you were to run the test suite with `bin/guard` instead of
`bin/rspec` then the segfault doesn't occur.
## Environment
```
ruby 3.2.0 (2022-12-25 revision a528908271) +YJIT [arm64-darwin22.2.0]
1.43.0 (using Parser 3.2.0.0, rubocop-ast 1.24.1, running on ruby 3.2.0)
[arm64-darwin22.2.0]
- rubocop-performance 1.15.2
- rubocop-rake 0.6.0
- rubocop-rspec 2.18.1
- rubocop-sequel 0.3.4
- rubocop-thread_safety 0.4.4
```
---Files--------------------------------
segfault.txt (237 KB)
ruby-2023-01-21-113841.ips (19.6 KB)
segv.log (14.7 KB)
--
https://bugs.ruby-lang.org/