Jira (PUP-10683) Unit tests break on Ubuntu with Jruby when rpm is on the box

2 views
Skip to first unread message

Gheorghe Popescu (Jira)

unread,
Oct 1, 2020, 8:18:04 AM10/1/20
to puppe...@googlegroups.com
Gheorghe Popescu created an issue
 
Puppet / Improvement PUP-10683
Unit tests break on Ubuntu with Jruby when rpm is on the box
Issue Type: Improvement Improvement
Assignee: Unassigned
Created: 2020/10/01 5:17 AM
Priority: Normal Normal
Reporter: Gheorghe Popescu

This was seen when trying to run puppet unit tests with Jruby on github actions(where the rpm package is installed on the default runner).

Steps to reproduce an an Ubuntu box:

  • have jruby installed(can be done using rvm)

    ❯~/puppet# ruby --version
    jruby 9.2.9.0 (2.5.7) 2019-10-30 458ad3e OpenJDK 64-Bit Server VM 25.265-b01 on 1.8.0_265-8u265-b01-0ubuntu2~18.04-b01 +jit [linux-x86_64]
    

  • have rpm installed

    ❯~/puppet# apt install rpm
    

  • run the specs spec/unit/provider/package/rpm_spec.rb

    ❯~/puppet# bundle exec rspec spec/unit/provider/package/rpm_spec.rb
     
    An error occurred while loading ./spec/unit/provider/package/rpm_spec.rb.
    Failure/Error:
          child_pid = Kernel.fork do
            STDIN.reopen(stdin)
            STDOUT.reopen(stdout)
            STDERR.reopen(stderr)
     
            $stdin = STDIN
            $stdout = STDOUT
            $stderr = STDERR
     
            begin
     
    Puppet::Error:
      Could not autoload puppet/type/package: Could not autoload puppet/provider/package/up2date: Could not autoload puppet/provider/package/rpm: fork is not available on this platform
    # ./lib/puppet/util.rb:508:in `safe_posix_fork'
    # ./lib/puppet/util/execution.rb:323:in `execute_posix'
    # ./lib/puppet/util/execution.rb:217:in `execute'
    # ./lib/puppet/provider/command.rb:23:in `execute'
    # ./lib/puppet/provider.rb:209:in `block in rpm'
    # ./lib/puppet/provider/package/rpm.rb:34:in `block in <main>'
    # ./lib/puppet/util/classgen.rb:132:in `genthing'
    # ./lib/puppet/util/classgen.rb:33:in `genclass'
    # ./lib/puppet/type.rb:1847:in `provide'
    # ./lib/puppet/type.rb:1832:in `provide'
    # ./lib/puppet/provider/package/up2date.rb:1:in `<main>'
    # ./lib/puppet/util/autoload.rb:78:in `load_file'
    # ./lib/puppet/util/autoload.rb:93:in `block in loadall'
    # ./lib/puppet/util/autoload.rb:91:in `loadall'
    # ./lib/puppet/util/autoload.rb:203:in `loadall'
    # ./lib/puppet/metatype/manager.rb:126:in `block in newtype'
    # ./lib/puppet/concurrent/lock.rb:10:in `synchronize'
    # ./lib/puppet/metatype/manager.rb:73:in `newtype'
    # ./lib/puppet/type/package.rb:11:in `<module:Puppet>'
    # ./lib/puppet/type/package.rb:10:in `<main>'
    # ./lib/puppet/util/autoload.rb:78:in `load_file'
    # ./lib/puppet/util/autoload.rb:189:in `load'
    # ./lib/puppet/metatype/manager.rb:171:in `block in type'
    # ./lib/puppet/concurrent/lock.rb:10:in `synchronize'
    # ./lib/puppet/metatype/manager.rb:154:in `type'
    # ./spec/unit/provider/package/rpm_spec.rb:3:in `<main>'
    # ------------------
    # --- Caused by: ---
    # NotImplementedError:
    #   fork is not available on this platform
    #   ./lib/puppet/util.rb:508:in `safe_posix_fork'
    Run options: exclude {:broken=>true, :benchmark=>true}
     
    All examples were filtered out
     
     
    Finished in 0.00046 seconds (files took 5.52 seconds to load)
    0 examples, 0 failures, 1 error occurred outside of examples
    

  • if rpm package is uninstalled, tests are passing

    ❯~/puppet# apt remove rpm
     
    ❯~/puppet# bundle exec rspec spec/unit/provider/package/rpm_spec.rb
    Run options: exclude {:broken=>true, :benchmark=>true}
    .............................................................
     
    Finished in 4.83 seconds (files took 5.25 seconds to load)
    61 examples, 0 failures
    

Add Comment Add Comment
 
This message was sent by Atlassian Jira (v8.5.2#805002-sha1:a66f935)
Atlassian logo
Reply all
Reply to author
Forward
0 new messages