Skip to content

Recurring uninitialized constant JSON::Ext::ParserConfig error #19553

Open
@mahrud

Description

@mahrud

brew doctor output

$ brew doctor
Error: uninitialized constant JSON::Ext::ParserConfig
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/json-2.10.2/lib/json/ext.rb:32:in `<module:Ext>'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/json-2.10.2/lib/json/ext.rb:8:in `<module:JSON>'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/json-2.10.2/lib/json/ext.rb:5:in `<top (required)>'
<internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:37:in `require'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/json-2.10.2/lib/json.rb:586:in `<module:JSON>'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/json-2.10.2/lib/json.rb:584:in `<top (required)>'
<internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:37:in `require'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/cask/config.rb:4:in `<top (required)>'
<internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:37:in `require'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/cli/parser.rb:6:in `<top (required)>'
<internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:37:in `require'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/brew.rb:50:in `<main>'

Now, if I do the following:

cd /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew
rm -rf vendor
git checkout .
brew update
brew doctor

I get:

$ brew doctor
Your system is ready to brew.

Verification

  • My "brew doctor output" above says Your system is ready to brew. and am still able to reproduce my issue.
  • I ran brew update twice and am still able to reproduce my issue.
  • This issue's title and/or description do not reference a single formula e.g. brew install wget. If they do, open an issue at https://github.com/Homebrew/homebrew-core/issues/new/choose instead.

brew config output

brew config
Error: uninitialized constant JSON::Ext::ParserConfig
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/json-2.10.2/lib/json/ext.rb:32:in `<module:Ext>'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/json-2.10.2/lib/json/ext.rb:8:in `<module:JSON>'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/json-2.10.2/lib/json/ext.rb:5:in `<top (required)>'
<internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:37:in `require'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/json-2.10.2/lib/json.rb:586:in `<module:JSON>'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/json-2.10.2/lib/json.rb:584:in `<top (required)>'
<internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:37:in `require'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/cask/config.rb:4:in `<top (required)>'
<internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:37:in `require'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/cli/parser.rb:6:in `<top (required)>'
<internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:37:in `require'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/brew.rb:50:in `<main>'

After the same workaround as above, I get:

$ brew config
HOMEBREW_VERSION: 4.4.24-291-gf3bd91d
ORIGIN: https://github.com/Homebrew/brew
HEAD: f3bd91d3afe086824d24708230e1f0c7f943135a
Last commit: 2 hours ago
Branch: master
Core tap HEAD: a374670ca946736bbb383555609414a9d41c5f1a
Core tap last commit: 56 minutes ago
Core tap JSON: 20 Mar 09:39 UTC
HOMEBREW_PREFIX: /home/linuxbrew/.linuxbrew
HOMEBREW_CASK_OPTS: []
HOMEBREW_DISPLAY: :0
HOMEBREW_EDITOR: emacs
HOMEBREW_GITHUB_API_TOKEN: set
HOMEBREW_MAKE_JOBS: 8
HOMEBREW_NO_AUTO_UPDATE: set
HOMEBREW_SORBET_RUNTIME: set
Homebrew Ruby: 3.3.7 => /usr/bin/ruby
CPU: octa-core 64-bit skylake
Clang: 19.1.7
Git: 2.48.1 => /bin/git
Curl: 8.6.0 => /bin/curl
Kernel: Linux 6.13.6-100.fc40.x86_64 x86_64 GNU/Linux
OS: Fedora release 40 (Forty)
Host glibc: 2.39
/usr/bin/gcc: 14.2.1
/usr/bin/ruby: 3.3.7
glibc: N/A
gcc@11: N/A
gcc: 14.2.0_1
xorg: N/A

What were you trying to do (and why)?

This issue seems to be happening during various brew calls, such as audit, style, bump-formula-pr, ...

What happened (include all command output)?

$ brew bump-formula-pr msolve --version 0.7.5
==> Installing 'bundler' gem
Fetching bundler-2.5.20.gem
Fetching gem metadata from https://rubygems.org/.......
Fetching public_suffix 6.0.1
Fetching ast 2.4.2
Fetching base64 0.2.0
Fetching bindata 2.5.0
Installing base64 0.2.0
Installing ast 2.4.2
Fetching concurrent-ruby 1.3.5
Installing bindata 2.5.0
Installing public_suffix 6.0.1
Fetching json 2.10.2
Installing json 2.10.2 with native extensions
Fetching language_server-protocol 3.17.0.4
Installing language_server-protocol 3.17.0.4
Installing concurrent-ruby 1.3.5
Fetching lint_roller 1.1.0
Installing lint_roller 1.1.0
Fetching parallel 1.26.3
Installing parallel 1.26.3
Fetching racc 1.8.1
Installing racc 1.8.1 with native extensions
Fetching plist 3.7.2
Installing plist 3.7.2
Fetching rainbow 3.1.1
Installing rainbow 3.1.1
Fetching regexp_parser 2.10.0
Installing regexp_parser 2.10.0
Fetching rexml 3.4.1
Installing rexml 3.4.1
Fetching ruby-progressbar 1.13.0
Installing ruby-progressbar 1.13.0
Fetching unicode-emoji 4.0.4
Fetching ruby-macho 4.1.0
Installing ruby-macho 4.1.0
Installing unicode-emoji 4.0.4
Fetching sorbet-runtime 0.5.11945
Installing sorbet-runtime 0.5.11945
Fetching warning 1.5.0
Installing warning 1.5.0
Fetching addressable 2.8.7
Installing addressable 2.8.7
Fetching elftools 1.3.1
Installing elftools 1.3.1
Fetching unicode-display_width 3.1.4
Fetching patchelf 1.5.1
Installing unicode-display_width 3.1.4
Installing patchelf 1.5.1
Fetching parser 3.3.7.1
Installing parser 3.3.7.1
Fetching rubocop-ast 1.39.0
Installing rubocop-ast 1.39.0
Fetching rubocop 1.74.0
Installing rubocop 1.74.0
Fetching rubocop-md 2.0.0
Fetching rubocop-performance 1.24.0
Fetching rubocop-rspec 3.5.0
Fetching rubocop-sorbet 0.9.0
Installing rubocop-md 2.0.0
Installing rubocop-performance 1.24.0
Installing rubocop-sorbet 0.9.0
Installing rubocop-rspec 3.5.0
Bundle complete! 42 Gemfile dependencies, 31 gems now installed.
Bundled gems are installed into `../../../Homebrew/vendor/bundle`
==> Downloading https://github.com/algebraic-solving/msolve/archive/refs/tags/v0.7.5.tar.gz
==> Downloading from https://codeload.github.com/algebraic-solving/msolve/tar.gz/refs/tags/v0.7.5
##=O=#   #
Warning: Cannot verify integrity of 'ee5fd12c524d250500b9e8040d12c4e1e2b17f6a3bfb1d41343936293e853d3f--msolve-0.7.5.tar.gz'.
No checksum was provided.
For your reference, the checksum is:
  sha256 "e88368abfd1e1918329ff9444164ca0e304835794fec68d192a63c845ae63128"
Error: uninitialized constant JSON::Ext::ParserConfig
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/json-2.10.2/lib/json/ext.rb:32:in `<module:Ext>'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/json-2.10.2/lib/json/ext.rb:8:in `<module:JSON>'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/json-2.10.2/lib/json/ext.rb:5:in `<top (required)>'
<internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:37:in `require'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/json-2.10.2/lib/json.rb:586:in `<module:JSON>'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/json-2.10.2/lib/json.rb:584:in `<top (required)>'
<internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:37:in `require'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/cask/config.rb:4:in `<top (required)>'
<internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:37:in `require'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/cli/parser.rb:6:in `<top (required)>'
<internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:37:in `require'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/brew.rb:50:in `<main>'
Error: `brew audit` failed!

What did you expect to happen?

Brew to create a update PR, or show the output of brew style.

Step-by-step reproduction instructions (by running brew commands)

Here is another instance, demonstrating the the error is not specific to one formula. I first clean up the vendor directory and call brew update, everything is normal, then:

$ brew style flint
==> Installing 'bundler' gem
Fetching bundler-2.5.20.gem
Fetching gem metadata from https://rubygems.org/.......
Fetching public_suffix 6.0.1
Fetching ast 2.4.2
Fetching base64 0.2.0
Fetching bindata 2.5.0
Installing base64 0.2.0
Installing ast 2.4.2
Fetching concurrent-ruby 1.3.5
Installing bindata 2.5.0
Installing public_suffix 6.0.1
Fetching json 2.10.2
Installing json 2.10.2 with native extensions
Fetching language_server-protocol 3.17.0.4
Installing concurrent-ruby 1.3.5
Installing language_server-protocol 3.17.0.4
Fetching lint_roller 1.1.0
Installing lint_roller 1.1.0
Fetching parallel 1.26.3
Installing parallel 1.26.3
Fetching racc 1.8.1
Installing racc 1.8.1 with native extensions
Fetching plist 3.7.2
Installing plist 3.7.2
Fetching rainbow 3.1.1
Installing rainbow 3.1.1
Fetching regexp_parser 2.10.0
Installing regexp_parser 2.10.0
Fetching ruby-progressbar 1.13.0
Installing ruby-progressbar 1.13.0
Fetching unicode-emoji 4.0.4
Fetching ruby-macho 4.1.0
Installing ruby-macho 4.1.0
Installing unicode-emoji 4.0.4
Fetching sorbet-runtime 0.5.11945
Installing sorbet-runtime 0.5.11945
Fetching warning 1.5.0
Installing warning 1.5.0
Fetching addressable 2.8.7
Installing addressable 2.8.7
Fetching elftools 1.3.1
Fetching unicode-display_width 3.1.4
Installing elftools 1.3.1
Installing unicode-display_width 3.1.4
Fetching patchelf 1.5.1
Installing patchelf 1.5.1
Fetching parser 3.3.7.1
Installing parser 3.3.7.1
Fetching rubocop-ast 1.39.0
Installing rubocop-ast 1.39.0
Fetching rubocop 1.74.0
Installing rubocop 1.74.0
Fetching rubocop-md 2.0.0
Fetching rubocop-performance 1.24.0
Fetching rubocop-rspec 3.5.0
Fetching rubocop-sorbet 0.9.0
Installing rubocop-md 2.0.0
Installing rubocop-performance 1.24.0
Installing rubocop-sorbet 0.9.0
Installing rubocop-rspec 3.5.0
Bundle complete! 42 Gemfile dependencies, 30 gems now installed.
Bundled gems are installed into `./vendor/bundle`
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/json-2.10.2/lib/json/ext.rb:32:in `<module:Ext>': uninitialized constant JSON::Ext::ParserConfig (NameError)
	from /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/json-2.10.2/lib/json/ext.rb:8:in `<module:JSON>'
	from /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/json-2.10.2/lib/json/ext.rb:5:in `<top (required)>'
	from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:37:in `require'
	from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:37:in `require'
	from /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/json-2.10.2/lib/json.rb:586:in `<module:JSON>'
	from /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/json-2.10.2/lib/json.rb:584:in `<top (required)>'
	from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:37:in `require'
	from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:37:in `require'
	from /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/rubocop-1.74.0/lib/rubocop/formatter/json_formatter.rb:3:in `<top (required)>'
	from /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/rubocop-1.74.0/lib/rubocop/formatter.rb:19:in `require_relative'
	from /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/rubocop-1.74.0/lib/rubocop/formatter.rb:19:in `<module:Formatter>'
	from /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/rubocop-1.74.0/lib/rubocop/formatter.rb:5:in `<module:RuboCop>'
	from /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/rubocop-1.74.0/lib/rubocop/formatter.rb:3:in `<top (required)>'
	from /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/rubocop-1.74.0/lib/rubocop.rb:761:in `require_relative'
	from /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/rubocop-1.74.0/lib/rubocop.rb:761:in `<top (required)>'
	from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:37:in `require'
	from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:37:in `require'
	from /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/utils/rubocop.rb:9:in `block in <main>'
	from /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/warnings.rb:29:in `ignore'
	from /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/sorbet-runtime-0.5.11945/lib/types/private/methods/call_validation.rb:282:in `bind_call'
	from /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/sorbet-runtime-0.5.11945/lib/types/private/methods/call_validation.rb:282:in `validate_call'
	from /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/bundle/ruby/3.3.0/gems/sorbet-runtime-0.5.11945/lib/types/private/methods/_methods.rb:277:in `block in _on_method_added'
	from /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/utils/rubocop.rb:8:in `<main>'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions