I'm thinking I must have horked my svn tree somehow. Did a fresh checkout of SVN 344, and it works a peach as expected. Thanks Mark!
-- Chris Faehl Hosting Engineering Systems Manager, RightNow Technologies -----Original Message----- From: bug-cfengine-bounces+cfaehl=rightnow....@cfengine.org [mailto:bug-cfengine-bounces+cfaehl=rightnow....@cfengine.org] On Behalf Of Faehl, Chris Sent: Saturday, May 09, 2009 3:54 PM To: Mark Burgess Cc: bug-cfengine@cfengine.org Subject: RE: cf3: incorrect parsing or misdocumented file_select.search_owners attribute Thanks, will do. ________________________________________ From: Mark Burgess [mark.burg...@iu.hio.no] Sent: Saturday, May 09, 2009 11:09 AM To: Faehl, Chris Cc: bug-cfengine@cfengine.org Subject: Re: cf3: incorrect parsing or misdocumented file_select.search_owners attribute Chris, this works fine for me. Make sure you are using a clean code base and if it continues to happen send me a backtrace. M Faehl, Chris wrote: > I may be mixing up two different versions, if cf-agent forks and execs > cf-agent/cf-promises from the working directory binaries. > > Is it possible to test cf-* binaries from within the build directory before > installation? > > I've now copied the cf-* binaries into the working directory > (/var/cfengine/bin) - and now it does look like it's parsing correctly - but > on RHEL 5, segfaulting in SelectOwnerMatch with this slightly modified test > case: > > body common control { > bundlesequence => { "s" }; > } > bundle agent s { > files: > "/tmp" > depth_search => roottraverse, > file_select => noowner, > perms => pnoowner, > action => warn; > } > body depth_search roottraverse{ > depth => "inf"; > include_basedir => "true"; > } > > body file_select noowner { > search_owners => { "[a-zA-Z0-9_.]+" }; > file_result => "!owner"; > } > > body action warn{ > action_policy => "warn"; > } > > body perms pnoowner { > owners => { "root" }; > groups => { "root" }; > } > > > Last hopefully relevant lines of cf-agent -d2 (I'll backchannel if you want > the whole output): > -------- > EvaluateORString(!owner) > (!)(o)(w)(n)(e)(r) > GetORATom(!owner)->!owner > EvaluateANDString(!owner) > > GetANDATom(owner)->owner > Checking OR atom (owner)? > EvaluateANDString(!owner) returns false by negation 2 > EvalORString-temp-result-n=0 (!owner) > EvaluateORString(!owner) returns 0 > Select result "!owner"on /tmp/nerves was 0 > Unappending leaf_name > Unappending leaf_path > Unappending owner > Unappending group > Skipping non-selected file /tmp/nerves > Unappending reg > Unappending plain > > -------- > EvaluateORString([a-zA-Z0-9_.]+) > ([)(a)(-)(z)(A)(-)(Z)(0)(-)(9)(_)(.)(])(+) > GetORATom([a-zA-Z0-9_.]+)->[a-zA-Z0-9_.]+ > EvaluateANDString([a-zA-Z0-9_.]+) > > GetANDATom([a-zA-Z0-9_.]+)->[a-zA-Z0-9_ > Checking OR atom ([a-zA-Z0-9_)? > EvaluateANDString([a-zA-Z0-9_.]+) returns false ny negation 3 > EvalORString-temp-result-n=0 ([a-zA-Z0-9_.]+) > EvaluateORString([a-zA-Z0-9_.]+) returns 0 > Segmentation fault > > -- > Chris Faehl > Hosting Engineering Systems Manager, RightNow Technologies > > > -----Original Message----- > From: Mark Burgess [mailto:mark.burg...@iu.hio.no] > Sent: Thursday, May 07, 2009 1:33 PM > To: Faehl, Chris > Cc: bug-cfengine@cfengine.org > Subject: Re: cf3: incorrect parsing or misdocumented > file_select.search_owners attribute > > > Chris, I don't think this is possible. Are you mixing up two versions? > > M > > Faehl, Chris wrote: >> Mark, >> >> From svn, cf-promises now validates the input file correctly - but cf-agent >> evaluates using the pre-change semantics (fails just as cf-promises did). >> >> -- >> Chris Faehl >> Hosting Engineering Systems Manager, RightNow Technologies >> >> >> -----Original Message----- >> From: Mark Burgess [mailto:mark.burg...@iu.hio.no] >> Sent: Wednesday, May 06, 2009 11:22 AM >> To: Faehl, Chris >> Cc: bug-cfengine@cfengine.org >> Subject: Re: cf3: incorrect parsing or misdocumented >> file_select.search_owners attribute >> >> >> Ok - I've thought about this now. Please try svn and tell me if it >> works as expected. >> >> M >> >> Faehl, Chris wrote: >>> Using cfengine 3.0.1 and cfengine 3 svn 328: >>> Objective: find unowned files and assign them a default owner. >>> Problem: search_owners doesn't seem to really accept regexes, as documented >>> examples suggest. Search_groups suffers this same malady. It's difficult to >>> see how the required objective could be met without at least working >>> character classes and the "+" operator. >>> >>> Test case: >>> body common control { >>> bundlesequence => { "s" }; >>> } >>> bundle agent s { >>> files: >>> "/" >>> file_select => noowner, >>> perms => pnoowner, >>> action => warn; >>> } >>> >>> body file_select noowner { >>> search_owners => { "[a-zA-Z0-9_.]+" }; >>> file_result => "!owner"; >>> } >>> >>> body action warn{ >>> action_policy => "warn"; >>> } >>> >>> body perms pnoowner { >>> owners => { "root" }; >>> groups => { "root" }; >>> } >>> >>> >>> Cf-promises -v -f ./test7.cf: >>> . >>> . >>> . >>> cf3 > Parsing file ./test7.cf >>> cf3:./test7.cf:13,38: Scalar item in search_owners => { [a-zA-Z0-9_.]+ } in >>> rvalue is out of bounds (value should match pattern [a-zA-Z0-9_$.-]+), near >>> token '}' >>> . >>> . >>> . >>> >>> >>> Cf-promises -d2 -f ./test7.cf: >>> . >>> . >>> . >>> ------------------------------------------------ >>> - Checking inline constraint/arg file_select[(ext body)] => mappedval >>> (bundle/body) >>> ------------------------------------------------ >>> Nothing to check for body reference >>> end CheckConstraintTypeMatch--------- >>> Post Check Constraint files: search_owners => {'[a-zA-Z0-9_.]+'} >>> ------------------------------------------------ >>> - Checking inline constraint/arg search_owners[slist] => mappedval (l) >>> [a-zA-Z0-9_$.-]+ >>> ------------------------------------------------ >>> ------------------------------------------------ >>> - Checking inline constraint/arg search_owners[slist] => mappedval (s) >>> [a-zA-Z0-9_$.-]+ >>> ------------------------------------------------ >>> >>> CheckParseString(search_owners => [a-zA-Z0-9_.]+/[a-zA-Z0-9_$.-]+) >>> Deleting scope match >>> Object match exists >>> Adding scope data match >>> Regex [a-zA-Z0-9_$.-]+ did not match ([a-zA-Z0-9_.]+) exactly, but it >>> matched a part of it. >>> IsCf3VarString([a-zA-Z0-9_.]+) - syntax verify >>> Found 0 variables in ([a-zA-Z0-9_.]+) >>> Validation: Scalar item in search_owners => { [a-zA-Z0-9_.]+ } in rvalue is >>> out of bounds (value should match pattern [a-zA-Z0-9_$.-]+) >>> end CheckConstraintTypeMatch--------- >>> Post Check Constraint files: file_result =>!owner >>> . >>> . >>> . >>> -- >>> Chris Faehl >>> Hosting Engineering Systems Manager, RightNow Technologies >>> >>> _______________________________________________ >>> Bug-cfengine mailing list >>> Bug-cfengine@cfengine.org >>> https://cfengine.org/mailman/listinfo/bug-cfengine > -- Mark Burgess ------------------------------------------------- Professor of Network and System Administration Oslo University College, Norway Personal Web: http://www.iu.hio.no/~mark Office Telf : +47 22453272 ------------------------------------------------- _______________________________________________ Bug-cfengine mailing list Bug-cfengine@cfengine.org https://cfengine.org/mailman/listinfo/bug-cfengine _______________________________________________ Bug-cfengine mailing list Bug-cfengine@cfengine.org https://cfengine.org/mailman/listinfo/bug-cfengine