Bug 2039739

Summary: TuneD improperly parses the include directive when profile name finishes in non-word characters
Product: Red Hat Enterprise Linux Fast Datapath Reporter: Jaroslav Škarvada <jskarvad>
Component: tunedAssignee: Jaroslav Škarvada <jskarvad>
Status: VERIFIED --- QA Contact: Robin Hack <rhack>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: RHEL 8.0CC: bfubel, rhack, tli
Target Milestone: ---Keywords: Patch, Rebase, Upstream
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: tuned-2.17.0-1.1.20220117gitf9ae0ccf.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Jaroslav Škarvada 2022-01-12 10:37:24 UTC
This bug was initially created as a copy of Bug #2017924

I am copying this bug because: 



Description of problem:
When using the include directive in the [main] section, TuneD improperly processes profile included when profile names end in non word characters such as '-', '^', ...

Version-Release number of selected component (if applicable):
All, including the current upstream version.

How reproducible:
Always.

Steps to Reproduce:
1. Create TuneD profile "bz" with the following content.
[main]
summary=PoC
include=provider-,balanced

2. Create en empty "provider-" profile:
mkdir -p /etc/tuned/provider-/
touch /etc/tuned/provider-/tuned.conf 

3. systemctl stop tuned --now

4. tuned --no-dbus

Actual results:
2021-10-27 13:43:50,984 INFO     tuned.daemon.application: dynamic tuning is globally disabled
2021-10-27 13:43:50,989 DEBUG    tuned.daemon.daemon: initializing daemon
2021-10-27 13:43:50,989 INFO     tuned.daemon.daemon: using sleep interval of 1 second(s)
2021-10-27 13:43:50,989 INFO     tuned.daemon.daemon: Running in automatic mode, checking what profile is recommended for your configuration.
2021-10-27 13:43:50,990 INFO     tuned.daemon.daemon: Using 'bz' profile
2021-10-27 13:43:50,991 INFO     tuned.profiles.loader: loading profile: bz
2021-10-27 13:43:50,993 ERROR    tuned.daemon.daemon: Cannot set initial profile. No tunings will be enabled: Cannot load profile(s) 'bz': Cannot find profile 'provider-,balanced' in '['/etc/tuned', '/usr/lib/tuned']'.
2021-10-27 13:43:50,993 INFO     tuned.daemon.controller: starting controller

Expected results:
TuneD profiles "provider-" and "balanced" successfully applied.