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

Potential GC Bug in Nokogiri 1.17.0 #3359

Closed
byroot opened this issue Dec 9, 2024 · 10 comments · Fixed by #3363
Closed

Potential GC Bug in Nokogiri 1.17.0 #3359

byroot opened this issue Dec 9, 2024 · 10 comments · Fixed by #3363
Labels
state/needs-triage Inbox for non-installation-related bug reports or help requests

Comments

@byroot
Copy link
Contributor

byroot commented Dec 9, 2024

Just ran into a crash on Rails CI with Ruby 3.2:

<OBJ_INFO:[email protected]:7069> 0x00007f5deeb7d8f8 [0 M    ] T_NONE
/usr/local/bundle/gems/nokogiri-1.17.0-x86_64-linux/lib/nokogiri/xml/document.rb:415: [BUG] try to mark T_NONE object
ruby 3.2.6 (2024-10-30 revision 63aeb018eb) [x86_64-linux]
-- Control frame information -----------------------------------------------
c:0128 p:---- s:0734 e:000733 CFUNC  :extend_object
c:0127 p:---- s:0731 e:000730 CFUNC  :extend
c:0126 p:0007 s:0726 e:000725 BLOCK  /usr/local/bundle/gems/nokogiri-1.17.0-x86_64-linux/lib/nokogiri/xml/document.rb:415 [FINISH]
c:0125 p:---- s:0722 e:000721 CFUNC  :each
c:0124 p:0016 s:0718 e:000717 BLOCK  /usr/local/bundle/gems/nokogiri-1.17.0-x86_64-linux/lib/nokogiri/xml/document.rb:415 [FINISH]
c:0123 p:---- s:0713 e:000712 CFUNC  :each
c:0122 p:0013 s:0709 e:000708 METHOD /usr/local/bundle/gems/nokogiri-1.17.0-x86_64-linux/lib/nokogiri/xml/document.rb:412 [FINISH]
c:0121 p:---- s:0704 e:000703 CFUNC  :children
c:0120 p:0004 s:0700 e:000699 METHOD /usr/local/bundle/gems/loofah-2.23.1/lib/loofah/scrubber.rb:132
c:0119 p:0005 s:0695 e:000694 BLOCK  /usr/local/bundle/gems/loofah-2.23.1/lib/loofah/scrubber.rb:132
c:0118 p:0007 s:0691 e:000690 BLOCK  /usr/local/bundle/gems/nokogiri-1.17.0-x86_64-linux/lib/nokogiri/xml/node_set.rb:237 [FINISH]
c:0117 p:---- s:0687 e:000686 CFUNC  :upto
c:0116 p:0019 s:0682 e:000681 METHOD /usr/local/bundle/gems/nokogiri-1.17.0-x86_64-linux/lib/nokogiri/xml/node_set.rb:236
c:0115 p:0007 s:0678 e:000677 METHOD /usr/local/bundle/gems/loofah-2.23.1/lib/loofah/scrubber.rb:132
c:0114 p:0005 s:0673 e:000672 BLOCK  /usr/local/bundle/gems/loofah-2.23.1/lib/loofah/scrubber.rb:132
c:0113 p:0007 s:0669 e:000668 BLOCK  /usr/local/bundle/gems/nokogiri-1.17.0-x86_64-linux/lib/nokogiri/xml/node_set.rb:237 [FINISH]
c:0112 p:---- s:0665 e:000664 CFUNC  :upto
c:0111 p:0019 s:0660 e:000659 METHOD /usr/local/bundle/gems/nokogiri-1.17.0-x86_64-linux/lib/nokogiri/xml/node_set.rb:236
c:0110 p:0007 s:0656 e:000655 METHOD /usr/local/bundle/gems/loofah-2.23.1/lib/loofah/scrubber.rb:132
c:0109 p:0005 s:0651 e:000650 BLOCK  /usr/local/bundle/gems/loofah-2.23.1/lib/loofah/scrubber.rb:132
c:0108 p:0007 s:0647 e:000646 BLOCK  /usr/local/bundle/gems/nokogiri-1.17.0-x86_64-linux/lib/nokogiri/xml/node_set.rb:237 [FINISH]
c:0107 p:---- s:0643 e:000642 CFUNC  :upto
c:0106 p:0019 s:0638 e:000637 METHOD /usr/local/bundle/gems/nokogiri-1.17.0-x86_64-linux/lib/nokogiri/xml/node_set.rb:236
c:0105 p:0007 s:0634 e:000633 METHOD /usr/local/bundle/gems/loofah-2.23.1/lib/loofah/scrubber.rb:132
c:0104 p:0014 s:0629 e:000628 METHOD /usr/local/bundle/gems/loofah-2.23.1/lib/loofah/scrubber.rb:81
c:0103 p:0031 s:0624 e:000623 METHOD /usr/local/bundle/gems/loofah-2.23.1/lib/loofah/concerns.rb:45
c:0102 p:0006 s:0619 e:000618 BLOCK  /usr/local/bundle/gems/loofah-2.23.1/lib/loofah/concerns.rb:53
c:0101 p:0007 s:0615 e:000614 BLOCK  /usr/local/bundle/gems/nokogiri-1.17.0-x86_64-linux/lib/nokogiri/xml/node_set.rb:237 [FINISH]
c:0100 p:---- s:0611 e:000610 CFUNC  :upto
c:0099 p:0019 s:0606 e:000605 METHOD /usr/local/bundle/gems/nokogiri-1.17.0-x86_64-linux/lib/nokogiri/xml/node_set.rb:236
c:0098 p:0004 s:0602 e:000601 METHOD /usr/local/bundle/gems/loofah-2.23.1/lib/loofah/concerns.rb:53
c:0097 p:0058 s:0597 e:000596 METHOD /usr/local/bundle/gems/loofah-2.23.1/lib/loofah/concerns.rb:43
c:0096 p:0065 s:0592 e:000591 METHOD /usr/local/bundle/gems/rails-html-sanitizer-1.6.1/lib/rails/html/sanitizer.rb:163
c:0095 p:0030 s:0585 e:000583 METHOD /usr/local/bundle/gems/rails-html-sanitizer-1.6.1/lib/rails/html/sanitizer.rb:39
c:0094 p:0018 s:0578 e:000577 METHOD /rails/actiontext/app/helpers/action_text/content_helper.rb:29
c:0093 p:0014 s:0573 e:000572 METHOD /rails/actiontext/app/helpers/action_text/content_helper.rb:16
c:0092 p:0021 s:0568 e:000566 METHOD /rails/actiontext/app/views/action_text/contents/_content.html.erb:1 [FINISH]
c:0091 p:---- s:0559 e:000558 CFUNC  :public_send
c:0090 p:0064 s:0552 e:000551 METHOD /rails/actionview/lib/action_view/base.rb:281
c:0089 p:0094 s:0536 e:000535 BLOCK  /rails/actionview/lib/action_view/template.rb:284
c:0088 p:0033 s:0531 e:000530 METHOD /rails/activesupport/lib/active_support/notifications.rb:212
c:0087 p:0013 s:0525 e:000524 METHOD /rails/actionview/lib/action_view/template.rb:583
c:0086 p:0016 s:0520 e:000519 METHOD /rails/actionview/lib/action_view/template.rb:272
c:0085 p:0014 s:0508 e:000507 BLOCK  /rails/actionview/lib/action_view/renderer/partial_renderer.rb:252
c:0084 p:0010 s:0503 e:000502 BLOCK  /rails/activesupport/lib/active_support/notifications.rb:210
c:0083 p:0027 s:0500 e:000499 METHOD /rails/activesupport/lib/active_support/notifications/instrumenter.rb:58
c:0082 p:0023 s:0492 e:000491 METHOD /rails/activesupport/lib/active_support/notifications.rb:210
c:0081 p:0023 s:0486 e:000485 METHOD /rails/actionview/lib/action_view/renderer/partial_renderer.rb:246
c:0080 p:0058 s:0477 e:000476 METHOD /rails/actionview/lib/action_view/renderer/partial_renderer.rb:237
c:0079 p:0111 s:0468 e:000467 METHOD /rails/actionview/lib/action_view/renderer/renderer.rb:78
c:0078 p:0015 s:0458 e:000457 METHOD /rails/actionview/lib/action_view/renderer/renderer.rb:29
c:0077 p:0008 s:0452 e:000451 BLOCK  /rails/actionview/lib/action_view/rendering.rb:136
c:0076 p:0078 s:0448 e:000447 METHOD /rails/actionview/lib/action_view/base.rb:308
c:0075 p:0051 s:0440 e:000439 METHOD /rails/actionview/lib/action_view/rendering.rb:135
c:0074 p:0047 s:0430 e:000429 METHOD /rails/actionpack/lib/action_controller/metal/streaming.rb:179
c:0073 p:0021 s:0425 e:000424 METHOD /rails/actionview/lib/action_view/rendering.rb:122
c:0072 p:0010 s:0420 e:000419 METHOD /rails/actionpack/lib/action_controller/metal/rendering.rb:192
c:0071 p:0015 s:0415 e:000414 METHOD /rails/actionpack/lib/action_controller/metal/renderers.rb:140
c:0070 p:0018 s:0410 e:000409 METHOD /rails/actionpack/lib/abstract_controller/rendering.rb:46
c:0069 p:0008 s:0403 e:000402 METHOD /rails/actionpack/lib/action_controller/metal/rendering.rb:181
c:0068 p:0053 s:0396 e:000395 METHOD /rails/actionpack/lib/action_controller/renderer.rb:136
c:0067 p:0020 s:0389 e:000388 METHOD /rails/actiontext/lib/action_text/rendering.rb:31
c:0066 p:0013 s:0383 e:000382 METHOD /rails/actiontext/lib/action_text/rendering.rb:14
c:0065 p:0015 s:0376 e:000375 METHOD /rails/actiontext/lib/action_text/content.rb:143
c:0064 p:0003 s:0372 e:000371 METHOD /rails/actiontext/lib/action_text/content.rb:158
c:0063 p:0017 s:0368 e:000367 METHOD /rails/actiontext/app/models/action_text/rich_text.rb:40
c:0062 p:0023 s:0359 e:000352 METHOD /rails/actiontext/test/dummy/app/jobs/broadcast_job.rb:5
c:0061 p:0008 s:0347 e:000346 BLOCK  /rails/activejob/lib/active_job/execution.rb:68
c:0060 p:0027 s:0344 e:000343 METHOD /rails/activesupport/lib/active_support/callbacks.rb:100
c:0059 p:0014 s:0334 e:000333 METHOD /rails/activejob/lib/active_job/execution.rb:67
c:0058 p:0010 s:0330 e:000329 METHOD /rails/activejob/lib/active_job/instrumentation.rb:32
c:0057 p:0022 s:0326 e:000325 METHOD /rails/activejob/lib/active_job/execution.rb:51
c:0056 p:0004 s:0320 e:000319 BLOCK  /rails/activejob/lib/active_job/instrumentation.rb:26
c:0055 p:0011 s:0317 e:000316 BLOCK  /rails/activerecord/lib/active_record/railties/job_runtime.rb:13
c:0054 p:0011 s:0312 e:000311 BLOCK  /rails/activejob/lib/active_job/instrumentation.rb:40
c:0053 p:0010 s:0308 e:000307 BLOCK  /rails/activesupport/lib/active_support/notifications.rb:210
c:0052 p:0027 s:0305 e:000304 METHOD /rails/activesupport/lib/active_support/notifications/instrumenter.rb:58
c:0051 p:0023 s:0297 e:000296 METHOD /rails/activesupport/lib/active_support/notifications.rb:210
c:0050 p:0039 s:0291 e:000290 METHOD /rails/activejob/lib/active_job/instrumentation.rb:39
c:0049 p:0025 s:0284 E:000038 METHOD /rails/activerecord/lib/active_record/railties/job_runtime.rb:11
c:0048 p:0006 s:0277 E:0022d0 METHOD /rails/activejob/lib/active_job/instrumentation.rb:26
c:0047 p:0004 s:0273 e:000272 BLOCK  /rails/activejob/lib/active_job/logging.rb:32
c:0046 p:0003 s:0270 e:000269 BLOCK  /rails/activesupport/lib/active_support/tagged_logging.rb:143
c:0045 p:0014 s:0267 e:000266 METHOD /rails/activesupport/lib/active_support/tagged_logging.rb:38
c:0044 p:0015 s:0261 e:000260 METHOD /rails/activesupport/lib/active_support/tagged_logging.rb:143
c:0043 p:0047 s:0255 e:000254 METHOD /rails/activesupport/lib/active_support/broadcast_logger.rb:241
c:0042 p:0034 s:0246 e:000245 METHOD /rails/activejob/lib/active_job/logging.rb:39
c:0041 p:0012 s:0240 e:000239 METHOD /rails/activejob/lib/active_job/logging.rb:32
c:0040 p:0004 s:0236 e:000235 BLOCK  /rails/activejob/lib/active_job/execution_state.rb:7
c:0039 p:0027 s:0233 e:000232 METHOD /rails/activesupport/lib/active_support/core_ext/time/zones.rb:65
c:0038 p:0008 s:0226 e:000225 BLOCK  /rails/activejob/lib/active_job/execution_state.rb:7
c:0037 p:0026 s:0223 e:000222 METHOD /usr/local/bundle/gems/i18n-1.14.6/lib/i18n.rb:353
c:0036 p:0008 s:0217 e:000216 METHOD /rails/activejob/lib/active_job/execution_state.rb:6
c:0035 p:0029 s:0213 e:000212 BLOCK  /rails/activejob/lib/active_job/test_helper.rb:728
c:0034 p:0110 s:0209 e:000208 BLOCK  /rails/activejob/lib/active_job/test_helper.rb:704 [FINISH]
c:0033 p:---- s:0204 e:000203 CFUNC  :select
c:0032 p:0015 s:0200 e:000199 METHOD /rails/activejob/lib/active_job/test_helper.rb:687
c:0031 p:0018 s:0190 e:000189 METHOD /rails/activejob/lib/active_job/test_helper.rb:717
c:0030 p:0012 s:0180 e:000179 METHOD /rails/activejob/lib/active_job/test_helper.rb:725
c:0029 p:0022 s:0171 e:000170 METHOD /rails/activejob/lib/active_job/test_helper.rb:623
c:0028 p:0003 s:0155 e:000154 BLOCK  /rails/actiontext/test/integration/job_render_test.rb:18
c:0027 p:0015 s:0152 e:000151 METHOD /rails/actiontext/test/integration/job_render_test.rb:30
c:0026 p:0027 s:0146 e:000145 BLOCK  /rails/actiontext/test/integration/job_render_test.rb:17
c:0025 p:0047 s:0140 e:000139 METHOD /usr/local/lib/ruby/3.2.0/tmpdir.rb:94
c:0024 p:0028 s:0130 e:000129 BLOCK  /rails/actiontext/test/integration/job_render_test.rb:12 [FINISH]
c:0023 p:0012 s:0125 e:000124 BLOCK  /usr/local/bundle/gems/minitest-5.25.4/lib/minitest/test.rb:94
c:0022 p:0002 s:0122 e:000121 METHOD /usr/local/bundle/gems/minitest-5.25.4/lib/minitest/test.rb:190
c:0021 p:0004 s:0117 e:000116 BLOCK  /usr/local/bundle/gems/minitest-5.25.4/lib/minitest/test.rb:89
c:0020 p:0008 s:0114 e:000113 METHOD /usr/local/bundle/gems/minitest-5.25.4/lib/minitest.rb:368
c:0019 p:0004 s:0109 e:000108 METHOD /usr/local/bundle/gems/minitest-5.25.4/lib/minitest/test.rb:88
c:0018 p:0008 s:0105 e:000104 BLOCK  /rails/activesupport/lib/active_support/executor/test_helper.rb:5
c:0017 p:0012 s:0102 e:000101 METHOD /rails/activesupport/lib/active_support/execution_wrapper.rb:104
c:0016 p:0009 s:0097 e:000096 METHOD /rails/activesupport/lib/active_support/executor/test_helper.rb:5
c:0015 p:0008 s:0090 e:000089 METHOD /usr/local/bundle/gems/minitest-5.25.4/lib/minitest.rb:1208
c:0014 p:0019 s:0083 e:000081 METHOD /usr/local/bundle/gems/minitest-5.25.4/lib/minitest.rb:447
c:0013 p:0021 s:0075 e:000074 BLOCK  /usr/local/bundle/gems/minitest-5.25.4/lib/minitest.rb:434 [FINISH]
c:0012 p:---- s:0071 e:000070 CFUNC  :each
c:0011 p:0005 s:0067 e:000066 BLOCK  /usr/local/bundle/gems/minitest-5.25.4/lib/minitest.rb:430
c:0010 p:0022 s:0064 e:000063 METHOD /usr/local/bundle/gems/minitest-5.25.4/lib/minitest.rb:472
c:0009 p:0014 s:0056 e:000055 METHOD /usr/local/bundle/gems/minitest-5.25.4/lib/minitest.rb:459
c:0008 p:0108 s:0050 E:002428 METHOD /usr/local/bundle/gems/minitest-5.25.4/lib/minitest.rb:429
c:0007 p:0029 s:0039 e:000038 METHOD /rails/railties/lib/rails/test_unit/line_filtering.rb:10
c:0006 p:0008 s:0033 e:000032 BLOCK  /usr/local/bundle/gems/minitest-5.25.4/lib/minitest.rb:332 [FINISH]
c:0005 p:---- s:0029 e:000028 CFUNC  :map
c:0004 p:0025 s:0025 e:000024 METHOD /usr/local/bundle/gems/minitest-5.25.4/lib/minitest.rb:332
c:0003 p:0141 s:0016 e:000015 METHOD /usr/local/bundle/gems/minitest-5.25.4/lib/minitest.rb:288
c:0002 p:0045 s:0008 E:0019c0 BLOCK  /usr/local/bundle/gems/minitest-5.25.4/lib/minitest.rb:86 [FINISH]
c:0001 p:0000 s:0003 E:001430 DUMMY  [FINISH]
-- Ruby level backtrace information ----------------------------------------
/usr/local/bundle/gems/minitest-5.25.4/lib/minitest.rb:86:in `block in autorun'
/usr/local/bundle/gems/minitest-5.25.4/lib/minitest.rb:288:in `run'
/usr/local/bundle/gems/minitest-5.25.4/lib/minitest.rb:332:in `__run'
/usr/local/bundle/gems/minitest-5.25.4/lib/minitest.rb:332:in `map'
/usr/local/bundle/gems/minitest-5.25.4/lib/minitest.rb:332:in `block in __run'
/rails/railties/lib/rails/test_unit/line_filtering.rb:10:in `run'
/usr/local/bundle/gems/minitest-5.25.4/lib/minitest.rb:429:in `run'
/usr/local/bundle/gems/minitest-5.25.4/lib/minitest.rb:459:in `with_info_handler'
/usr/local/bundle/gems/minitest-5.25.4/lib/minitest.rb:472:in `on_signal'
/usr/local/bundle/gems/minitest-5.25.4/lib/minitest.rb:430:in `block in run'
/usr/local/bundle/gems/minitest-5.25.4/lib/minitest.rb:430:in `each'
/usr/local/bundle/gems/minitest-5.25.4/lib/minitest.rb:434:in `block (2 levels) in run'
/usr/local/bundle/gems/minitest-5.25.4/lib/minitest.rb:447:in `run_one_method'
/usr/local/bundle/gems/minitest-5.25.4/lib/minitest.rb:1208:in `run_one_method'
/rails/activesupport/lib/active_support/executor/test_helper.rb:5:in `run'
/rails/activesupport/lib/active_support/execution_wrapper.rb:104:in `perform'
/rails/activesupport/lib/active_support/executor/test_helper.rb:5:in `block in run'
/usr/local/bundle/gems/minitest-5.25.4/lib/minitest/test.rb:88:in `run'
/usr/local/bundle/gems/minitest-5.25.4/lib/minitest.rb:368:in `time_it'
/usr/local/bundle/gems/minitest-5.25.4/lib/minitest/test.rb:89:in `block in run'
/usr/local/bundle/gems/minitest-5.25.4/lib/minitest/test.rb:190:in `capture_exceptions'
/usr/local/bundle/gems/minitest-5.25.4/lib/minitest/test.rb:94:in `block (2 levels) in run'
/rails/actiontext/test/integration/job_render_test.rb:12:in `block in <class:JobRenderTest>'
/usr/local/lib/ruby/3.2.0/tmpdir.rb:94:in `mktmpdir'
/rails/actiontext/test/integration/job_render_test.rb:17:in `block (2 levels) in <class:JobRenderTest>'
/rails/actiontext/test/integration/job_render_test.rb:30:in `with_default_url_options'
/rails/actiontext/test/integration/job_render_test.rb:18:in `block (3 levels) in <class:JobRenderTest>'
/rails/activejob/lib/active_job/test_helper.rb:623:in `perform_enqueued_jobs'
/rails/activejob/lib/active_job/test_helper.rb:725:in `flush_enqueued_jobs'
/rails/activejob/lib/active_job/test_helper.rb:717:in `enqueued_jobs_with'
/rails/activejob/lib/active_job/test_helper.rb:687:in `jobs_with'
/rails/activejob/lib/active_job/test_helper.rb:687:in `select'
/rails/activejob/lib/active_job/test_helper.rb:704:in `block in jobs_with'
/rails/activejob/lib/active_job/test_helper.rb:728:in `block in flush_enqueued_jobs'
/rails/activejob/lib/active_job/execution_state.rb:6:in `perform_now'
/usr/local/bundle/gems/i18n-1.14.6/lib/i18n.rb:353:in `with_locale'
/rails/activejob/lib/active_job/execution_state.rb:7:in `block in perform_now'
/rails/activesupport/lib/active_support/core_ext/time/zones.rb:65:in `use_zone'
/rails/activejob/lib/active_job/execution_state.rb:7:in `block (2 levels) in perform_now'
/rails/activejob/lib/active_job/logging.rb:32:in `perform_now'
/rails/activejob/lib/active_job/logging.rb:39:in `tag_logger'
/rails/activesupport/lib/active_support/broadcast_logger.rb:241:in `method_missing'
/rails/activesupport/lib/active_support/tagged_logging.rb:143:in `tagged'
/rails/activesupport/lib/active_support/tagged_logging.rb:38:in `tagged'
/rails/activesupport/lib/active_support/tagged_logging.rb:143:in `block in tagged'
/rails/activejob/lib/active_job/logging.rb:32:in `block in perform_now'
/rails/activejob/lib/active_job/instrumentation.rb:26:in `perform_now'
/rails/activerecord/lib/active_record/railties/job_runtime.rb:11:in `instrument'
/rails/activejob/lib/active_job/instrumentation.rb:39:in `instrument'
/rails/activesupport/lib/active_support/notifications.rb:210:in `instrument'
/rails/activesupport/lib/active_support/notifications/instrumenter.rb:58:in `instrument'
/rails/activesupport/lib/active_support/notifications.rb:210:in `block in instrument'
/rails/activejob/lib/active_job/instrumentation.rb:40:in `block in instrument'
/rails/activerecord/lib/active_record/railties/job_runtime.rb:13:in `block in instrument'
/rails/activejob/lib/active_job/instrumentation.rb:26:in `block in perform_now'
/rails/activejob/lib/active_job/execution.rb:51:in `perform_now'
/rails/activejob/lib/active_job/instrumentation.rb:32:in `_perform_job'
/rails/activejob/lib/active_job/execution.rb:67:in `_perform_job'
/rails/activesupport/lib/active_support/callbacks.rb:100:in `run_callbacks'
/rails/activejob/lib/active_job/execution.rb:68:in `block in _perform_job'
/rails/actiontext/test/dummy/app/jobs/broadcast_job.rb:5:in `perform'
/rails/actiontext/app/models/action_text/rich_text.rb:40:in `to_s'
/rails/actiontext/lib/action_text/content.rb:158:in `to_s'
/rails/actiontext/lib/action_text/content.rb:143:in `to_rendered_html_with_layout'
/rails/actiontext/lib/action_text/rendering.rb:14:in `render'
/rails/actiontext/lib/action_text/rendering.rb:31:in `render'
/rails/actionpack/lib/action_controller/renderer.rb:136:in `render'
/rails/actionpack/lib/action_controller/metal/rendering.rb:181:in `render_to_string'
/rails/actionpack/lib/abstract_controller/rendering.rb:46:in `render_to_string'
/rails/actionpack/lib/action_controller/metal/renderers.rb:140:in `render_to_body'
/rails/actionpack/lib/action_controller/metal/rendering.rb:192:in `render_to_body'
/rails/actionview/lib/action_view/rendering.rb:122:in `render_to_body'
/rails/actionpack/lib/action_controller/metal/streaming.rb:179:in `_render_template'
/rails/actionview/lib/action_view/rendering.rb:135:in `_render_template'
/rails/actionview/lib/action_view/base.rb:308:in `in_rendering_context'
/rails/actionview/lib/action_view/rendering.rb:136:in `block in _render_template'
/rails/actionview/lib/action_view/renderer/renderer.rb:29:in `render_to_object'
/rails/actionview/lib/action_view/renderer/renderer.rb:78:in `render_partial_to_object'
/rails/actionview/lib/action_view/renderer/partial_renderer.rb:237:in `render'
/rails/actionview/lib/action_view/renderer/partial_renderer.rb:246:in `render_partial_template'
/rails/activesupport/lib/active_support/notifications.rb:210:in `instrument'
/rails/activesupport/lib/active_support/notifications/instrumenter.rb:58:in `instrument'
/rails/activesupport/lib/active_support/notifications.rb:210:in `block in instrument'
/rails/actionview/lib/action_view/renderer/partial_renderer.rb:252:in `block in render_partial_template'
/rails/actionview/lib/action_view/template.rb:272:in `render'
/rails/actionview/lib/action_view/template.rb:583:in `instrument_render_template'
/rails/activesupport/lib/active_support/notifications.rb:212:in `instrument'
/rails/actionview/lib/action_view/template.rb:284:in `block in render'
/rails/actionview/lib/action_view/base.rb:281:in `_run'
/rails/actionview/lib/action_view/base.rb:281:in `public_send'
/rails/actiontext/app/views/action_text/contents/_content.html.erb:1:in `__rails_actiontext_app_views_action_text_contents__content_html_erb__3638570683017295991_33840'
/rails/actiontext/app/helpers/action_text/content_helper.rb:16:in `render_action_text_content'
/rails/actiontext/app/helpers/action_text/content_helper.rb:29:in `sanitize_action_text_content'
/usr/local/bundle/gems/rails-html-sanitizer-1.6.1/lib/rails/html/sanitizer.rb:39:in `sanitize'
/usr/local/bundle/gems/rails-html-sanitizer-1.6.1/lib/rails/html/sanitizer.rb:163:in `scrub'
/usr/local/bundle/gems/loofah-2.23.1/lib/loofah/concerns.rb:43:in `scrub!'
/usr/local/bundle/gems/loofah-2.23.1/lib/loofah/concerns.rb:53:in `scrub!'
/usr/local/bundle/gems/nokogiri-1.17.0-x86_64-linux/lib/nokogiri/xml/node_set.rb:236:in `each'
/usr/local/bundle/gems/nokogiri-1.17.0-x86_64-linux/lib/nokogiri/xml/node_set.rb:236:in `upto'
/usr/local/bundle/gems/nokogiri-1.17.0-x86_64-linux/lib/nokogiri/xml/node_set.rb:237:in `block in each'
/usr/local/bundle/gems/loofah-2.23.1/lib/loofah/concerns.rb:53:in `block in scrub!'
/usr/local/bundle/gems/loofah-2.23.1/lib/loofah/concerns.rb:45:in `scrub!'
/usr/local/bundle/gems/loofah-2.23.1/lib/loofah/scrubber.rb:81:in `traverse'
/usr/local/bundle/gems/loofah-2.23.1/lib/loofah/scrubber.rb:132:in `traverse_conditionally_bottom_up'
/usr/local/bundle/gems/nokogiri-1.17.0-x86_64-linux/lib/nokogiri/xml/node_set.rb:236:in `each'
/usr/local/bundle/gems/nokogiri-1.17.0-x86_64-linux/lib/nokogiri/xml/node_set.rb:236:in `upto'
/usr/local/bundle/gems/nokogiri-1.17.0-x86_64-linux/lib/nokogiri/xml/node_set.rb:237:in `block in each'
/usr/local/bundle/gems/loofah-2.23.1/lib/loofah/scrubber.rb:132:in `block in traverse_conditionally_bottom_up'
/usr/local/bundle/gems/loofah-2.23.1/lib/loofah/scrubber.rb:132:in `traverse_conditionally_bottom_up'
/usr/local/bundle/gems/nokogiri-1.17.0-x86_64-linux/lib/nokogiri/xml/node_set.rb:236:in `each'
/usr/local/bundle/gems/nokogiri-1.17.0-x86_64-linux/lib/nokogiri/xml/node_set.rb:236:in `upto'
/usr/local/bundle/gems/nokogiri-1.17.0-x86_64-linux/lib/nokogiri/xml/node_set.rb:237:in `block in each'
/usr/local/bundle/gems/loofah-2.23.1/lib/loofah/scrubber.rb:132:in `block in traverse_conditionally_bottom_up'
/usr/local/bundle/gems/loofah-2.23.1/lib/loofah/scrubber.rb:132:in `traverse_conditionally_bottom_up'
/usr/local/bundle/gems/nokogiri-1.17.0-x86_64-linux/lib/nokogiri/xml/node_set.rb:236:in `each'
/usr/local/bundle/gems/nokogiri-1.17.0-x86_64-linux/lib/nokogiri/xml/node_set.rb:236:in `upto'
/usr/local/bundle/gems/nokogiri-1.17.0-x86_64-linux/lib/nokogiri/xml/node_set.rb:237:in `block in each'
/usr/local/bundle/gems/loofah-2.23.1/lib/loofah/scrubber.rb:132:in `block in traverse_conditionally_bottom_up'
/usr/local/bundle/gems/loofah-2.23.1/lib/loofah/scrubber.rb:132:in `traverse_conditionally_bottom_up'
/usr/local/bundle/gems/loofah-2.23.1/lib/loofah/scrubber.rb:132:in `children'
/usr/local/bundle/gems/nokogiri-1.17.0-x86_64-linux/lib/nokogiri/xml/document.rb:412:in `decorate'
/usr/local/bundle/gems/nokogiri-1.17.0-x86_64-linux/lib/nokogiri/xml/document.rb:412:in `each'
/usr/local/bundle/gems/nokogiri-1.17.0-x86_64-linux/lib/nokogiri/xml/document.rb:415:in `block in decorate'
/usr/local/bundle/gems/nokogiri-1.17.0-x86_64-linux/lib/nokogiri/xml/document.rb:415:in `each'
/usr/local/bundle/gems/nokogiri-1.17.0-x86_64-linux/lib/nokogiri/xml/document.rb:415:in `block (2 levels) in decorate'
/usr/local/bundle/gems/nokogiri-1.17.0-x86_64-linux/lib/nokogiri/xml/document.rb:415:in `extend'
/usr/local/bundle/gems/nokogiri-1.17.0-x86_64-linux/lib/nokogiri/xml/document.rb:415:in `extend_object'
-- C level backtrace information -------------------------------------------
/usr/local/lib/libruby.so.3.2(rb_print_backtrace+0xd) [0x7f5df60f25e9] /usr/src/ruby/vm_dump.c:785
/usr/local/lib/libruby.so.3.2(rb_vm_bugreport) /usr/src/ruby/vm_dump.c:1080
/usr/local/lib/libruby.so.3.2(bug_report_end+0x0) [0x7f5df5eeacd3] /usr/src/ruby/error.c:790
/usr/local/lib/libruby.so.3.2(rb_bug_without_die) /usr/src/ruby/error.c:790
/usr/local/lib/libruby.so.3.2(die+0x0) [0x7f5df5e49ddb] /usr/src/ruby/error.c:798
/usr/local/lib/libruby.so.3.2(rb_bug) /usr/src/ruby/error.c:800
/usr/local/lib/libruby.so.3.2(gc_mark_ptr+0xde) [0x7f5df5f13cae] /usr/src/ruby/gc.c:7070
/usr/local/bundle/gems/nokogiri-1.17.0-x86_64-linux/lib/nokogiri/3.2/nokogiri.so(0x7f5df005a3da) [0x7f5df005a3da]
/usr/local/lib/libruby.so.3.2(gc_mark_stacked_objects+0x78) [0x7f5df5f16dd8] /usr/src/ruby/gc.c:7451
/usr/local/lib/libruby.so.3.2(gc_mark_stacked_objects_all) /usr/src/ruby/gc.c:7491
/usr/local/lib/libruby.so.3.2(gc_marks_rest) /usr/src/ruby/gc.c:8689
/usr/local/lib/libruby.so.3.2(gc_marks+0x41f) [0x7f5df5f17ddf] /usr/src/ruby/gc.c:8730
/usr/local/lib/libruby.so.3.2(gc_start) /usr/src/ruby/gc.c:9561
/usr/local/lib/libruby.so.3.2(heap_prepare+0x22) [0x7f5df5f1b25a] /usr/src/ruby/gc.c:2431
/usr/local/lib/libruby.so.3.2(heap_next_free_page) /usr/src/ruby/gc.c:2673
/usr/local/lib/libruby.so.3.2(newobj_alloc) /usr/src/ruby/gc.c:2781
/usr/local/lib/libruby.so.3.2(newobj_of0+0x59) [0x7f5df5f1bc5f] /usr/src/ruby/gc.c:2883
/usr/local/lib/libruby.so.3.2(newobj_of) /usr/src/ruby/gc.c:2903
/usr/local/lib/libruby.so.3.2(rb_wb_protected_newobj_of) /usr/src/ruby/gc.c:2925
/usr/local/lib/libruby.so.3.2(memset+0x0) [0x7f5df5e81f1b] /usr/src/ruby/class.c:207
/usr/local/lib/libruby.so.3.2(class_alloc) /usr/src/ruby/class.c:210
/usr/local/lib/libruby.so.3.2(rb_include_class_new+0x28) [0x7f5df5e85c48] /usr/src/ruby/class.c:1094
/usr/local/lib/libruby.so.3.2(do_include_modules_at+0x24b) [0x7f5df5e8601b] /usr/src/ruby/class.c:1277
/usr/local/lib/libruby.so.3.2(rb_include_module+0x74) [0x7f5df5e86484] /usr/src/ruby/class.c:1317
/usr/local/lib/libruby.so.3.2(rb_mod_extend_object+0xf) [0x7f5df5ef670f] /usr/src/ruby/eval.c:1728
/usr/local/lib/libruby.so.3.2(vm_call0_cfunc_with_frame+0xd5) [0x7f5df60e1bb5] /usr/src/ruby/vm_eval.c:150
/usr/local/lib/libruby.so.3.2(vm_call0_cfunc) /usr/src/ruby/vm_eval.c:164
/usr/local/lib/libruby.so.3.2(vm_call0_body) /usr/src/ruby/vm_eval.c:210
/usr/local/lib/libruby.so.3.2(vm_call0_cc+0x75) [0x7f5df60e6238] /usr/src/ruby/vm_eval.c:87
/usr/local/lib/libruby.so.3.2(rb_funcallv) /usr/src/ruby/vm_eval.c:1050
/usr/local/lib/libruby.so.3.2(rb_obj_extend+0x11b) [0x7f5df5ef12bb] /usr/src/ruby/eval.c:1774
/usr/local/lib/libruby.so.3.2(vm_call_cfunc_with_frame+0x117) [0x7f5df60c7807] /usr/src/ruby/vm_insnhelper.c:3287
/usr/local/lib/libruby.so.3.2(vm_sendish+0xa3) [0x7f5df60d7644] /usr/src/ruby/vm_insnhelper.c:5099
/usr/local/lib/libruby.so.3.2(vm_exec_core) /usr/src/ruby/insns.def:820
/usr/local/lib/libruby.so.3.2(rb_vm_exec+0xb3) [0x7f5df60dcc23] /usr/src/ruby/vm.c:2374
/usr/local/lib/libruby.so.3.2(rb_yield+0x1de) [0x7f5df60e12be] /usr/src/ruby/vm.c:1398
/usr/local/lib/libruby.so.3.2(RB_FL_TEST_RAW+0x0) [0x7f5df5e57fbc] /usr/src/ruby/array.c:2740
/usr/local/lib/libruby.so.3.2(RB_FL_ANY_RAW) ./include/ruby/internal/fl_type.h:552
/usr/local/lib/libruby.so.3.2(rb_array_len) ./include/ruby/internal/core/rarray.h:321
/usr/local/lib/libruby.so.3.2(rb_ary_each) /usr/src/ruby/array.c:2739
/usr/local/lib/libruby.so.3.2(vm_call_cfunc_with_frame+0x117) [0x7f5df60c7807] /usr/src/ruby/vm_insnhelper.c:3287
/usr/local/lib/libruby.so.3.2(vm_sendish+0x154) [0x7f5df60cd7d4] /usr/src/ruby/vm_insnhelper.c:5099
/usr/local/lib/libruby.so.3.2(vm_exec_core+0x1e62) [0x7f5df60d9392] /usr/src/ruby/insns.def:801
/usr/local/lib/libruby.so.3.2(rb_vm_exec+0xb3) [0x7f5df60dcc23] /usr/src/ruby/vm.c:2374
/usr/local/lib/libruby.so.3.2(each_pair_i_fast+0x2a) [0x7f5df5f1d80a] /usr/src/ruby/hash.c:3189
/usr/local/lib/libruby.so.3.2(hash_iter_status_check+0x0) [0x7f5df5f20b7a] /usr/src/ruby/hash.c:1394
/usr/local/lib/libruby.so.3.2(hash_ar_foreach_iter) /usr/src/ruby/hash.c:1397
/usr/local/lib/libruby.so.3.2(ar_foreach_check) /usr/src/ruby/hash.c:1006
/usr/local/lib/libruby.so.3.2(hash_foreach_call) /usr/src/ruby/hash.c:1533
/usr/local/lib/libruby.so.3.2(rb_ensure+0x113) [0x7f5df5ef4973] /usr/src/ruby/eval.c:1011
/usr/local/lib/libruby.so.3.2(rb_hash_foreach+0x65) [0x7f5df5f2498d] /usr/src/ruby/hash.c:1561
/usr/local/lib/libruby.so.3.2(rb_hash_foreach) /usr/src/ruby/hash.c:1547
/usr/local/lib/libruby.so.3.2(rb_hash_each_pair+0x3f) [0x7f5df5f2553f] /usr/src/ruby/hash.c:3226
/usr/local/lib/libruby.so.3.2(vm_call_cfunc_with_frame+0x117) [0x7f5df60c7807] /usr/src/ruby/vm_insnhelper.c:3287
/usr/local/lib/libruby.so.3.2(vm_sendish+0x154) [0x7f5df60cd7d4] /usr/src/ruby/vm_insnhelper.c:5099
/usr/local/lib/libruby.so.3.2(vm_exec_core+0x1e62) [0x7f5df60d9392] /usr/src/ruby/insns.def:801
/usr/local/lib/libruby.so.3.2(rb_vm_exec+0xb3) [0x7f5df60dcc23] /usr/src/ruby/vm.c:2374
/usr/local/lib/libruby.so.3.2(vm_call0_cc+0x75) [0x7f5df60e6238] /usr/src/ruby/vm_eval.c:87
/usr/local/lib/libruby.so.3.2(rb_funcallv) /usr/src/ruby/vm_eval.c:1050
/usr/local/bundle/gems/nokogiri-1.17.0-x86_64-linux/lib/nokogiri/3.2/nokogiri.so(noko_xml_node_set_wrap+0xce) [0x7f5df005a92e]
/usr/local/lib/libruby.so.3.2(vm_call_cfunc_with_frame+0x117) [0x7f5df60c7807] /usr/src/ruby/vm_insnhelper.c:3287
/usr/local/lib/libruby.so.3.2(vm_sendish+0xa3) [0x7f5df60d7644] /usr/src/ruby/vm_insnhelper.c:5099
/usr/local/lib/libruby.so.3.2(vm_exec_core) /usr/src/ruby/insns.def:820
/usr/local/lib/libruby.so.3.2(rb_vm_exec+0xb3) [0x7f5df60dcc23] /usr/src/ruby/vm.c:2374
/usr/local/lib/libruby.so.3.2(rb_yield+0x1de) [0x7f5df60e12be] /usr/src/ruby/vm.c:1398
/usr/local/lib/libruby.so.3.2(int_upto+0xfe) [0x7f5df5f88d9e] /usr/src/ruby/numeric.c:5594
/usr/local/lib/libruby.so.3.2(vm_call_cfunc_with_frame+0x117) [0x7f5df60c7807] /usr/src/ruby/vm_insnhelper.c:3287
/usr/local/lib/libruby.so.3.2(vm_sendish+0x154) [0x7f5df60cd7d4] /usr/src/ruby/vm_insnhelper.c:5099
/usr/local/lib/libruby.so.3.2(vm_exec_core+0x1e62) [0x7f5df60d9392] /usr/src/ruby/insns.def:801
/usr/local/lib/libruby.so.3.2(rb_vm_exec+0xb3) [0x7f5df60dcc23] /usr/src/ruby/vm.c:2374
/usr/local/lib/libruby.so.3.2(rb_yield+0x1de) [0x7f5df60e12be] /usr/src/ruby/vm.c:1398
/usr/local/lib/libruby.so.3.2(int_upto+0xfe) [0x7f5df5f88d9e] /usr/src/ruby/numeric.c:5594
/usr/local/lib/libruby.so.3.2(vm_call_cfunc_with_frame+0x117) [0x7f5df60c7807] /usr/src/ruby/vm_insnhelper.c:3287
/usr/local/lib/libruby.so.3.2(vm_sendish+0x154) [0x7f5df60cd7d4] /usr/src/ruby/vm_insnhelper.c:5099
/usr/local/lib/libruby.so.3.2(vm_exec_core+0x1e62) [0x7f5df60d9392] /usr/src/ruby/insns.def:801
/usr/local/lib/libruby.so.3.2(rb_vm_exec+0xb3) [0x7f5df60dcc23] /usr/src/ruby/vm.c:2374
/usr/local/lib/libruby.so.3.2(rb_yield+0x1de) [0x7f5df60e12be] /usr/src/ruby/vm.c:1398
/usr/local/lib/libruby.so.3.2(int_upto+0xfe) [0x7f5df5f88d9e] /usr/src/ruby/numeric.c:5594
/usr/local/lib/libruby.so.3.2(vm_call_cfunc_with_frame+0x117) [0x7f5df60c7807] /usr/src/ruby/vm_insnhelper.c:3287
/usr/local/lib/libruby.so.3.2(vm_sendish+0x154) [0x7f5df60cd7d4] /usr/src/ruby/vm_insnhelper.c:5099
/usr/local/lib/libruby.so.3.2(vm_exec_core+0x1e62) [0x7f5df60d9392] /usr/src/ruby/insns.def:801
/usr/local/lib/libruby.so.3.2(rb_vm_exec+0xb3) [0x7f5df60dcc23] /usr/src/ruby/vm.c:2374
/usr/local/lib/libruby.so.3.2(rb_yield+0x1de) [0x7f5df60e12be] /usr/src/ruby/vm.c:1398
/usr/local/lib/libruby.so.3.2(int_upto+0xfe) [0x7f5df5f88d9e] /usr/src/ruby/numeric.c:5594
/usr/local/lib/libruby.so.3.2(vm_call_cfunc_with_frame+0x117) [0x7f5df60c7807] /usr/src/ruby/vm_insnhelper.c:3287
/usr/local/lib/libruby.so.3.2(vm_sendish+0x154) [0x7f5df60cd7d4] /usr/src/ruby/vm_insnhelper.c:5099
/usr/local/lib/libruby.so.3.2(vm_exec_core+0x1e62) [0x7f5df60d9392] /usr/src/ruby/insns.def:801
/usr/local/lib/libruby.so.3.2(rb_vm_exec+0xb3) [0x7f5df60dcc23] /usr/src/ruby/vm.c:2374
/usr/local/lib/libruby.so.3.2(vm_call0_cc+0x79) [0x7f5df60e4d54] /usr/src/ruby/vm_eval.c:87
/usr/local/lib/libruby.so.3.2(rb_call0) /usr/src/ruby/vm_eval.c:550
/usr/local/lib/libruby.so.3.2(send_internal+0x101) [0x7f5df60e54e1] /usr/src/ruby/vm_eval.c:1261
/usr/local/lib/libruby.so.3.2(vm_call_cfunc_with_frame+0x117) [0x7f5df60c7807] /usr/src/ruby/vm_insnhelper.c:3287
/usr/local/lib/libruby.so.3.2(vm_sendish+0x154) [0x7f5df60cd7d4] /usr/src/ruby/vm_insnhelper.c:5099
/usr/local/lib/libruby.so.3.2(vm_exec_core+0x1e62) [0x7f5df60d9392] /usr/src/ruby/insns.def:801
/usr/local/lib/libruby.so.3.2(rb_vm_exec+0x51c) [0x7f5df60dd08c] /usr/src/ruby/vm.c:2383
/usr/local/lib/libruby.so.3.2(rb_yield+0x1de) [0x7f5df60e12be] /usr/src/ruby/vm.c:1398
/usr/local/lib/libruby.so.3.2(RB_TEST+0x0) [0x7f5df5e5e774] /usr/src/ruby/array.c:4013
/usr/local/lib/libruby.so.3.2(rb_ary_select) /usr/src/ruby/array.c:4013
/usr/local/lib/libruby.so.3.2(vm_call_cfunc_with_frame+0x117) [0x7f5df60c7807] /usr/src/ruby/vm_insnhelper.c:3287
/usr/local/lib/libruby.so.3.2(vm_sendish+0x154) [0x7f5df60cd7d4] /usr/src/ruby/vm_insnhelper.c:5099
/usr/local/lib/libruby.so.3.2(vm_exec_core+0x1e62) [0x7f5df60d9392] /usr/src/ruby/insns.def:801
/usr/local/lib/libruby.so.3.2(rb_vm_exec+0x51c) [0x7f5df60dd08c] /usr/src/ruby/vm.c:2383
/usr/local/lib/libruby.so.3.2(vm_call_bmethod+0xd2) [0x7f5df60eaf72] /usr/src/ruby/vm_insnhelper.c:3379
/usr/local/lib/libruby.so.3.2(vm_call_symbol+0x221) [0x7f5df60ec4f1] /usr/src/ruby/vm_insnhelper.c:3541
/usr/local/lib/libruby.so.3.2(vm_sendish+0xa3) [0x7f5df60d7644] /usr/src/ruby/vm_insnhelper.c:5099
/usr/local/lib/libruby.so.3.2(vm_exec_core) /usr/src/ruby/insns.def:820
/usr/local/lib/libruby.so.3.2(rb_vm_exec+0xb3) [0x7f5df60dcc23] /usr/src/ruby/vm.c:2374
/usr/local/lib/libruby.so.3.2(rb_yield+0x1de) [0x7f5df60e12be] /usr/src/ruby/vm.c:1398
/usr/local/lib/libruby.so.3.2(RB_FL_TEST_RAW+0x0) [0x7f5df5e57fbc] /usr/src/ruby/array.c:2740
/usr/local/lib/libruby.so.3.2(RB_FL_ANY_RAW) ./include/ruby/internal/fl_type.h:552
/usr/local/lib/libruby.so.3.2(rb_array_len) ./include/ruby/internal/core/rarray.h:321
/usr/local/lib/libruby.so.3.2(rb_ary_each) /usr/src/ruby/array.c:2739
/usr/local/lib/libruby.so.3.2(vm_call_cfunc_with_frame+0x117) [0x7f5df60c7807] /usr/src/ruby/vm_insnhelper.c:3287
/usr/local/lib/libruby.so.3.2(vm_sendish+0x154) [0x7f5df60cd7d4] /usr/src/ruby/vm_insnhelper.c:5099
/usr/local/lib/libruby.so.3.2(vm_exec_core+0x1e62) [0x7f5df60d9392] /usr/src/ruby/insns.def:801
/usr/local/lib/libruby.so.3.2(rb_vm_exec+0xb3) [0x7f5df60dcc23] /usr/src/ruby/vm.c:2374
/usr/local/lib/libruby.so.3.2(rb_yield+0x1de) [0x7f5df60e12be] /usr/src/ruby/vm.c:1398
/usr/local/lib/libruby.so.3.2(rb_ary_collect+0x5c) [0x7f5df5e5e89c] /usr/src/ruby/array.c:3834
/usr/local/lib/libruby.so.3.2(vm_call_cfunc_with_frame+0x117) [0x7f5df60c7807] /usr/src/ruby/vm_insnhelper.c:3287
/usr/local/lib/libruby.so.3.2(vm_sendish+0x154) [0x7f5df60cd7d4] /usr/src/ruby/vm_insnhelper.c:5099
/usr/local/lib/libruby.so.3.2(vm_exec_core+0x1e62) [0x7f5df60d9392] /usr/src/ruby/insns.def:801
/usr/local/lib/libruby.so.3.2(rb_vm_exec+0xb3) [0x7f5df60dcc23] /usr/src/ruby/vm.c:2374
/usr/local/lib/libruby.so.3.2(rb_vm_invoke_proc+0x5e) [0x7f5df60e1a6e] /usr/src/ruby/vm.c:1603
/usr/local/lib/libruby.so.3.2(rb_proc_call_kw+0x9b) [0x7f5df5fdb04b] /usr/src/ruby/proc.c:995
/usr/local/lib/libruby.so.3.2(exec_end_procs_chain+0x44) [0x7f5df5ef5dbd] /usr/src/ruby/eval_jump.c:105
/usr/local/lib/libruby.so.3.2(rb_ec_exec_end_proc) /usr/src/ruby/eval_jump.c:120
/usr/local/lib/libruby.so.3.2(rb_ec_teardown+0xbb) [0x7f5df5ef5fab] /usr/src/ruby/eval.c:159
/usr/local/lib/libruby.so.3.2(rb_ec_cleanup+0x13b) [0x7f5df5ef61eb] /usr/src/ruby/eval.c:212
/usr/local/lib/libruby.so.3.2(ruby_run_node+0x95) [0x7f5df5ef65f5] /usr/src/ruby/eval.c:330
/usr/local/bin/ruby(rb_main+0x21) [0x55be93ccf112] ./main.c:38
/usr/local/bin/ruby(main) ./main.c:57
/lib/x86_64-linux-gnu/libc.so.6(0x7f5df5a1824a) [0x7f5df5a1824a]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x85) [0x7f5df5a18305]
[0x55be93ccf151]

https://buildkite.com/rails/rails/builds/114545#0193ab67-9d1b-458c-b14d-f1751a85d259

@byroot byroot added the state/needs-triage Inbox for non-installation-related bug reports or help requests label Dec 9, 2024
@byroot
Copy link
Contributor Author

byroot commented Dec 9, 2024

While trying to repro locally I ran a couple times into a different crash:

/Users/byroot/.gem/rubies/3.3.4/gems/nokogiri-1.17.0/lib/nokogiri/xml/node_set.rb:354: [BUG] Segmentation fault at 0x0000000000000001
ruby 3.3.4 (2024-07-09 revision be1089c8ec) [arm64-darwin23]

-- Crash Report log information --------------------------------------------
   See Crash Report log file in one of the following locations:             
     * ~/Library/Logs/DiagnosticReports                                     
     * /Library/Logs/DiagnosticReports                                      
   for more details.                                                        
Don't forget to include the above Crash Report log file in bug reports.     

-- Control frame information -----------------------------------------------
c:0110 p:0008 s:0612 e:000609 BLOCK  /Users/byroot/.gem/rubies/3.3.4/gems/nokogiri-1.17.0/lib/nokogiri/xml/node_set.rb:354 [FINISH]
c:0109 p:---- s:0606 e:000605 IFUNC 
c:0108 p:0007 s:0603 e:000601 BLOCK  /Users/byroot/.gem/rubies/3.3.4/gems/nokogiri-1.17.0/lib/nokogiri/xml/node_set.rb:237 [FINISH]
c:0107 p:---- s:0598 e:000597 CFUNC  :upto
c:0106 p:0019 s:0593 e:000592 METHOD /Users/byroot/.gem/rubies/3.3.4/gems/nokogiri-1.17.0/lib/nokogiri/xml/node_set.rb:236 [FINISH]
c:0105 p:---- s:0589 e:000588 CFUNC  :map
c:0104 p:0114 s:0585 e:000584 METHOD /Users/byroot/.gem/rubies/3.3.4/gems/nokogiri-1.17.0/lib/nokogiri/xml/node_set.rb:354
c:0103 p:0064 s:0578 e:000577 METHOD /Users/byroot/.gem/rubies/3.3.4/gems/nokogiri-1.17.0/lib/nokogiri/xml/document_fragment.rb:144
c:0102 p:0006 s:0572 e:000571 METHOD /Users/byroot/src/github.com/byroot/rails/actiontext/lib/action_text/html_conversion.rb:10
c:0101 p:0014 s:0567 e:000566 METHOD /Users/byroot/src/github.com/byroot/rails/actiontext/lib/action_text/fragment.rb:55
c:0100 p:0005 s:0563 e:000562 METHOD /Users/byroot/src/github.com/byroot/rails/actiontext/lib/action_text/content.rb:139
c:0099 p:0041 s:0559 e:000558 METHOD /Users/byroot/src/github.com/byroot/rails/actiontext/lib/action_text/serialization.rb:19
c:0098 p:0025 s:0554 e:000552 METHOD /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/type/serialized.rb:29
c:0097 p:0006 s:0548 e:000546 METHOD /Users/byroot/src/github.com/byroot/rails/activemodel/lib/active_model/type/helpers/mutable.rb:8
c:0096 p:0007 s:0542 e:000541 METHOD /Users/byroot/src/github.com/byroot/rails/activemodel/lib/active_model/attribute.rb:199
c:0095 p:0012 s:0537 e:000536 METHOD /Users/byroot/src/github.com/byroot/rails/activemodel/lib/active_model/attribute.rb:43
c:0094 p:0011 s:0533 e:000532 METHOD /Users/byroot/src/github.com/byroot/rails/activemodel/lib/active_model/attribute_set.rb:51
c:0093 p:0011 s:0527 e:000526 METHOD /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/attribute_methods/read.rb:39
c:0092 p:0006 s:0521 e:000520 METHOD /Users/byroot/src/github.com/byroot/rails/activemodel/lib/active_model/attribute_methods.rb:273
c:0091 p:0004 s:0517 e:000516 BLOCK  /Users/byroot/src/github.com/byroot/rails/actiontext/app/models/action_text/rich_text.rb:55 [FINISH]
c:0090 p:---- s:0514 e:000513 CFUNC  :instance_exec
c:0089 p:0008 s:0510 e:000509 BLOCK  /Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:406
c:0088 p:0009 s:0504 e:000503 BLOCK  /Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:178
c:0087 p:0004 s:0501 e:000500 BLOCK  /Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:667 [FINISH]
c:0086 p:---- s:0498 e:000497 CFUNC  :catch
c:0085 p:0010 s:0493 e:000492 BLOCK  /Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:666
c:0084 p:0050 s:0487 E:000c98 METHOD /Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:179
c:0083 p:0006 s:0477 e:000476 BLOCK  /Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:558 [FINISH]
c:0082 p:---- s:0473 e:000472 CFUNC  :each
c:0081 p:0009 s:0469 e:000468 METHOD /Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:558
c:0080 p:0018 s:0464 e:000463 BLOCK  /Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:118
c:0079 p:0031 s:0455 e:000454 METHOD /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/autosave_association.rb:396
c:0078 p:0127 s:0450 e:000449 BLOCK  /Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:129
c:0077 p:0110 s:0441 E:000c00 METHOD /Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:140
c:0076 p:0009 s:0431 e:000430 METHOD /Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:912
c:0075 p:0004 s:0426 E:000008 METHOD /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/callbacks.rb:441
c:0074 p:0021 s:0421 e:000420 METHOD /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/timestamp.rb:127
c:0073 p:0010 s:0414 e:000413 METHOD /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/persistence.rb:391
c:0072 p:0013 s:0408 e:000407 METHOD /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/validations.rb:48
c:0071 p:0006 s:0403 e:000402 BLOCK  /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/transactions.rb:362
c:0070 p:0020 s:0400 e:000399 BLOCK  /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/transactions.rb:418
c:0069 p:0032 s:0397 e:000396 METHOD /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb:35
c:0068 p:0016 s:0388 e:000387 BLOCK  /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/transactions.rb:414
c:0067 p:0034 s:0382 e:000381 METHOD /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:412
c:0066 p:0011 s:0374 e:000373 METHOD /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/connection_handling.rb:310
c:0065 p:0006 s:0367 e:000366 METHOD /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/transactions.rb:410
c:0064 p:0004 s:0363 e:000362 METHOD /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/transactions.rb:362
c:0063 p:0022 s:0358 e:000357 METHOD /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/suppressor.rb:52
c:0062 p:0201 s:0353 e:000352 METHOD /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/autosave_association.rb:493
c:0061 p:0005 s:0339 e:000338 BLOCK  /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/autosave_association.rb:200 [FINISH]
c:0060 p:---- s:0336 e:000335 CFUNC  :instance_eval
c:0059 p:0041 s:0332 e:000331 BLOCK  /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/autosave_association.rb:168
c:0058 p:0010 s:0326 e:000325 BLOCK  /Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:361
c:0057 p:0050 s:0320 e:000319 METHOD /Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:207
c:0056 p:0006 s:0312 e:000311 BLOCK  /Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:562 [FINISH]
c:0055 p:---- s:0308 e:000307 CFUNC  :each
c:0054 p:0009 s:0304 e:000303 METHOD /Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:562
c:0053 p:0093 s:0299 e:000298 METHOD /Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:110
c:0052 p:0009 s:0289 e:000288 METHOD /Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:912
c:0051 p:0004 s:0284 e:000283 METHOD /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/callbacks.rb:445
c:0050 p:0021 s:0280 e:000279 METHOD /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/timestamp.rb:116
c:0049 p:0029 s:0275 e:000274 METHOD /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/persistence.rb:895
c:0048 p:0006 s:0268 e:000267 BLOCK  /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/callbacks.rb:441
c:0047 p:0027 s:0265 e:000264 METHOD /Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:100
c:0046 p:0009 s:0255 e:000254 METHOD /Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:912
c:0045 p:0004 s:0250 e:000249 METHOD /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/callbacks.rb:441
c:0044 p:0021 s:0245 e:000244 METHOD /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/timestamp.rb:127
c:0043 p:0010 s:0238 e:000237 METHOD /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/persistence.rb:424
c:0042 p:0013 s:0232 e:000231 METHOD /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/validations.rb:54
c:0041 p:0006 s:0227 e:000226 BLOCK  /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/transactions.rb:366
c:0040 p:0020 s:0224 e:000223 BLOCK  /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/transactions.rb:418
c:0039 p:0016 s:0221 e:000220 BLOCK  /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb:626 [FINISH]
c:0038 p:---- s:0216 e:000215 CFUNC  :handle_interrupt
c:0037 p:0015 s:0211 e:000210 BLOCK  /Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/concurrency/load_interlock_aware_monitor.rb:23 [FINISH]
c:0036 p:---- s:0208 e:000207 CFUNC  :handle_interrupt
c:0035 p:0007 s:0203 e:000202 METHOD /Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/concurrency/load_interlock_aware_monitor.rb:19
c:0034 p:0008 s:0198 e:000197 METHOD /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb:623
c:0033 p:0017 s:0191 e:000190 METHOD /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb:36
c:0032 p:0045 s:0182 e:000181 METHOD /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb:35
c:0031 p:0016 s:0173 e:000172 BLOCK  /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/transactions.rb:414
c:0030 p:0034 s:0167 e:000166 METHOD /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:412
c:0029 p:0011 s:0159 e:000158 METHOD /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/connection_handling.rb:310
c:0028 p:0006 s:0152 e:000151 METHOD /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/transactions.rb:410
c:0027 p:0004 s:0148 e:000147 METHOD /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/transactions.rb:366
c:0026 p:0022 s:0143 e:000142 METHOD /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/suppressor.rb:56
c:0025 p:0032 s:0138 e:000137 METHOD /Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/persistence.rb:55
c:0024 p:0021 s:0131 e:000130 BLOCK  /Users/byroot/src/github.com/byroot/rails/actiontext/test/integration/controller_render_test.rb:38
c:0023 p:0012 s:0125 e:000124 BLOCK  /Users/byroot/.gem/rubies/3.3.4/gems/minitest-5.25.2/lib/minitest/test.rb:94
c:0022 p:0002 s:0122 e:000121 METHOD /Users/byroot/.gem/rubies/3.3.4/gems/minitest-5.25.2/lib/minitest/test.rb:190
c:0021 p:0004 s:0117 e:000116 BLOCK  /Users/byroot/.gem/rubies/3.3.4/gems/minitest-5.25.2/lib/minitest/test.rb:89
c:0020 p:0008 s:0114 e:000113 METHOD /Users/byroot/.gem/rubies/3.3.4/gems/minitest-5.25.2/lib/minitest.rb:368
c:0019 p:0004 s:0109 e:000108 METHOD /Users/byroot/.gem/rubies/3.3.4/gems/minitest-5.25.2/lib/minitest/test.rb:88
c:0018 p:0008 s:0105 e:000104 BLOCK  /Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/executor/test_helper.rb:5
c:0017 p:0012 s:0102 e:000101 METHOD /Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/execution_wrapper.rb:104
c:0016 p:0009 s:0097 e:000096 METHOD /Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/executor/test_helper.rb:5
c:0015 p:0008 s:0090 e:000089 METHOD /Users/byroot/.gem/rubies/3.3.4/gems/minitest-5.25.2/lib/minitest.rb:1208
c:0014 p:0019 s:0083 e:000081 METHOD /Users/byroot/.gem/rubies/3.3.4/gems/minitest-5.25.2/lib/minitest.rb:447
c:0013 p:0021 s:0075 e:000074 BLOCK  /Users/byroot/.gem/rubies/3.3.4/gems/minitest-5.25.2/lib/minitest.rb:434 [FINISH]
c:0012 p:---- s:0071 e:000070 CFUNC  :each
c:0011 p:0005 s:0067 e:000066 BLOCK  /Users/byroot/.gem/rubies/3.3.4/gems/minitest-5.25.2/lib/minitest.rb:430
c:0010 p:0022 s:0064 E:001a40 METHOD /Users/byroot/.gem/rubies/3.3.4/gems/minitest-5.25.2/lib/minitest.rb:472
c:0009 p:0014 s:0056 e:000055 METHOD /Users/byroot/.gem/rubies/3.3.4/gems/minitest-5.25.2/lib/minitest.rb:459
c:0008 p:0108 s:0050 E:001248 METHOD /Users/byroot/.gem/rubies/3.3.4/gems/minitest-5.25.2/lib/minitest.rb:429
c:0007 p:0029 s:0039 e:000038 METHOD /Users/byroot/src/github.com/byroot/rails/railties/lib/rails/test_unit/line_filtering.rb:10
c:0006 p:0008 s:0033 e:000032 BLOCK  /Users/byroot/.gem/rubies/3.3.4/gems/minitest-5.25.2/lib/minitest.rb:332 [FINISH]
c:0005 p:---- s:0029 e:000028 CFUNC  :map
c:0004 p:0025 s:0025 e:000024 METHOD /Users/byroot/.gem/rubies/3.3.4/gems/minitest-5.25.2/lib/minitest.rb:332
c:0003 p:0141 s:0016 e:000015 METHOD /Users/byroot/.gem/rubies/3.3.4/gems/minitest-5.25.2/lib/minitest.rb:288
c:0002 p:0045 s:0008 E:000880 BLOCK  /Users/byroot/.gem/rubies/3.3.4/gems/minitest-5.25.2/lib/minitest.rb:86 [FINISH]
c:0001 p:0000 s:0003 E:000790 DUMMY  [FINISH]

-- Ruby level backtrace information ----------------------------------------
/Users/byroot/.gem/rubies/3.3.4/gems/minitest-5.25.2/lib/minitest.rb:86:in `block in autorun'
/Users/byroot/.gem/rubies/3.3.4/gems/minitest-5.25.2/lib/minitest.rb:288:in `run'
/Users/byroot/.gem/rubies/3.3.4/gems/minitest-5.25.2/lib/minitest.rb:332:in `__run'
/Users/byroot/.gem/rubies/3.3.4/gems/minitest-5.25.2/lib/minitest.rb:332:in `map'
/Users/byroot/.gem/rubies/3.3.4/gems/minitest-5.25.2/lib/minitest.rb:332:in `block in __run'
/Users/byroot/src/github.com/byroot/rails/railties/lib/rails/test_unit/line_filtering.rb:10:in `run'
/Users/byroot/.gem/rubies/3.3.4/gems/minitest-5.25.2/lib/minitest.rb:429:in `run'
/Users/byroot/.gem/rubies/3.3.4/gems/minitest-5.25.2/lib/minitest.rb:459:in `with_info_handler'
/Users/byroot/.gem/rubies/3.3.4/gems/minitest-5.25.2/lib/minitest.rb:472:in `on_signal'
/Users/byroot/.gem/rubies/3.3.4/gems/minitest-5.25.2/lib/minitest.rb:430:in `block in run'
/Users/byroot/.gem/rubies/3.3.4/gems/minitest-5.25.2/lib/minitest.rb:430:in `each'
/Users/byroot/.gem/rubies/3.3.4/gems/minitest-5.25.2/lib/minitest.rb:434:in `block (2 levels) in run'
/Users/byroot/.gem/rubies/3.3.4/gems/minitest-5.25.2/lib/minitest.rb:447:in `run_one_method'
/Users/byroot/.gem/rubies/3.3.4/gems/minitest-5.25.2/lib/minitest.rb:1208:in `run_one_method'
/Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/executor/test_helper.rb:5:in `run'
/Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/execution_wrapper.rb:104:in `perform'
/Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/executor/test_helper.rb:5:in `block in run'
/Users/byroot/.gem/rubies/3.3.4/gems/minitest-5.25.2/lib/minitest/test.rb:88:in `run'
/Users/byroot/.gem/rubies/3.3.4/gems/minitest-5.25.2/lib/minitest.rb:368:in `time_it'
/Users/byroot/.gem/rubies/3.3.4/gems/minitest-5.25.2/lib/minitest/test.rb:89:in `block in run'
/Users/byroot/.gem/rubies/3.3.4/gems/minitest-5.25.2/lib/minitest/test.rb:190:in `capture_exceptions'
/Users/byroot/.gem/rubies/3.3.4/gems/minitest-5.25.2/lib/minitest/test.rb:94:in `block (2 levels) in run'
/Users/byroot/src/github.com/byroot/rails/actiontext/test/integration/controller_render_test.rb:38:in `block in <class:ControllerRenderTest>'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/persistence.rb:55:in `create!'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/suppressor.rb:56:in `save!'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/transactions.rb:366:in `save!'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/transactions.rb:410:in `with_transaction_returning_status'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/connection_handling.rb:310:in `with_connection'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:412:in `with_connection'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/transactions.rb:414:in `block in with_transaction_returning_status'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb:359:in `transaction'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb:367:in `within_new_transaction'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb:623:in `within_new_transaction'
/Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/concurrency/load_interlock_aware_monitor.rb:19:in `synchronize'
/Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/concurrency/load_interlock_aware_monitor.rb:19:in `handle_interrupt'
/Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/concurrency/load_interlock_aware_monitor.rb:23:in `block in synchronize'
/Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/concurrency/load_interlock_aware_monitor.rb:23:in `handle_interrupt'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb:626:in `block in within_new_transaction'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/transactions.rb:418:in `block (2 levels) in with_transaction_returning_status'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/transactions.rb:366:in `block in save!'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/validations.rb:54:in `save!'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/persistence.rb:424:in `save!'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/timestamp.rb:127:in `create_or_update'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/callbacks.rb:441:in `create_or_update'
/Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:912:in `_run_save_callbacks'
/Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:100:in `run_callbacks'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/callbacks.rb:441:in `block in create_or_update'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/persistence.rb:895:in `create_or_update'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/timestamp.rb:116:in `_create_record'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/callbacks.rb:445:in `_create_record'
/Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:912:in `_run_create_callbacks'
/Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:110:in `run_callbacks'
/Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:562:in `invoke_after'
/Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:562:in `each'
/Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:562:in `block in invoke_after'
/Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:207:in `call'
/Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:361:in `block in make_lambda'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/autosave_association.rb:168:in `block in define_non_cyclic_method'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/autosave_association.rb:168:in `instance_eval'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/autosave_association.rb:200:in `block in add_autosave_association_callbacks'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/autosave_association.rb:493:in `save_has_one_association'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/suppressor.rb:52:in `save'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/transactions.rb:362:in `save'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/transactions.rb:410:in `with_transaction_returning_status'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/connection_handling.rb:310:in `with_connection'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:412:in `with_connection'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/transactions.rb:414:in `block in with_transaction_returning_status'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb:357:in `transaction'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/transactions.rb:418:in `block (2 levels) in with_transaction_returning_status'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/transactions.rb:362:in `block in save'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/validations.rb:48:in `save'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/persistence.rb:391:in `save'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/timestamp.rb:127:in `create_or_update'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/callbacks.rb:441:in `create_or_update'
/Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:912:in `_run_save_callbacks'
/Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:140:in `run_callbacks'
/Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:129:in `block in run_callbacks'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/autosave_association.rb:396:in `around_save_collection_association'
/Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:118:in `block in run_callbacks'
/Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:558:in `invoke_before'
/Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:558:in `each'
/Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:558:in `block in invoke_before'
/Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:179:in `call'
/Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:666:in `block in default_terminator'
/Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:666:in `catch'
/Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:667:in `block (2 levels) in default_terminator'
/Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:178:in `block in call'
/Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:406:in `block in make_lambda'
/Users/byroot/src/github.com/byroot/rails/activesupport/lib/active_support/callbacks.rb:406:in `instance_exec'
/Users/byroot/src/github.com/byroot/rails/actiontext/app/models/action_text/rich_text.rb:55:in `block in <class:RichText>'
/Users/byroot/src/github.com/byroot/rails/activemodel/lib/active_model/attribute_methods.rb:273:in `body'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/attribute_methods/read.rb:39:in `_read_attribute'
/Users/byroot/src/github.com/byroot/rails/activemodel/lib/active_model/attribute_set.rb:51:in `fetch_value'
/Users/byroot/src/github.com/byroot/rails/activemodel/lib/active_model/attribute.rb:43:in `value'
/Users/byroot/src/github.com/byroot/rails/activemodel/lib/active_model/attribute.rb:199:in `type_cast'
/Users/byroot/src/github.com/byroot/rails/activemodel/lib/active_model/type/helpers/mutable.rb:8:in `cast'
/Users/byroot/src/github.com/byroot/rails/activerecord/lib/active_record/type/serialized.rb:29:in `serialize'
/Users/byroot/src/github.com/byroot/rails/actiontext/lib/action_text/serialization.rb:19:in `dump'
/Users/byroot/src/github.com/byroot/rails/actiontext/lib/action_text/content.rb:139:in `to_html'
/Users/byroot/src/github.com/byroot/rails/actiontext/lib/action_text/fragment.rb:55:in `to_html'
/Users/byroot/src/github.com/byroot/rails/actiontext/lib/action_text/html_conversion.rb:10:in `node_to_html'
/Users/byroot/.gem/rubies/3.3.4/gems/nokogiri-1.17.0/lib/nokogiri/xml/document_fragment.rb:144:in `to_html'
/Users/byroot/.gem/rubies/3.3.4/gems/nokogiri-1.17.0/lib/nokogiri/xml/node_set.rb:354:in `to_html'
/Users/byroot/.gem/rubies/3.3.4/gems/nokogiri-1.17.0/lib/nokogiri/xml/node_set.rb:354:in `map'
/Users/byroot/.gem/rubies/3.3.4/gems/nokogiri-1.17.0/lib/nokogiri/xml/node_set.rb:236:in `each'
/Users/byroot/.gem/rubies/3.3.4/gems/nokogiri-1.17.0/lib/nokogiri/xml/node_set.rb:236:in `upto'
/Users/byroot/.gem/rubies/3.3.4/gems/nokogiri-1.17.0/lib/nokogiri/xml/node_set.rb:237:in `block in each'
/Users/byroot/.gem/rubies/3.3.4/gems/nokogiri-1.17.0/lib/nokogiri/xml/node_set.rb:354:in `block in to_html'

-- Threading information ---------------------------------------------------
Total ractor count: 1
Ruby thread count for this ractor: 10

-- Machine register context ------------------------------------------------
  x0: 0x0000000000000001  x1: 0x00000000000490f1  x2: 0x000000016fcce700
  x3: 0x0000000000000cf1  x4: 0x00000001300292f0  x5: 0x0000000000000001
  x6: 0x000000011c258b78  x7: 0x0000000000000000 x18: 0x0000000000000000
 x19: 0x000000011c258678 x20: 0x00000000000490f1 x21: 0x000000011cb33d88
 x22: 0x0000000000000000 x23: 0x000000011c258678 x24: 0x000000010100a000
 x25: 0x000000010100a000 x26: 0x000000011cb33d88 x27: 0x000000012a6057a0
 x28: 0x000000010100a000  lr: 0x0000000100dbbab8  fp: 0x000000016fcce740
  sp: 0x000000016fcce6f0

-- C level backtrace information -------------------------------------------
/opt/rubies/3.3.4/lib/libruby.3.3.dylib(rb_vm_bugreport+0xb4c) [0x100ddd404]
/opt/rubies/3.3.4/lib/libruby.3.3.dylib(rb_bug_for_fatal_signal+0x100) [0x100c1efa4]
/opt/rubies/3.3.4/lib/libruby.3.3.dylib(sig_do_nothing+0x0) [0x100d445ac]
/usr/lib/system/libsystem_platform.dylib(_sigtramp+0x38) [0x194083584]
/opt/rubies/3.3.4/lib/libruby.3.3.dylib(callable_method_entry_or_negative+0xc0) [0x100dbbab8]
/opt/rubies/3.3.4/lib/libruby.3.3.dylib(rb_vm_search_method_slowpath+0x104) [0x100db0ab4]
/opt/rubies/3.3.4/lib/libruby.3.3.dylib(vm_exec_core+0x21c0) [0x100db5bc8]
/opt/rubies/3.3.4/lib/libruby.3.3.dylib(rb_vm_exec+0x1ec) [0x100db2894]
/opt/rubies/3.3.4/lib/libruby.3.3.dylib(invoke_block_from_c_bh+0x368) [0x100dd7774]
/opt/rubies/3.3.4/lib/libruby.3.3.dylib(rb_yield_values2+0x64) [0x100dc103c]
/opt/rubies/3.3.4/lib/libruby.3.3.dylib(collect_i+0x1c) [0x100c10548]

This one rings a bell as we've been trying to track this one down at Shopify for over a year now (crash in callable_method_entry_or_negative, basically a corrupted method entry).

byroot added a commit to byroot/nokogiri that referenced this issue Dec 9, 2024
@byroot
Copy link
Contributor Author

byroot commented Dec 9, 2024

I seem to have a good repro for it: byroot@16f3df5

I'll try to figure a fix.

byroot added a commit to byroot/nokogiri that referenced this issue Dec 9, 2024
@byroot
Copy link
Contributor Author

byroot commented Dec 9, 2024

Better repro: byroot@5f88bd9

I'm struggling a bit to follow the relation between the various objects and struct.

What I've managed to figure so far:

  • It's unlikely to be a missing write barrier because the concerned objects aren't WB protected.
  • It crashes in xml_node_set_mark when trying to mark a Xml::Node.
  • node_set->nodeTab[x]->_private points to a Xml::Node that wasn't held by anything, so was GCed.

I'm not yet clear if the bug is that this node should have been marked, or if the bug is that a Node when GCed should reset _private to NULL.

@byroot
Copy link
Contributor Author

byroot commented Dec 9, 2024

Interestingly if I use rb_gc_mark_maybe to avoid crashing on the stale reference, it then consistently crash in callable_method_entry_or_negative (the bug we've been tracking for over a year).

Summoning @peterzhu2118 and @XrXr as I'll keep digging some more, but this seem to be above my pay grade, and some rr magic might be needed.

@flavorjones
Copy link
Member

Thanks for the repro, I'll dig in tomorrow.

@flavorjones
Copy link
Member

Most likely this is related to #3117

@flavorjones
Copy link
Member

Yeah, OK, I understand what's going on. I don't think it's worth having the superteam spend time on it, unless you want to. I've got a couple of ideas for fixes, I'd like to get some sleep and figure out what's best in the morning.

@byroot
Copy link
Contributor Author

byroot commented Dec 10, 2024

I don't think it's worth having the superteam spend time on it,

I mostly pinged them for the callable_method_entry_or_negative part of it. But it's up to them whether they want to spend time on it or not.

flavorjones added a commit that referenced this issue Dec 10, 2024
to make sure it's marked properly. Also, we make sure the new node is
decorated if necessary with its document's decorators.

Fixes #3359
flavorjones added a commit that referenced this issue Dec 10, 2024
to make sure it's marked properly. Also, we make sure the new node is
decorated if necessary with its document's decorators.

Fixes #3359
@flavorjones
Copy link
Member

flavorjones commented Dec 10, 2024

Should be fixed by #3363, backport running through CI at #3364

@flavorjones
Copy link
Member

@byroot Thank you SO MUCH for getting such a tight repro. It was easy to diagnose from there, but you did the hard part.

flavorjones added a commit that referenced this issue Dec 10, 2024
to make sure it's marked properly. Also, we make sure the new node is
decorated if necessary with its document's decorators.

Fixes #3359

Co-authored-by: Jean Boussier <[email protected]>
(cherry picked from commit c72503a)
flavorjones added a commit that referenced this issue Dec 10, 2024
**What problem is this PR intended to solve?**

`Node#dup` adds the new node to the document's node cache to make sure
it's marked properly. Fixes #3359.

Also, we make sure the new node is decorated if necessary with its
document's decorators.


**Have you included adequate test coverage?**

Yes! HUGE thanks to @byroot for doing the work to create a tight
reproduction. 🙇


**Does this change affect the behavior of either the C or the Java
implementations?**

Both bugfixes affect the C implementation only.
flavorjones added a commit that referenced this issue Dec 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
state/needs-triage Inbox for non-installation-related bug reports or help requests
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants