Bug 1043665

Summary: augeas-libs 1.0.0-5 breaks loading of /etc/sysconfig/nfs file
Product: Red Hat Enterprise Linux 7 Reporter: Dominic Cleal <dcleal>
Component: augeasAssignee: Dominic Cleal <dcleal>
Status: CLOSED CURRENTRELEASE QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: low    
Version: 7.0CC: bfan, jonathan.underwood, lkong
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: augeas-1.1.0-6.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 1043636 Environment:
Last Closed: 2014-06-13 10:47:16 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1043636    
Bug Blocks:    

Description Dominic Cleal 2013-12-16 20:55:22 UTC
+++ This bug was initially created as a clone of Bug #1043636 +++

Description of problem:
augeas-libs 0.9.0-4.el6 allowed the following puppet snippet to work as it should:

    augeas {
      '/etc/sysconfig/nfs':
        context => '/files/etc/sysconfig/nfs',
        lens    => 'Sysconfig.lns',
        incl    => '/etc/sysconfig/nfs',
        changes => [ "set SECURE_NFS $nfsv4secure", ];
      '/etc/idmapd.conf':
        context => '/files/etc/idmapd.conf/General',
        lens    => 'Puppet.lns',
        incl    => '/etc/idmapd.conf',
        changes => ["set Domain ${nfs::client::redhat::nfs_v4_idmap_domain}"],
    }

Updating to 1.0.0-5 breaks this:

Dec 16 19:01:38 aws0 puppet-agent[18234]: Starting Puppet client version 3.3.1
Dec 16 19:01:46 aws0 puppet-agent[18238]: (Augeas[/etc/sysconfig/nfs](provider=augeas)) Loading failed for one or more files, see debug for /augeas//error output
Dec 16 19:01:46 aws0 puppet-agent[18238]: (/Stage[main]/Nfs::Client::Redhat::Configure/Augeas[/etc/sysconfig/nfs]) Could not evaluate: Save failed with return code false, see debug


Version-Release number of selected component (if applicable):
1.0.0-5

How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

--- Additional comment from Dominic Cleal on 2013-12-16 19:10:41 GMT ---

Please attach the contents of /etc/sysconfig/nfs to the BZ, as it's failing to load the file.

It'd also be useful if you can provide debug output from Puppet (--debug).

--- Additional comment from Jonathan Underwood on 2013-12-16 19:25:25 GMT ---

/etc/sysconfig/nfs

--- Additional comment from Jonathan Underwood on 2013-12-16 19:26:01 GMT ---

Nb. downgrading to 0.9.0-4.el6 allows the augeas resource to complete succesfully.

--- Additional comment from Jonathan Underwood on 2013-12-16 19:31:00 GMT ---



--- Additional comment from Jonathan Underwood on 2013-12-16 19:32:46 GMT ---

Relevant part seems to be:

ESC[0;36mDebug: Augeas[/etc/sysconfig/nfs](provider=augeas): Opening augeas with root /, lens path , flags 64ESC[0m
ESC[0;36mDebug: Augeas[/etc/sysconfig/nfs](provider=augeas): Augeas version 1.0.0 is installedESC[0m
ESC[1;31mWarning: Augeas[/etc/sysconfig/nfs](provider=augeas): Loading failed for one or more files, see debug for /augeas//error outputESC[0m
ESC[0;36mDebug: Augeas[/etc/sysconfig/nfs](provider=augeas): /augeas/files/etc/sysconfig/nfs/error = parse_failedESC[0m
ESC[0;36mDebug: Augeas[/etc/sysconfig/nfs](provider=augeas): /augeas/files/etc/sysconfig/nfs/error/pos = 159ESC[0m
ESC[0;36mDebug: Augeas[/etc/sysconfig/nfs](provider=augeas): /augeas/files/etc/sysconfig/nfs/error/line = 7ESC[0m
ESC[0;36mDebug: Augeas[/etc/sysconfig/nfs](provider=augeas): /augeas/files/etc/sysconfig/nfs/error/char = 0ESC[0m
ESC[0;36mDebug: Augeas[/etc/sysconfig/nfs](provider=augeas): /augeas/files/etc/sysconfig/nfs/error/lens = /usr/share/augeas/lenses/dist/sysconfig.aug:62.12-.71:ESC[0m
ESC[0;36mDebug: Augeas[/etc/sysconfig/nfs](provider=augeas): /augeas/files/etc/sysconfig/nfs/error/message = Get did not match entire inputESC[0m
ESC[0;36mDebug: Augeas[/etc/sysconfig/nfs](provider=augeas): Will attempt to save and only run if files changedESC[0m
ESC[0;36mDebug: Augeas[/etc/sysconfig/nfs](provider=augeas): sending command 'set' with params ["/files/etc/sysconfig/nfs/SECURE_NFS", "yes"]ESC[0m
ESC[0;36mDebug: Augeas[/etc/sysconfig/nfs](provider=augeas): Closed the augeas connectionESC[0m
ESC[1;31mError: /Stage[main]/Nfs::Client::Redhat::Configure/Augeas[/etc/sysconfig/nfs]: Could not evaluate: Save failed with return code false, see debugESC[0m

--- Additional comment from Jonathan Underwood on 2013-12-16 19:53:49 GMT ---

Ugh, a diff of the sysconfig lens between the 0.9 and 1.0 packages shows a heap of changes.

--- Additional comment from Dominic Cleal on 2013-12-16 19:58:30 GMT ---

(In reply to Jonathan Underwood from comment #6)
> Ugh, a diff of the sysconfig lens between the 0.9 and 1.0 packages shows a
> heap of changes.

Ah, I hadn't noticed you were using the Sysconfig module.  I'd recommend using Shellvars.lns instead, as this is the default lens for handling /etc/sysconfig/*.

Shellvars generally gets more attention and is far more extensive for handling shell-style files.

--- Additional comment from Dominic Cleal on 2013-12-16 20:53:51 GMT ---

Upstream as 92274bd3ff47d3cc4511d934dae06f16b59db7ad.

Steps to Reproduce:
1. augtool -A --transform "Sysconfig incl /etc/sysconfig/nfs" print /augeas/files/etc/sysconfig/nfs/error
2. augtool -A --transform "Sysconfig incl /etc/sysconfig/nfs" print /files/etc/sysconfig/nfs/

Actual results:
/augeas/files/etc/sysconfig/nfs/error = "parse_failed"
/augeas/files/etc/sysconfig/nfs/error/pos = "159"
/augeas/files/etc/sysconfig/nfs/error/line = "7"
/augeas/files/etc/sysconfig/nfs/error/char = "0"
/augeas/files/etc/sysconfig/nfs/error/lens = "/usr/share/augeas/lenses/dist/sysconfig.aug:62.12-.71:"
/augeas/files/etc/sysconfig/nfs/error/message = "Get did not match entire input"

Second command prints no output.

Expected results:
No output from the first command.

~54 lines of output from the second command:
/files/etc/sysconfig/nfs/#comment[1] = "Define which protocol versions mountd"
/files/etc/sysconfig/nfs/#comment[2] = "will advertise. The values are \"no\" or \"yes\""
/files/etc/sysconfig/nfs/#comment[3] = "with yes being the default"

Comment 1 Lingfei Kong 2013-12-17 03:35:11 UTC
Can reproduce with augeas-1.1.0-4.el7

Steps to reproduce:
1. 
#augtool -A --transform "Sysconfig incl /etc/sysconfig/nfs" print /augeas/files/etc/sysconfig/nfs/error
/augeas/files/etc/sysconfig/nfs/error = "parse_failed"
/augeas/files/etc/sysconfig/nfs/error/pos = "236"
/augeas/files/etc/sysconfig/nfs/error/line = "11"
/augeas/files/etc/sysconfig/nfs/error/char = "0"
/augeas/files/etc/sysconfig/nfs/error/lens = "/usr/share/augeas/lenses/dist/sysconfig.aug:62.12-.71:"
/augeas/files/etc/sysconfig/nfs/error/message = "Get did not match entire input"

2. 
#augtool -A --transform "Sysconfig incl /etc/sysconfig/nfs" print /files/etc/sysconfig/nfs/

No output.

Comment 3 Lingfei Kong 2014-01-07 00:52:57 UTC
Verified with augeas-1.1.0-6.el7

Steps to verify:
1. 
#augtool -A --transform "Sysconfig incl /etc/sysconfig/nfs" print /augeas/files/etc/sysconfig/nfs/error
No output

2. 
#augtool -A --transform "Sysconfig incl /etc/sysconfig/nfs" print /files/etc/sysconfig/nfs/
/files/etc/sysconfig/nfs
/files/etc/sysconfig/nfs/#comment[1] = "Optinal options passed to rquotad"
/files/etc/sysconfig/nfs/RPCRQUOTADOPTS = ""
/files/etc/sysconfig/nfs/#comment[2] = "Optional arguments passed to in-kernel lockd"
/files/etc/sysconfig/nfs/#comment[3] = "LOCKDARG="
/files/etc/sysconfig/nfs/#comment[4] = "TCP port rpc.lockd should listen on."
/files/etc/sysconfig/nfs/#comment[5] = "LOCKD_TCPPORT=32803"
/files/etc/sysconfig/nfs/#comment[6] = "UDP port rpc.lockd should listen on."
/files/etc/sysconfig/nfs/#comment[7] = "LOCKD_UDPPORT=32769"
/files/etc/sysconfig/nfs/#comment[8] = "Optional arguments passed to rpc.nfsd. See rpc.nfsd(8)"
/files/etc/sysconfig/nfs/RPCNFSDARGS = ""
/files/etc/sysconfig/nfs/#comment[9] = "Number of nfs server processes to be started."
/files/etc/sysconfig/nfs/#comment[10] = "The default is 8."
/files/etc/sysconfig/nfs/RPCNFSDCOUNT = "8"
/files/etc/sysconfig/nfs/#comment[11] = "Set V4 grace period in seconds"
/files/etc/sysconfig/nfs/#comment[12] = "NFSD_V4_GRACE=90"
/files/etc/sysconfig/nfs/#comment[13] = "Optional arguments passed to rpc.mountd. See rpc.mountd(8)"
/files/etc/sysconfig/nfs/RPCMOUNTDOPTS = ""
/files/etc/sysconfig/nfs/#comment[14] = "Optional arguments passed to rpc.statd. See rpc.statd(8)"
/files/etc/sysconfig/nfs/STATDARG = ""
/files/etc/sysconfig/nfs/#comment[15] = "Optional arguments passed to rpc.idmapd. See rpc.idmapd(8)"
/files/etc/sysconfig/nfs/RPCIDMAPDARGS = ""
/files/etc/sysconfig/nfs/#comment[16] = "Optional arguments passed to rpc.gssd. See rpc.gssd(8)"
/files/etc/sysconfig/nfs/RPCGSSDARGS = ""
/files/etc/sysconfig/nfs/#comment[17] = "Enable usage of gssproxy. See gssproxy-mech(8)."
/files/etc/sysconfig/nfs/GSS_USE_PROXY = "no"
/files/etc/sysconfig/nfs/#comment[18] = "Optional arguments passed to rpc.svcgssd. See rpc.svcgssd(8)"
/files/etc/sysconfig/nfs/RPCSVCGSSDARGS = ""
/files/etc/sysconfig/nfs/#comment[19] = "To enable RDMA support on the server by setting this to"
/files/etc/sysconfig/nfs/#comment[20] = "the port the server should listen on"
/files/etc/sysconfig/nfs/#comment[21] = "RDMA_PORT=20049"
/files/etc/sysconfig/nfs/#comment[22] = "Optional arguments passed to blkmapd. See blkmapd(8)"
/files/etc/sysconfig/nfs/BLKMAPDARGS = ""


So, bug is fixed.

Comment 4 Ludek Smid 2014-06-13 10:47:16 UTC
This request was resolved in Red Hat Enterprise Linux 7.0.

Contact your manager or support representative in case you have further questions about the request.