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)
_______________________________________________
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to