Bug 1390066 - Duplicate operation attribute is silently skipped in "pcs resource create" command.
Summary: Duplicate operation attribute is silently skipped in "pcs resource create" co...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: pcs
Version: 7.2
Hardware: Unspecified
OS: Unspecified
low
unspecified
Target Milestone: rc
: ---
Assignee: Ivan Devat
QA Contact: cluster-qe@redhat.com
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-10-31 07:16 UTC by Ivan Devat
Modified: 2017-08-01 18:24 UTC (History)
6 users (show)

Fixed In Version: pcs-0.9.156-1.el7
Doc Type: Bug Fix
Doc Text:
Cause: The user enters the same option multiple times with different values (by a mistake). Pcs omits all earlier values and uses the last value. Consequence: The user is not notified that entered ambiguous option value. The content of cib can be different than what the user wanted. Fix: Pcs requires a unambiguous option value. Result: The user cannot successfully enter unambiguous option value.
Clone Of:
Environment:
Last Closed: 2017-08-01 18:24:40 UTC
Target Upstream Version:


Attachments (Terms of Use)
proposed fix (3.63 KB, patch)
2017-02-01 13:11 UTC, Ivan Devat
no flags Details | Diff


Links
System ID Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2017:1958 normal SHIPPED_LIVE pcs bug fix and enhancement update 2017-08-01 18:09:47 UTC

Description Ivan Devat 2016-10-31 07:16:12 UTC
Description of problem:
When duplicate operation attribute is entered in "pcs resource create" command, pcs ommit all occurences except the last. No warning to user about that fact.

Steps to Reproduce:
[vm-rhel72-1 ~] $ pcs resource create R ocf:heartbeat:Dummy op monitor timeout=10 timeout=20
[vm-rhel72-1 ~] $

Actual results:
In cib, there is only timeout=20 and user probably does not know about it:

<primitive class="ocf" id="R" provider="heartbeat" type="Dummy">          
  <instance_attributes id="R-instance_attributes"/>                       
  <operations>                                                            
    <op id="R-start-interval-0s" interval="0s" name="start" timeout="20"/>
    <op id="R-stop-interval-0s" interval="0s" name="stop" timeout="20"/>  
    <op id="R-monitor-interval-60s" interval="60s" name="monitor" timeout="20"/>
  </operations>                                                           
</primitive>

Expected results:
Error: duplicate option 'timeout'.
[vm-rhel72-1 ~] $ echo $?
1

Additional info:
User probably did mistake in command. There is at least 50% probability that record in cib will be wrong and user will need make extra corrections. So result with error is probably better than warning only.

Comment 1 Tomas Jelinek 2016-11-01 09:56:20 UTC
I agree pcs should exit with an error and not change CIB in this case.

Comment 3 Ivan Devat 2017-02-01 13:11:53 UTC
Created attachment 1246647 [details]
proposed fix

Tests are in the patch.

Comment 4 Ivan Devat 2017-02-20 08:16:44 UTC
After Fix:

[vm-rhel72-1 ~] $ rpm -q pcs
pcs-0.9.156-1.el7.x86_64

[vm-rhel72-1 ~] $ pcs resource create R ocf:heartbeat:Dummy op monitor timeout=10 timeout=20
Error: duplicate option 'timeout' with different values '10' and '20'

[vm-rhel72-1 ~] $ pcs resource create R ocf:heartbeat:Dummy op monitor timeout=10 timeout=20 --force
Error: duplicate option 'timeout' with different values '10' and '20'

Comment 8 errata-xmlrpc 2017-08-01 18:24:40 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2017:1958


Note You need to log in before you can comment on or make changes to this bug.