Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Regression: broken specifiers in v229 #2637

Closed
jsagarribay opened this issue Feb 16, 2016 · 1 comment
Closed

Regression: broken specifiers in v229 #2637

jsagarribay opened this issue Feb 16, 2016 · 1 comment

Comments

@jsagarribay
Copy link

According to man page, the specifier %% translates to a single % in unit files, and it worked fine before. Starting with v229 this:
ExecStart=/bin/touch /tmp/%%Uanything
will touch /tmp/1000anything instead of /tmp/%Uanything
You need to repeat the percent signs twice to workaround this bug:
ExecStart=/bin/touch /tmp/%%%%Uanything
will touch /tmp/%Uanything

@evverx
Copy link
Member

evverx commented Feb 17, 2016

I can confirm this.
Regression was introduced by cb48dfc.
@walyong, please, have a look

evverx added a commit to evverx/systemd that referenced this issue Feb 17, 2016
+ perl -e 'exit(!(qq{0} eq qq{\x25U}))'
exec-spec-interpolation.service: Main process exited, code=exited, status=1/FAILURE
exec-spec-interpolation.service: Unit entered failed state.
exec-spec-interpolation.service: Failed with result 'exit-code'.
        PID: 11270
        Start Timestamp: Wed 2016-02-17 22:21:31 UTC
        Exit Timestamp: Wed 2016-02-17 22:21:31 UTC
        Exit Code: exited
        Exit Status: 1
Assertion 'service->main_exec_status.status == status_expected' failed at src/test/test-execute.c:65, function check(). Aborting.
evverx added a commit to evverx/systemd that referenced this issue Feb 17, 2016
@evverx evverx mentioned this issue Feb 17, 2016
evverx added a commit to evverx/systemd that referenced this issue Feb 17, 2016
+ perl -e 'exit(!(qq{0} eq qq{\x25U}))'
exec-spec-interpolation.service: Main process exited, code=exited, status=1/FAILURE
exec-spec-interpolation.service: Unit entered failed state.
exec-spec-interpolation.service: Failed with result 'exit-code'.
        PID: 11270
        Start Timestamp: Wed 2016-02-17 22:21:31 UTC
        Exit Timestamp: Wed 2016-02-17 22:21:31 UTC
        Exit Code: exited
        Exit Status: 1
Assertion 'service->main_exec_status.status == status_expected' failed at src/test/test-execute.c:65, function check(). Aborting.
evverx added a commit to evverx/systemd that referenced this issue Feb 17, 2016
evverx added a commit to evverx/systemd that referenced this issue Feb 18, 2016
This reverts commit cb48dfc.

Exec*-settings resolve specifiers twice:
%%U -> config_parse_exec [cb48dfc] -> %U -> service_spawn -> 0

Fixes systemd#2637
keszybz added a commit that referenced this issue Feb 18, 2016
Fix #2637 (doubled specifier expansion in ExecStart=)
tblume pushed a commit to tblume/systemd-testsuite-suse that referenced this issue Mar 8, 2016
+ perl -e 'exit(!(qq{0} eq qq{\x25U}))'
exec-spec-interpolation.service: Main process exited, code=exited, status=1/FAILURE
exec-spec-interpolation.service: Unit entered failed state.
exec-spec-interpolation.service: Failed with result 'exit-code'.
        PID: 11270
        Start Timestamp: Wed 2016-02-17 22:21:31 UTC
        Exit Timestamp: Wed 2016-02-17 22:21:31 UTC
        Exit Code: exited
        Exit Status: 1
Assertion 'service->main_exec_status.status == status_expected' failed at src/test/test-execute.c:65, function check(). Aborting.
crawford pushed a commit to crawford/systemd that referenced this issue Jul 14, 2016
+ perl -e 'exit(!(qq{0} eq qq{\x25U}))'
exec-spec-interpolation.service: Main process exited, code=exited, status=1/FAILURE
exec-spec-interpolation.service: Unit entered failed state.
exec-spec-interpolation.service: Failed with result 'exit-code'.
        PID: 11270
        Start Timestamp: Wed 2016-02-17 22:21:31 UTC
        Exit Timestamp: Wed 2016-02-17 22:21:31 UTC
        Exit Code: exited
        Exit Status: 1
Assertion 'service->main_exec_status.status == status_expected' failed at src/test/test-execute.c:65, function check(). Aborting.
crawford pushed a commit to crawford/systemd that referenced this issue Jul 14, 2016
This reverts commit cb48dfc.

Exec*-settings resolve specifiers twice:
%%U -> config_parse_exec [cb48dfc] -> %U -> service_spawn -> 0

Fixes systemd#2637
tblume pushed a commit to tblume/systemd-testsuite-suse that referenced this issue Aug 6, 2018
+ perl -e 'exit(!(qq{0} eq qq{\x25U}))'
exec-spec-interpolation.service: Main process exited, code=exited, status=1/FAILURE
exec-spec-interpolation.service: Unit entered failed state.
exec-spec-interpolation.service: Failed with result 'exit-code'.
        PID: 11270
        Start Timestamp: Wed 2016-02-17 22:21:31 UTC
        Exit Timestamp: Wed 2016-02-17 22:21:31 UTC
        Exit Code: exited
        Exit Status: 1
Assertion 'service->main_exec_status.status == status_expected' failed at src/test/test-execute.c:65, function check(). Aborting.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants