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