Skip to content

[Ruby] warning: loading in progress, circular require considered harmful #9355

Closed
@ankane

Description

@ankane

What version of protobuf and what language are you using?
Version: 3.19.1
Language: Ruby

What operating system (Linux, Windows, ...) and version? Mac 12.1

What runtime / compiler are you using (e.g., python version or gcc version) Ruby 3.0.3 / Apple clang version 13.0.0

What did you do?
Steps to reproduce the behavior:

  1. Start IRB with warnings enabled irb -W
  2. Run require 'google/protobuf'

What did you expect to see

No warnings

What did you see instead?

<internal:/Users/user/.rbenv/versions/3.0.3/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85: warning: <internal:/Users/user/.rbenv/versions/3.0.3/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85: warning: loading in progress, circular require considered harmful - /Users/user/.rbenv/versions/3.0.3/lib/ruby/gems/3.0.0/gems/google-protobuf-3.19.1-x86_64-darwin/lib/google/protobuf.rb
  from /Users/user/.rbenv/versions/3.0.3/bin/irb:25:in  `<main>'
  from /Users/user/.rbenv/versions/3.0.3/bin/irb:25:in  `load'
  from /Users/user/.rbenv/versions/3.0.3/lib/ruby/gems/3.0.0/gems/irb-1.3.7/exe/irb:11:in  `<top (required)>'
  from /Users/user/.rbenv/versions/3.0.3/lib/ruby/gems/3.0.0/gems/irb-1.3.7/lib/irb.rb:409:in  `start'
  from /Users/user/.rbenv/versions/3.0.3/lib/ruby/gems/3.0.0/gems/irb-1.3.7/lib/irb.rb:480:in  `run'
  from /Users/user/.rbenv/versions/3.0.3/lib/ruby/gems/3.0.0/gems/irb-1.3.7/lib/irb.rb:480:in  `catch'
  from /Users/user/.rbenv/versions/3.0.3/lib/ruby/gems/3.0.0/gems/irb-1.3.7/lib/irb.rb:481:in  `block in run'
  from /Users/user/.rbenv/versions/3.0.3/lib/ruby/gems/3.0.0/gems/irb-1.3.7/lib/irb.rb:547:in  `eval_input'
  from /Users/user/.rbenv/versions/3.0.3/lib/ruby/gems/3.0.0/gems/irb-1.3.7/lib/irb/ruby-lex.rb:247:in  `each_top_level_statement'
  from /Users/user/.rbenv/versions/3.0.3/lib/ruby/gems/3.0.0/gems/irb-1.3.7/lib/irb/ruby-lex.rb:247:in  `catch'
  from /Users/user/.rbenv/versions/3.0.3/lib/ruby/gems/3.0.0/gems/irb-1.3.7/lib/irb/ruby-lex.rb:248:in  `block in each_top_level_statement'
  from /Users/user/.rbenv/versions/3.0.3/lib/ruby/gems/3.0.0/gems/irb-1.3.7/lib/irb/ruby-lex.rb:248:in  `loop'
  from /Users/user/.rbenv/versions/3.0.3/lib/ruby/gems/3.0.0/gems/irb-1.3.7/lib/irb/ruby-lex.rb:266:in  `block (2 levels) in each_top_level_statement'
  from /Users/user/.rbenv/versions/3.0.3/lib/ruby/gems/3.0.0/gems/irb-1.3.7/lib/irb.rb:548:in  `block in eval_input'
  from /Users/user/.rbenv/versions/3.0.3/lib/ruby/gems/3.0.0/gems/irb-1.3.7/lib/irb.rb:758:in  `signal_status'
  from /Users/user/.rbenv/versions/3.0.3/lib/ruby/gems/3.0.0/gems/irb-1.3.7/lib/irb.rb:567:in  `block (2 levels) in eval_input'
  from /Users/user/.rbenv/versions/3.0.3/lib/ruby/gems/3.0.0/gems/irb-1.3.7/lib/irb/context.rb:450:in  `evaluate'
  from /Users/user/.rbenv/versions/3.0.3/lib/ruby/gems/3.0.0/gems/irb-1.3.7/lib/irb/workspace.rb:116:in  `evaluate'
  from /Users/user/.rbenv/versions/3.0.3/lib/ruby/gems/3.0.0/gems/irb-1.3.7/lib/irb/workspace.rb:116:in  `eval'
  from (irb):1:in  `<main>'
  from <internal:/Users/user/.rbenv/versions/3.0.3/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:149:in  `require'
  from <internal:/Users/user/.rbenv/versions/3.0.3/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:160:in  `rescue in require'
  from <internal:/Users/user/.rbenv/versions/3.0.3/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:160:in  `require'
  from /Users/user/.rbenv/versions/3.0.3/lib/ruby/gems/3.0.0/gems/google-protobuf-3.19.1-x86_64-darwin/lib/google/protobuf.rb:56:in  `<top (required)>'
  from <internal:/Users/user/.rbenv/versions/3.0.3/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in  `require'
  from <internal:/Users/user/.rbenv/versions/3.0.3/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in  `require'
  from /Users/user/.rbenv/versions/3.0.3/lib/ruby/gems/3.0.0/gems/google-protobuf-3.19.1-x86_64-darwin/lib/google/protobuf/descriptor_dsl.rb:5:in  `<top (required)>'
  from <internal:/Users/user/.rbenv/versions/3.0.3/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in  `require'
  from <internal:/Users/user/.rbenv/versions/3.0.3/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in  `require'
  from /Users/user/.rbenv/versions/3.0.3/lib/ruby/gems/3.0.0/gems/google-protobuf-3.19.1-x86_64-darwin/lib/google/protobuf/descriptor_pb.rb:4:in  `<top (required)>'
  from <internal:/Users/user/.rbenv/versions/3.0.3/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in  `require'
  from <internal:/Users/user/.rbenv/versions/3.0.3/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in  `require'

Make sure you include information that can help us debug (full error message, exception listing, stack trace, logs).

Anything else we should know about your project / environment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions