Jira (FACT-3165) facter --debug reports wrong location of a resolved fact.

21 views
Skip to first unread message

Georgi Georgiev (Jira)

unread,
Oct 27, 2022, 9:48:02 PM10/27/22
to puppe...@googlegroups.com
Georgi Georgiev created an issue
 
Facter / Bug FACT-3165
facter --debug reports wrong location of a resolved fact.
Issue Type: Bug Bug
Affects Versions: FACT 4.2.11
Assignee: Unassigned
Components: Facter 4
Created: 2022/10/27 6:47 PM
Environment:

$ facter --version
4.2.11

$ rpm -qf $(which facter) -i
Name        : puppet-agent
Version     : 7.18.0
Release     : 1.el8
Architecture: x86_64
Install Date: Mon 03 Oct 2022 10:40:53 AM JST
Group       : System Environment/Base
Size        : 112577683
License     : See components
Signature   : RSA/SHA256, Sat 23 Jul 2022 01:48:23 AM JST, Key ID 4528b6cd9e61ef26
Source RPM  : puppet-agent-7.18.0-1.el8.src.rpm
Build Date  : Sat 23 Jul 2022 01:47:31 AM JST
Build Host  : unheated-luck.delivery.puppetlabs.net
Relocations : (not relocatable)
Vendor      : Puppet Labs
URL         : https://www.puppetlabs.com
Summary     : The Puppet Agent package contains all of the elements needed to run puppet, including ruby, facter, and hiera.
Description :
The Puppet Agent package contains all of the elements needed to run puppet, including ruby, facter, and hiera.Contains the following components:
cleanup
facter 4.2.11
hiera 3.10.0
module-puppetlabs-augeas_core 1.1.2
module-puppetlabs-cron_core 1.0.5
module-puppetlabs-host_core 1.0.3
module-puppetlabs-mount_core 1.0.4
module-puppetlabs-scheduled_task 1.0.0
module-puppetlabs-selinux_core 1.1.0
module-puppetlabs-sshkeys_core 2.2.0
module-puppetlabs-yumrepo_core 1.0.7
module-puppetlabs-zfs_core 1.2.0
module-puppetlabs-zone_core 1.0.3
pl-ruby-patch
puppet 7.18.0
puppet-resource_api 1.8.14
puppet-runtime 202207190
pxp-agent 202207200
shellpath 2015-09-18
wrapper-script

Priority: Low Low
Reporter: Georgi Georgiev

When a fact is defined in multiple files, running `facter --debug` reports the wrong location it was resolved from.

Steps to reproduce:

 

$ grep '' *
{{one.rb:Facter.add("foo") { setcode

{ "one" }

}}}
{{zero.rb:Facter.add("foo") { setcode

{ "zero" }

}}}

$ facter foo --debug --custom-dir $PWD 2>&1 | grep -e zero -e one
[2022-10-28 10:45:17.906705 ] DEBUG Facter::Util::Fact - custom fact foo got resolved from: ["/tmp/x/zero.rb", 1]
[2022-10-28 10:45:17.907721 ] DEBUG Facter::FactManager - fact "foo" has resolved to: one
one

Add Comment Add Comment
 
This message was sent by Atlassian Jira (v8.20.11#820011-sha1:0629dd8)
Atlassian logo

Georgi Georgiev (Jira)

unread,
Oct 27, 2022, 9:49:02 PM10/27/22
to puppe...@googlegroups.com
Georgi Georgiev updated an issue
Change By: Georgi Georgiev
When a fact is defined in multiple files, running `facter --debug` reports the wrong location it was resolved from.

Steps to reproduce:

 

{{
{{ $ grep '' *}} }}
{{
{}{{ one.rb:Facter.add("foo") \ { setcode { }}}{{{}{ "one" } { }}} {{{}}}}{}}}
{{
{}{{ zero.rb:Facter.add("foo") \ { setcode { }}}{{{}{ "zero" } { }}} {{{}}}}{}}}

 

{{ {{ $ facter foo --debug --custom-dir $PWD 2>&1 | grep -e zero -e one}} }}

{{
{{ [2022-10-28 10:45:17.906705 ] DEBUG Facter::Util::Fact - custom fact foo got resolved from: ["/tmp/x/{color:# FF0000 ff0000 }*zero*{color}.rb", 1]}} }}
{{
{{ [2022-10-28 10:45:17.907721 ] DEBUG Facter::FactManager - fact "foo" has resolved to: *{color:#ff8b00}one{color}*}} }}
{{ *{color:#ff8b00}{{one}}{color}* }}

Georgi Georgiev (Jira)

unread,
Oct 27, 2022, 9:51:01 PM10/27/22
to puppe...@googlegroups.com
Georgi Georgiev updated an issue
When a fact is defined in multiple files, running `facter --debug` reports the wrong location it was resolved from.

Steps to reproduce:

 

{{
$
grep '' *}}
{{one.rb:Facter.add("foo") do}}
{{one.rb: setcode do}}
{{one.rb:         "one"}}
{{one.rb: end}}
{{one.rb:end}}
{{zero.rb:Facter.add("foo") do}}
{{zero.rb:        setcode do}}
{{zero.rb:                "zero"}}
{{zero.rb:        end}}
{{zero.rb:end}}

{{$ facter foo --debug --custom-dir $PWD 2>&1 | grep -e zero -e one}}
{{[2022-10-28 10:45:17.906705 ] DEBUG Facter::Util::Fact - custom fact foo got resolved from: ["/tmp/x/{color:#ff0000}*zero*{color}.rb", 1]}}

{{[2022-10-28 10:45:17.907721 ] DEBUG Facter::FactManager - fact "foo" has resolved to: *{color:#ff8b00}one{color}*}}
{{*{color:#ff8b00}{{one}}{color}*}}

Georgi Georgiev (Jira)

unread,
Oct 27, 2022, 9:51:02 PM10/27/22
to puppe...@googlegroups.com
Georgi Georgiev updated an issue
When a fact is defined in multiple files, running `facter --debug` reports the wrong location it was resolved from.

Steps to reproduce:

 

{{grep '' *}}

{{one.rb:Facter.add("foo") do}}
{{one.rb: setcode do}}
{{one.rb:         "one"}}
{{one.rb: end}}
{{one.rb:end}}
{{zero.rb:Facter.add("foo") do}}
{{zero.rb:        setcode do}}
{{zero.rb:                "zero"}}
{{zero.rb:        end}}
{{zero.rb:end}}

{{
{{{} $ facter foo --debug --custom-dir $PWD 2>&1 | grep -e zero -e one { }} }}}
{{
{{{} [2022-10-28 10:45:17.906705 ] DEBUG Facter::Util::Fact - custom fact foo got resolved from: ["/tmp/x/{color:#ff0000}*zero*{color}.rb", 1] { }} }}}
{{
{{{} [2022-10-28 10:45:17.907721 ] DEBUG Facter::FactManager - fact "foo" has resolved to: *{color:#ff8b00}one{color}* { }} }}}
{{*{color:#ff8b00}{{one}}{color}*}}

Georgi Georgiev (Jira)

unread,
Oct 27, 2022, 9:51:03 PM10/27/22
to puppe...@googlegroups.com
Georgi Georgiev updated an issue
When a fact is defined in multiple files, running `facter --debug` reports the wrong location it was resolved from.

Steps to reproduce:

 

{{ {{$ grep '' *}} }}
{{
{}{{ one.rb:Facter.add("foo") { setcode{ do }} }
{{ { one.rb: setcode do } }
{ {one.rb:         "one" } { } }}
{{ { one.rb: end }} }}
{ {one.rb:end }} }

{{
{}{{ zero.rb:Facter.add("foo") { setcode{ do }} }
{{ { zero.rb:        setcode do } }
{ {zero.rb:                 "zero" } { } }}
{{ { zero.rb:        end }} }}
{ {zero.rb:end }} }

 

{{{{ {} $ facter foo --debug --custom-dir $PWD 2>&1 | grep -e zero -e one { }}}} }
{{{{
{} [2022-10-28 10:45:17.906705 ] DEBUG Facter::Util::Fact - custom fact foo got resolved from: ["/tmp/x/{color:#ff0000}*zero*{color}.rb", 1] { }}}} }
{{{{
{} [2022-10-28 10:45:17.907721 ] DEBUG Facter::FactManager - fact "foo" has resolved to: *{color:#ff8b00}one{color}* { }}}} }
{{*{color:#ff8b00}{{one}}{color}*}}

Morgan Rhodes (Jira)

unread,
Nov 1, 2022, 4:15:01 PM11/1/22
to puppe...@googlegroups.com

Morgan Rhodes (Jira)

unread,
Nov 1, 2022, 4:20:03 PM11/1/22
to puppe...@googlegroups.com
Morgan Rhodes commented on Bug FACT-3165
 
Re: facter --debug reports wrong location of a resolved fact.

Hi Georgi Georgiev, thank you for the ticket!

We aren't sure when we'll be able to get to this so if you wanted to try to fix this and open a PR that would be very appreciated.

Georgi Georgiev (Jira)

unread,
Nov 3, 2022, 11:15:02 PM11/3/22
to puppe...@googlegroups.com

Josh Cooper (Jira)

unread,
Jan 9, 2023, 2:51:01 PM1/9/23
to puppe...@googlegroups.com
Josh Cooper updated an issue
 
Change By: Josh Cooper
When a fact is defined in multiple files, running `facter --debug` reports the wrong location it was resolved from.

Steps to reproduce:

 

{{$ grep '' *}}
{{one.rb:Facter.add("foo") do}}

{{one.rb: setcode do}}
{{one.rb:         "one"}}
{{one.rb: end}}
{{one.rb:end}}
{{zero.rb:Facter.add("foo") do}}

{{zero.rb:        setcode do}}
{{zero.rb:                "zero"}}
{{zero.rb:        end}}
{{zero.rb:end}}

{{$ facter foo --debug --custom-dir $PWD 2>&1 | grep -e zero -e one}}
{{[2022-10-28 10:45:17.906705 ] DEBUG Facter::Util::Fact - custom fact foo got resolved from: ["/tmp/x/{color:#ff0000}*zero*{color}.rb", 1]}}
{{[2022-10-28 10:45:17.907721 ] DEBUG Facter::FactManager - fact "foo" has resolved to: *{color:#ff8b00}one{color}*}}
{{*{color:#ff8b00}{{one}}{color}*}}


Facter 3 doesn't have this issue:

Josh Cooper (Jira)

unread,
Jan 9, 2023, 2:51:02 PM1/9/23
to puppe...@googlegroups.com

Josh Cooper (Jira)

unread,
Jan 9, 2023, 2:53:02 PM1/9/23
to puppe...@googlegroups.com
Josh Cooper updated an issue
When a fact is defined in multiple files, running `facter --debug` reports the wrong location it was resolved from.

Steps to reproduce:

{{$ grep '' *}}
{{one.rb:Facter.add("foo") do}}
{{one.rb: setcode do}}
{{one.rb:         "one"}}
{{one.rb: end}}
{{one.rb:end}}
{{zero.rb:Facter.add("foo") do}}
{{zero.rb:        setcode do}}
{{zero.rb:                "zero"}}
{{zero.rb:        end}}
{{zero.rb:end}}

{{$ facter foo --debug --custom-dir $PWD 2>&1 | grep -e zero -e one}}
{{[2022-10-28 10:45:17.906705 ] DEBUG Facter::Util::Fact - custom fact foo got resolved from: ["/tmp/x/{color:#ff0000}*zero*{color}.rb", 1]}}
{{[2022-10-28 10:45:17.907721 ] DEBUG Facter::FactManager - fact "foo" has resolved to: *{color:#ff8b00}one{color}*}}
{{*{color:#ff8b00}{{one}}{color}*}}

Facter 3 doesn't have this issue . Given :

{noformat}
# cat one.rb
Facter.add("foo") do
$stderr.puts "registering one.rb"
setcode do
  "one"
end
end

# cat two.rb
Facter.add("foo") do
$stderr.puts "registering two.rb"
setcode do
  "two"
end
end

# facter foo --debug --custom-dir $PWD 2>&1 | grep -e one.rb -e two.rb -e foo
2023-01-09 19:25:42.635880 INFO  puppetlabs.facter - executed with command line: foo --debug --custom-dir /root.
2023-01-09 19:25:42.687218 INFO  puppetlabs.facter - requested queries: foo.
2023-01-09 19:25:42.687824 INFO  puppetlabs.facter - loading custom facts from /root/one.rb.
registering one.rb
2023-01-09 19:25:42.688119 INFO  puppetlabs.facter - loading custom facts from /root/two.rb.
2023-01-09 19:25:42.688309 DEBUG puppetlabs.facter - fact "foo" has resolved to "one".
registering two.rb
registering two.rb
{noformat}

Josh Cooper (Jira)

unread,
Jan 17, 2023, 11:34:02 AM1/17/23
to puppe...@googlegroups.com
Josh Cooper updated an issue
Change By: Josh Cooper
Labels: regresion regression

Josh Cooper (Jira)

unread,
Mar 17, 2023, 12:56:02 PM3/17/23
to puppe...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages