Skip to content
  • Takashi Kokubun's avatar
    52611129
    Revert "reuse open(2) from rb_file_load_ok on POSIX-like system" · 52611129
    Takashi Kokubun authored
    This reverts commit 35136e1e.
    
    test-spec has been failing since this revision.
    
    .github/workflows/compilers.yml:82
    https://github.com/ruby/ruby/actions/runs/4276884159/jobs/7445299562
    
    ```
    env:
      # Minimal flags to pass the check.
      default_cc: 'gcc-11 -fcf-protection -Wa,--generate-missing-build-notes=yes'
      optflags: '-O2'
      LDFLAGS: '-Wl,-z,now'
      # FIXME: Drop skipping options
      # https://bugs.ruby-lang.org/issues/18061
      # https://sourceware.org/annobin/annobin.html/Test-pie.html
      TEST_ANNOCHECK_OPTS: "--skip-pie --skip-gaps"
    ```
    
    Failure:
    
    ```
      1)
      An exception occurred during: Kernel#require (file extensions) does not load a C-extension file if a complex-extensioned .rb file is already loaded
      /__w/ruby/ruby/src/spec/ruby/core/kernel/shared/require.rb:317
      Kernel#require (file extensions) does not load a C-extension file if a complex-extensioned .rb file is already loaded ERROR
      LeakError: Leaked file descriptor: 8 : #<File:/__w/ruby/ruby/src/spec/ruby/fixtures/code/load_fixture.ext.rb>
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_spec.rb:5:in `<top (required)>'
    
      2)
      An exception occurred during: Kernel#require ($LOADED_FEATURES) stores an absolute path
      /__w/ruby/ruby/src/spec/ruby/core/kernel/shared/require.rb:330
      Kernel#require ($LOADED_FEATURES) stores an absolute path ERROR
      LeakError: Closed file descriptor: 8
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_spec.rb:5:in `<top (required)>'
    
      3)
      An exception occurred during: Kernel#require ($LOADED_FEATURES) does not load a non-canonical path for a file already loaded
      /__w/ruby/ruby/src/spec/ruby/core/kernel/shared/require.rb:535
      Kernel#require ($LOADED_FEATURES) does not load a non-canonical path for a file already loaded ERROR
      LeakError: Leaked file descriptor: 8 : #<File:/__w/ruby/ruby/src/spec/ruby/fixtures/code/load_fixture.rb>
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_spec.rb:5:in `<top (required)>'
    
      4)
      An exception occurred during: Kernel#require ($LOADED_FEATURES) does not load a ../ relative path for a file already loaded
      /__w/ruby/ruby/src/spec/ruby/core/kernel/shared/require.rb:551
      Kernel#require ($LOADED_FEATURES) does not load a ../ relative path for a file already loaded ERROR
      LeakError: Leaked file descriptor: 9 : #<File:../code/load_fixture.rb>
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_spec.rb:5:in `<top (required)>'
    
      5)
      An exception occurred during: Kernel#require ($LOADED_FEATURES) complex, enumerator, rational, thread, ruby2_keywords are already required
      /__w/ruby/ruby/src/spec/ruby/core/kernel/shared/require.rb:563
      Kernel#require ($LOADED_FEATURES) complex, enumerator, rational, thread, ruby2_keywords are already required ERROR
      LeakError: Closed file descriptor: 8
      Closed file descriptor: 9
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_spec.rb:5:in `<top (required)>'
    
      6)
      An exception occurred during: Kernel.require (file extensions) does not load a C-extension file if a complex-extensioned .rb file is already loaded
      /__w/ruby/ruby/src/spec/ruby/core/kernel/shared/require.rb:317
      Kernel.require (file extensions) does not load a C-extension file if a complex-extensioned .rb file is already loaded ERROR
      LeakError: Leaked file descriptor: 8 : #<File:/__w/ruby/ruby/src/spec/ruby/fixtures/code/load_fixture.ext.rb>
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_spec.rb:23:in `<top (required)>'
    
      7)
      An exception occurred during: Kernel.require ($LOADED_FEATURES) stores an absolute path
      /__w/ruby/ruby/src/spec/ruby/core/kernel/shared/require.rb:330
      Kernel.require ($LOADED_FEATURES) stores an absolute path ERROR
      LeakError: Closed file descriptor: 8
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_spec.rb:23:in `<top (required)>'
    
      8)
      An exception occurred during: Kernel.require ($LOADED_FEATURES) does not load a non-canonical path for a file already loaded
      /__w/ruby/ruby/src/spec/ruby/core/kernel/shared/require.rb:535
      Kernel.require ($LOADED_FEATURES) does not load a non-canonical path for a file already loaded ERROR
      LeakError: Leaked file descriptor: 8 : #<File:/__w/ruby/ruby/src/spec/ruby/fixtures/code/load_fixture.rb>
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_spec.rb:23:in `<top (required)>'
    
      9)
      An exception occurred during: Kernel.require ($LOADED_FEATURES) does not load a ../ relative path for a file already loaded
      /__w/ruby/ruby/src/spec/ruby/core/kernel/shared/require.rb:551
      Kernel.require ($LOADED_FEATURES) does not load a ../ relative path for a file already loaded ERROR
      LeakError: Leaked file descriptor: 9 : #<File:../code/load_fixture.rb>
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_spec.rb:23:in `<top (required)>'
    
      10)
      An exception occurred during: Kernel.require ($LOADED_FEATURES) complex, enumerator, rational, thread, ruby2_keywords are already required
      /__w/ruby/ruby/src/spec/ruby/core/kernel/shared/require.rb:563
      Kernel.require ($LOADED_FEATURES) complex, enumerator, rational, thread, ruby2_keywords are already required ERROR
      LeakError: Closed file descriptor: 8
      Closed file descriptor: 9
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_spec.rb:23:in `<top (required)>'
    
      11)
      An exception occurred during: Kernel#require_relative with a relative path (file extensions) does not load a C-extension file if a complex-extensioned .rb file is already loaded
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_relative_spec.rb:197
      Kernel#require_relative with a relative path (file extensions) does not load a C-extension file if a complex-extensioned .rb file is already loaded ERROR
      LeakError: Leaked file descriptor: 8 : #<File:/__w/ruby/ruby/src/spec/ruby/fixtures/code/load_fixture.ext.rb>
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_relative_spec.rb:4:in `<top (required)>'
    
      12)
      An exception occurred during: Kernel#require_relative with a relative path ($LOADED_FEATURES) stores an absolute path
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_relative_spec.rb:205
      Kernel#require_relative with a relative path ($LOADED_FEATURES) stores an absolute path ERROR
      LeakError: Closed file descriptor: 8
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_relative_spec.rb:4:in `<top (required)>'
    
      13)
      An exception occurred during: Kernel#require_relative with an absolute path (file extensions) does not load a C-extension file if a complex-extensioned .rb file is already loaded
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_relative_spec.rb:399
      Kernel#require_relative with an absolute path (file extensions) does not load a C-extension file if a complex-extensioned .rb file is already loaded ERROR
      LeakError: Leaked file descriptor: 8 : #<File:/__w/ruby/ruby/src/spec/ruby/fixtures/code/load_fixture.ext.rb>
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_relative_spec.rb:277:in `<top (required)>'
    
      14)
      An exception occurred during: Kernel#require_relative with an absolute path ($LOAD_FEATURES) stores an absolute path
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_relative_spec.rb:407
      Kernel#require_relative with an absolute path ($LOAD_FEATURES) stores an absolute path ERROR
      LeakError: Closed file descriptor: 8
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_relative_spec.rb:277:in `<top (required)>'
    ```
    52611129
    Revert "reuse open(2) from rb_file_load_ok on POSIX-like system"
    Takashi Kokubun authored
    This reverts commit 35136e1e.
    
    test-spec has been failing since this revision.
    
    .github/workflows/compilers.yml:82
    https://github.com/ruby/ruby/actions/runs/4276884159/jobs/7445299562
    
    ```
    env:
      # Minimal flags to pass the check.
      default_cc: 'gcc-11 -fcf-protection -Wa,--generate-missing-build-notes=yes'
      optflags: '-O2'
      LDFLAGS: '-Wl,-z,now'
      # FIXME: Drop skipping options
      # https://bugs.ruby-lang.org/issues/18061
      # https://sourceware.org/annobin/annobin.html/Test-pie.html
      TEST_ANNOCHECK_OPTS: "--skip-pie --skip-gaps"
    ```
    
    Failure:
    
    ```
      1)
      An exception occurred during: Kernel#require (file extensions) does not load a C-extension file if a complex-extensioned .rb file is already loaded
      /__w/ruby/ruby/src/spec/ruby/core/kernel/shared/require.rb:317
      Kernel#require (file extensions) does not load a C-extension file if a complex-extensioned .rb file is already loaded ERROR
      LeakError: Leaked file descriptor: 8 : #<File:/__w/ruby/ruby/src/spec/ruby/fixtures/code/load_fixture.ext.rb>
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_spec.rb:5:in `<top (required)>'
    
      2)
      An exception occurred during: Kernel#require ($LOADED_FEATURES) stores an absolute path
      /__w/ruby/ruby/src/spec/ruby/core/kernel/shared/require.rb:330
      Kernel#require ($LOADED_FEATURES) stores an absolute path ERROR
      LeakError: Closed file descriptor: 8
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_spec.rb:5:in `<top (required)>'
    
      3)
      An exception occurred during: Kernel#require ($LOADED_FEATURES) does not load a non-canonical path for a file already loaded
      /__w/ruby/ruby/src/spec/ruby/core/kernel/shared/require.rb:535
      Kernel#require ($LOADED_FEATURES) does not load a non-canonical path for a file already loaded ERROR
      LeakError: Leaked file descriptor: 8 : #<File:/__w/ruby/ruby/src/spec/ruby/fixtures/code/load_fixture.rb>
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_spec.rb:5:in `<top (required)>'
    
      4)
      An exception occurred during: Kernel#require ($LOADED_FEATURES) does not load a ../ relative path for a file already loaded
      /__w/ruby/ruby/src/spec/ruby/core/kernel/shared/require.rb:551
      Kernel#require ($LOADED_FEATURES) does not load a ../ relative path for a file already loaded ERROR
      LeakError: Leaked file descriptor: 9 : #<File:../code/load_fixture.rb>
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_spec.rb:5:in `<top (required)>'
    
      5)
      An exception occurred during: Kernel#require ($LOADED_FEATURES) complex, enumerator, rational, thread, ruby2_keywords are already required
      /__w/ruby/ruby/src/spec/ruby/core/kernel/shared/require.rb:563
      Kernel#require ($LOADED_FEATURES) complex, enumerator, rational, thread, ruby2_keywords are already required ERROR
      LeakError: Closed file descriptor: 8
      Closed file descriptor: 9
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_spec.rb:5:in `<top (required)>'
    
      6)
      An exception occurred during: Kernel.require (file extensions) does not load a C-extension file if a complex-extensioned .rb file is already loaded
      /__w/ruby/ruby/src/spec/ruby/core/kernel/shared/require.rb:317
      Kernel.require (file extensions) does not load a C-extension file if a complex-extensioned .rb file is already loaded ERROR
      LeakError: Leaked file descriptor: 8 : #<File:/__w/ruby/ruby/src/spec/ruby/fixtures/code/load_fixture.ext.rb>
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_spec.rb:23:in `<top (required)>'
    
      7)
      An exception occurred during: Kernel.require ($LOADED_FEATURES) stores an absolute path
      /__w/ruby/ruby/src/spec/ruby/core/kernel/shared/require.rb:330
      Kernel.require ($LOADED_FEATURES) stores an absolute path ERROR
      LeakError: Closed file descriptor: 8
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_spec.rb:23:in `<top (required)>'
    
      8)
      An exception occurred during: Kernel.require ($LOADED_FEATURES) does not load a non-canonical path for a file already loaded
      /__w/ruby/ruby/src/spec/ruby/core/kernel/shared/require.rb:535
      Kernel.require ($LOADED_FEATURES) does not load a non-canonical path for a file already loaded ERROR
      LeakError: Leaked file descriptor: 8 : #<File:/__w/ruby/ruby/src/spec/ruby/fixtures/code/load_fixture.rb>
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_spec.rb:23:in `<top (required)>'
    
      9)
      An exception occurred during: Kernel.require ($LOADED_FEATURES) does not load a ../ relative path for a file already loaded
      /__w/ruby/ruby/src/spec/ruby/core/kernel/shared/require.rb:551
      Kernel.require ($LOADED_FEATURES) does not load a ../ relative path for a file already loaded ERROR
      LeakError: Leaked file descriptor: 9 : #<File:../code/load_fixture.rb>
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_spec.rb:23:in `<top (required)>'
    
      10)
      An exception occurred during: Kernel.require ($LOADED_FEATURES) complex, enumerator, rational, thread, ruby2_keywords are already required
      /__w/ruby/ruby/src/spec/ruby/core/kernel/shared/require.rb:563
      Kernel.require ($LOADED_FEATURES) complex, enumerator, rational, thread, ruby2_keywords are already required ERROR
      LeakError: Closed file descriptor: 8
      Closed file descriptor: 9
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_spec.rb:23:in `<top (required)>'
    
      11)
      An exception occurred during: Kernel#require_relative with a relative path (file extensions) does not load a C-extension file if a complex-extensioned .rb file is already loaded
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_relative_spec.rb:197
      Kernel#require_relative with a relative path (file extensions) does not load a C-extension file if a complex-extensioned .rb file is already loaded ERROR
      LeakError: Leaked file descriptor: 8 : #<File:/__w/ruby/ruby/src/spec/ruby/fixtures/code/load_fixture.ext.rb>
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_relative_spec.rb:4:in `<top (required)>'
    
      12)
      An exception occurred during: Kernel#require_relative with a relative path ($LOADED_FEATURES) stores an absolute path
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_relative_spec.rb:205
      Kernel#require_relative with a relative path ($LOADED_FEATURES) stores an absolute path ERROR
      LeakError: Closed file descriptor: 8
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_relative_spec.rb:4:in `<top (required)>'
    
      13)
      An exception occurred during: Kernel#require_relative with an absolute path (file extensions) does not load a C-extension file if a complex-extensioned .rb file is already loaded
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_relative_spec.rb:399
      Kernel#require_relative with an absolute path (file extensions) does not load a C-extension file if a complex-extensioned .rb file is already loaded ERROR
      LeakError: Leaked file descriptor: 8 : #<File:/__w/ruby/ruby/src/spec/ruby/fixtures/code/load_fixture.ext.rb>
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_relative_spec.rb:277:in `<top (required)>'
    
      14)
      An exception occurred during: Kernel#require_relative with an absolute path ($LOAD_FEATURES) stores an absolute path
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_relative_spec.rb:407
      Kernel#require_relative with an absolute path ($LOAD_FEATURES) stores an absolute path ERROR
      LeakError: Closed file descriptor: 8
      /__w/ruby/ruby/src/spec/ruby/core/kernel/require_relative_spec.rb:277:in `<top (required)>'
    ```
Loading