Re: Unique bug in ceph start script

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 24 Apr 2013, Andreas Friedrich wrote:
> On Di, Apr 23, 2013 at 10:01:53 -0700, Sage Weil wrote:
> ...
> > > So in this example two config files with different names but the same
> > > content would be copied to hosta. This is not very pretty but it 
> > > should work without error.
> > 
> > It's because of the $pushed_to list.. for #3 it wouldn't re-push 
> > ceph.conf.  I pushed a patch that just skips that optimization entirely:
> > 
> > https://github.com/ceph/ceph/commit/ccbc4dbc6edf09626459ca52a53a72682f541e86
> > 
> > Look okay to you?
> 
> Yes, but I'm not happy with the trap instruction:
> 
>   trap "ssh $host rm /tmp/ceph.conf.$unique" EXIT
> 
> If the start script exits with or without error, the remote config 
> file will be removed from <remote-host>:/tmp - but only for the last 
> host (the former trap calls will be overwritten by the last trap
> call)! This makes no sense to me.

Bah.. I was thinking they would stack.  How about

diff --git a/src/init-ceph.in b/src/init-ceph.in
index 61c10e1..195bf76 100644
--- a/src/init-ceph.in
+++ b/src/init-ceph.in
@@ -218,8 +218,11 @@ for name in $what; do
     else
        unique=`dd if=/dev/urandom bs=16 count=1 2>/dev/null | md5sum | awk '{print $1}'`
        scp -q $conf $host:/tmp/ceph.conf.$unique
-       trap "ssh $host rm /tmp/ceph.conf.$unique" EXIT
        cur_conf="/tmp/ceph.conf.$unique"
+
+       # clean up on exit
+       remote_configs="$host:/tmp/ceph.conf.$unique $remote_configs"
+       trap 'for f in '$remote_configs' ; do ssh ${f%:*} rm ${f#*:} ; done' EXIT
     fi
     cmd="$cmd -c $cur_conf"
 

??
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux