And lastly (for the moment, here is a completely self-contained test
case:
bundle agent nfs_test {
vars:
"sge_top" string => '/opt/gridengine';
"sge_ver" string => '6.2u5';
"sge_nfs_opts" string => 'rw,bg,intr,tcp,rsize=32768,wsize=32768';
storage:
# # SEGFAULTS!!!!! in 3.0.3 community binaries
any::
"${sge_top}"
mount => nfs_p(${qmaster_host},${sge_top},${sge_nfs_opts});
}
# cf-agent -KvI -b nfs_test
<..snip..>
cf3 >> Using command line specified bundlesequence
cf3 -> Bundlesequence => {'nfs_test'}
cf3
cf3 *****************************************************************
cf3 BUNDLE nfs_test
cf3 *****************************************************************
cf3
cf3
cf3 =========================================================
cf3 vars in bundle nfs_test (1)
cf3 =========================================================
cf3
cf3 Verifying SQL table promises is only available with Cfengine Nova or
above
cf3
cf3 + Private classes augmented:
cf3
cf3 - Private classes diminished:
cf3
cf3
cf3
cf3 =========================================================
cf3 storage in bundle nfs_test (1)
cf3 =========================================================
cf3
cf3 Verifying SQL table promises is only available with Cfengine Nova or
above
cf3
cf3 .........................................................
cf3 Promise handle:
cf3 Promise made by: /opt/gridengine
cf3 .........................................................
cf3
cf3 -> Using literal pathtype for /opt/gridengine
Detaching after fork from child process 12111.
cf3 -> Verifying mounted file systems on /opt/gridengine
cf3 !! File system /opt/gridengine seems not to be mounted correctly
cf3 Verifying /opt/gridengine in /etc/fstab
cf3 Adding file system ${qmaster_host}:/opt/gridengine seems to
/etc/fstab.
cf3 -> Number of changes observed in /etc/fstab is 1
cf3 Edited file /etc/fstab
Program received signal SIGSEGV, Segmentation fault.
0x000000000041f0a5 in CheckForFileHoles ()
(gdb) bt
#0 0x000000000041f0a5 in CheckForFileHoles ()
#1 0x000000000041eeb1 in ArchiveToRepository ()
#2 0x0000000000422833 in SaveItemListAsFile ()
#3 0x00000000004045f3 in DeleteTypeContext ()
#4 0x0000000000404cd3 in ScheduleAgentOperations ()
#5 0x0000000000404e73 in KeepPromiseBundles ()
#6 0x0000000000405983 in KeepPromises ()
#7 0x0000000000405e9d in main ()
On Mon, Feb 22, 2010 at 11:32:56AM -0500, Jesse Becker wrote:
>On Mon, Feb 22, 2010 at 11:21:00AM -0500, Jesse Becker wrote:
>>On Mon, Feb 22, 2010 at 05:30:34AM -0500, Mark Burgess wrote:
>>>
>>>Jesse,
>>>
>>>I started a bug track on this on our system, but I am unable to reproduce
>>>the error. It
>>>works perfectly for me. Can you provide a gdb backtrace please and simple
>>>reproducible
>>>example that does not depend on your environment.
>>
>>(This is all updated in the bug tracker as well)
>>
>>There may be a connection between the segfault and if the mount
>>point actually exists or not (i.e. there's a typo somewhere).
>>For example, the actual export is 'server:/opt/gridengine', but if I
>>use "server:/opt/grid-typo-oops", there will be a segfault. It works
>>correctly if there isn't a typo. So obviously, I need to check my
>>variables, but cf-agent shouldn't segfault on bad data either.
>>
>>Given this configuration:
>>
>>bundle agent sge {
>>
>>vars:
>> "sge_top" string => '/opt/gridengine';
>> "qmaster_host" string => 'sge-master-host';
>> "sge_nfs_opts" string => 'rw,bg,intr,tcp,rsize=32768,wsize=32768';
>>
>>storage:
>> SGE.!SGEMasters::
>> "${sge_top}-foo" # NOTE!!!!!!! Different from what is used!
>> mount => nfs_p(${qmaster_host},${sge_top},${sge_nfs_opts});
>>
>>}
>>
>>
>>This causes a segfault:
>>
>>cf3 =========================================================
>>cf3 storage in bundle sge (1)
>>cf3 =========================================================
>>cf3
>>cf3 Verifying SQL table promises is only available with Cfengine Nova or
>>above
>>cf3
>>cf3 .........................................................
>>cf3 Promise handle:
>>cf3 Promise made by: /opt/gridengine-FOOOOOO
>>cf3 .........................................................
>>cf3
>>cf3 -> Using literal pathtype for /opt/gridengine-FOOOOOO
>>Detaching after fork from child process 9135.
>>cf3 -> Verifying mounted file systems on /opt/gridengine-FOOOOOO
>>cf3 !! File system /opt/gridengine-FOOOOOO seems not to be mounted
>>correctly
>>cf3 Verifying /opt/gridengine-FOOOOOO in /etc/fstab
>>cf3 Adding file system kirk:/opt/gridengine seems to /etc/fstab.
>>cf3 -> Number of changes observed in /etc/fstab is 1
>>cf3 Edited file /etc/fstab
>>
>>Program received signal SIGSEGV, Segmentation fault.
>>0x000000000041f0a5 in CheckForFileHoles ()
>>(gdb) bt
>>#0 0x000000000041f0a5 in CheckForFileHoles ()
>>#1 0x000000000041eeb1 in ArchiveToRepository ()
>>#2 0x0000000000422833 in SaveItemListAsFile ()
>>#3 0x00000000004045f3 in DeleteTypeContext ()
>>#4 0x0000000000404cd3 in ScheduleAgentOperations ()
>>#5 0x0000000000404e73 in KeepPromiseBundles ()
>>#6 0x0000000000405983 in KeepPromises ()
>>#7 0x0000000000405e9d in main ()
>>
>
>One more bit of information, when running under '-d0'. There may be
>some bad characters in the filename (note the "~K~W~H" control
>characters):
>
>
>...
>Unappending Edited file /etc/fstab
>Repository(/etc/fstab.cf-before-edit)
>cf3 Will not create directories for a relative filename
>(H~K~W~H_etc_fstab.cf-before-edit). Has no invariant meaning
>Unappending Will not create directories for a relative filename
>(H~K~W~H/_etc_fstab.cf-before-edit). Has no invariant meaning
>Program received signal SIGSEGV, Segmentation fault.
>0x000000000041f0a5 in CheckForFileHoles ()
>(gdb) bt
>#0 0x000000000041f0a5 in CheckForFileHoles ()
>#1 0x000000000041eeb1 in ArchiveToRepository ()
>#2 0x0000000000422833 in SaveItemListAsFile ()
>#3 0x00000000004045f3 in DeleteTypeContext ()
>#4 0x0000000000404cd3 in ScheduleAgentOperations ()
>#5 0x0000000000404e73 in KeepPromiseBundles ()
>#6 0x0000000000405983 in KeepPromises ()
>#7 0x0000000000405e9d in main ()
>
>
>Longer debug output is in the bug tracker.
>
>
>
>
>>
>>
>>Also, I noticed that if /etc/fstab does not exist at all, a storage:
>>promise will not create it even if 'edit_fstab => "true";'. I don't
>>know if that is expected behavior or not.
>>
>>
>>>
>>>Jesse Becker wrote:
>>>> I'm getting a segfault from a storage action when using the 3.0.3
>>>> communitiy binaries.
>>>>
>>>> I'm trying to mount an NFS share using this:
>>>>
>>>>
>>>> storage:
>>>>
>>>> SGE.!SGEMasters::
>>>> "/opt/gridengine"
>>>> mount =>
>>>> nfs_p(${qmaster_host},${sge_top},'rw,bg,intr,tcp,rsize=32768,wsize=32768');
>>>>
>>>>
>>>>
>>>> cf-agent blows up, but not before *removing* /etc/fstab completely.
>>>> This is usually a Bad Thing. However, it does create two new files:
>>>>
>>>> /etc/fstab.cf-before-edit
>>>> /etc/fstab.cf-after-edit
>>>>
>>>> These files both have the correct contents for their respective names.
>>>>
>>>
>>>--
>>>Mark Burgess
>>>
>>>-------------------------------------------------
>>>Professor of Network and System Administration
>>>Oslo University College, Norway
>>>
>>>Personal Web: http://www.iu.hio.no/~mark
>>>Office Telf : +47 22453272
>>>-------------------------------------------------
>>
>>--
>>Jesse Becker
>>NHGRI Linux support (Digicon Contractor)
>
>--
>Jesse Becker
>NHGRI Linux support (Digicon Contractor)
--
Jesse Becker
NHGRI Linux support (Digicon Contractor)
_______________________________________________
Help-cfengine mailing list
[email protected]
https://cfengine.org/mailman/listinfo/help-cfengine