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 ()
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)
_______________________________________________
Help-cfengine mailing list
[email protected]
https://cfengine.org/mailman/listinfo/help-cfengine