Jira (FACT-2954) Improve fact blocking mechanism in Facter 4

20 views
Skip to first unread message

Josh Cooper (Jira)

unread,
Oct 20, 2022, 12:47:03 PM10/20/22
to puppe...@googlegroups.com
Josh Cooper updated an issue
 
Facter / Improvement FACT-2954
Improve fact blocking mechanism in Facter 4
Change By: Josh Cooper
Security: Internal
Add Comment Add Comment
 
This message was sent by Atlassian Jira (v8.20.11#820011-sha1:0629dd8)
Atlassian logo

Josh Cooper (Jira)

unread,
Oct 20, 2022, 12:49:01 PM10/20/22
to puppe...@googlegroups.com
Josh Cooper commented on Improvement FACT-2954
 
Re: Improve fact blocking mechanism in Facter 4

Although FACT-2954 was filed first, FACT-3161 has a better description and steps to reproduce, so closing this one as a dup.

Josh Cooper (Jira)

unread,
Mar 22, 2023, 1:07:01 PM3/22/23
to puppe...@googlegroups.com
Josh Cooper commented on Improvement FACT-2954

FACT-3161 is actually a separate (but related) issue, so reopening this ticket.

Josh Cooper (Jira)

unread,
Mar 22, 2023, 1:07:02 PM3/22/23
to puppe...@googlegroups.com

Josh Cooper (Jira)

unread,
Mar 22, 2023, 1:08:01 PM3/22/23
to puppe...@googlegroups.com
Josh Cooper updated an issue
Change By: Josh Cooper
Priority: Normal High

Josh Cooper (Jira)

unread,
Mar 22, 2023, 1:24:01 PM3/22/23
to puppe...@googlegroups.com
Josh Cooper updated an issue
Change By: Josh Cooper
Epic Link: FACT PUP - 3051 11659

Josh Cooper (Jira)

unread,
Mar 22, 2023, 1:29:01 PM3/22/23
to puppe...@googlegroups.com
Josh Cooper updated an issue
Facter's block list logic is O^2 (comparing every fact against every blocked fact) [https://github.com/puppetlabs/facter/blob/83aa51aa822aea7cf5ac6762039a4529f73a2a82/lib/facter/framework/core/fact_loaders/fact_loader.rb#L100-L117.]

Also it creates a regexp literal inside of the loop, which are [not frozen until ruby 3|[https://github.com/ruby/ruby/commit/98ef38ada43338c073f50a0093196f0356284625]] So we're doing a bunch of unnecessary allocations.

Josh Cooper (Jira)

unread,
Mar 22, 2023, 1:29:01 PM3/22/23
to puppe...@googlegroups.com

Josh Cooper (Jira)

unread,
Mar 22, 2023, 1:31:02 PM3/22/23
to puppe...@googlegroups.com
Josh Cooper updated an issue
Also it creates a an interpolated regexp literal inside of the loop , which are [not frozen until ruby 3|https://github.com/ruby/ruby/commit/98ef38ada43338c073f50a0093196f0356284625] (multiple times for the same blocked fact) So we're doing a bunch of unnecessary allocations.

Josh Cooper (Jira)

unread,
Mar 22, 2023, 1:32:22 PM3/22/23
to puppe...@googlegroups.com
Josh Cooper updated an issue
Change By: Josh Cooper
Priority: High Normal

Josh Cooper (Jira)

unread,
Apr 6, 2023, 11:53:01 AM4/6/23
to puppe...@googlegroups.com
Josh Cooper assigned an issue to Unassigned
Change By: Josh Cooper
Assignee: Luchian Nemes
Reply all
Reply to author
Forward
0 new messages