Skip to content

Chef/Modernize/CronDFileOrTemplate causes RuboCop error on non-cron file resources #957

@LandonThomas

Description

@LandonThomas

Version:

Cookstyle 7.32.1
  * RuboCop 1.25.1

Environment:

MacOS 11.6.4 running Chef Workstation 22.10.1013 using example cookbook code.

Scenario:

When file resources iterate through loops and interpolate strings from embedded arrays, it can trigger an error from the Chef/Modernize/CronDFileOrTemplate cop, even through crond isn't in scope.

Steps to Reproduce:

Create an example cookbook with this recipe code:

[ %w( test /etc/file1 ) ].each do |arr|
  file "file_#{arr[1]}" do
    path arr[1]
  end
end

s = Set[]
s.add([ 'test', '/etc/file2'])
s.each do |arr|
  file "file_#{arr[1]}" do
    path arr[1]
  end
end

{
  files: [ 'test', '/etc/file3'],
}.each do |title, config|
  file "file_#{title}" do
    path config[1]
  end
end

This is based on code I'm seeing triggering the error but I tried to simplify it as much as I could.

Expected Result:

I have code like this throughout my app stack and recently I've gotten multiple errors whereas in the past they passed. I suspect this change introduced the bug: #941

If I add .rubocop.yml to the cookbook base directory with this content:

Chef/Modernize/CronDFileOrTemplate:
  Enabled: false

Cookstyle returns:

% cookstyle
Inspecting 4 files
....

4 files inspected, no offenses detected

Actual Result:

Within the example cookbook:

% cookstyle
An error occurred while Chef/Modernize/CronDFileOrTemplate cop was inspecting /Users/user1234/chef/example_cookbook/recipes/default.rb:2:2.
To see the complete backtrace run rubocop -d.
An error occurred while Chef/Modernize/CronDFileOrTemplate cop was inspecting /Users/user1234/chef/example_cookbook/recipes/default.rb:10:2.
To see the complete backtrace run rubocop -d.
An error occurred while Chef/Modernize/CronDFileOrTemplate cop was inspecting /Users/user1234/chef/example_cookbook/recipes/default.rb:18:2.
To see the complete backtrace run rubocop -d.
Inspecting 4 files
..An error occurred while Chef/Modernize/CronDFileOrTemplate cop was inspecting /Users/user1234/chef/example_cookbook/recipes/default.rb:2:2.
To see the complete backtrace run rubocop -d.
An error occurred while Chef/Modernize/CronDFileOrTemplate cop was inspecting /Users/user1234/chef/example_cookbook/recipes/default.rb:10:2.
To see the complete backtrace run rubocop -d.
An error occurred while Chef/Modernize/CronDFileOrTemplate cop was inspecting /Users/user1234/chef/example_cookbook/recipes/default.rb:18:2.
To see the complete backtrace run rubocop -d.
..

4 files inspected, no offenses detected

3 errors occurred:
An error occurred while Chef/Modernize/CronDFileOrTemplate cop was inspecting /Users/user1234/chef/example_cookbook/recipes/default.rb:2:2.
An error occurred while Chef/Modernize/CronDFileOrTemplate cop was inspecting /Users/user1234/chef/example_cookbook/recipes/default.rb:10:2.
An error occurred while Chef/Modernize/CronDFileOrTemplate cop was inspecting /Users/user1234/chef/example_cookbook/recipes/default.rb:18:2.
Errors are usually caused by RuboCop bugs.
Please, report your problems to RuboCop's issue tracker.
https://github.com/rubocop/rubocop/issues

Mention the following information in the issue report:
1.25.1 (using Parser 3.1.2.1, rubocop-ast 1.21.0, running on ruby 3.0.3 x86_64-darwin19)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Status: UntriagedAn issue that has yet to be triaged.Type: BugDoes not work as expected.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions