Project

General

Profile

Actions

Bug #20250

closed

Crash with "Object ID seen, but not in mapping table: proc" error

Added by zetter (Chris Zetter) 3 months ago. Updated about 2 months ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [arm64-darwin23]
[ruby-core:116643]

Description

Hello, I experienced a crash which I was able to reliably reproduce with the following:


require 'bundler/inline'

gemfile(true) do
  source 'https://rubygems.org'
  gem 'activesupport', '7.1.3'
end

require 'active_support'

logger = ActiveSupport::Logger.new('log/log.log', 1, 100 * 1024 * 1024)

logger.formatter = proc {|_, _, _, message| "#{message}\n" }

logger = ActiveSupport::TaggedLogging.new(logger)

logger.tagged("TAG").info "hello"
logger.tagged("TAG").info "hello" # usually crashes here
GC.start # sometimes need to trigger crash with GC

It looks like this is caused by the interaction with the formatter proc and the tagged logging features of activesupport. Let me know if a more minimal example would be useful.

I can reproduce this with:

  • ruby 3.3.0 on arm64-darwin23
  • ruby 3.3.0 on x86_64-linux
  • latest ruby HEAD (5e12b75716) on arm64-darwin23

I cannot reproduce this on ruby 3.2.2.

Thanks for any help


Files

ruby-2024-02-09-092829.ips (13.2 KB) ruby-2024-02-09-092829.ips zetter (Chris Zetter), 02/09/2024 10:05 AM
output.log (142 KB) output.log zetter (Chris Zetter), 02/09/2024 10:05 AM
crash_test_2.rb (465 Bytes) crash_test_2.rb reproduction zetter (Chris Zetter), 02/09/2024 10:10 AM

Related issues 1 (0 open1 closed)

Related to Ruby master - Bug #20253: `Proc.dup` and `Proc#clone` don't preserve finalizersClosedActions
Actions

Also available in: Atom PDF

Like0
Like0Like1Like0Like0Like0Like0