CONDOR_CHIRP=`condor_config_val LIBEXEC`/condor_chirp
 
+get_job_attr_blocking() {
+    while /bin/true
+    do
+        JobServerAddress=`$CONDOR_CHIRP get_job_attr $1`
+        if [ $? -ne 0 ]; then
+            echo "Chirp is broken!" 1>&2
+            exit 1
+        fi
+        if [ "$JobServerAddress" != "UNDEFINED" ]; then
+            echo "$JobServerAddress"
+            exit 0
+        fi
+        sleep 2
+    done
+}
+
+HOSTNAME=`hostname`
+
+echo "I am $HOSTNAME, node $_CONDOR_PROCNO"
+
 if [[ $_CONDOR_PROCNO = "0" ]]
 then
+    echo "I'm the server"
 
-    # I'm the server
-
-    # Start netcat listening on an ephemeral port (0 means kernels picks port)
+    # Start netcat listening on an ephemeral port (0 means kernel picks port)
     #    It will wait for a connection, then write that data to output_file
 
     nc -l 0 > output_file &
@@ -117,45 +136,39 @@
         awk -F: '{print $2}' | awk '{print $1}'
     `
 
-    # grab the hostname
-    HOSTNAME=`hostname`
 
+    echo "Listening on $HOSTNAME $NCPORT"
     $CONDOR_CHIRP set_job_attr JobServerAddress \"${HOSTNAME}\ ${NCPORT}\"
 
     # Do other server things here...
-    sleep 3600
+    sleep 60
+    echo "Here's the output:"
+    cat output_file
     exit 0
 fi
 
 
 if [[ $_CONDOR_PROCNO = "1" ]]
 then
+    echo "I'm the client"
 
-    # I'm the client
-
-    sleep 20
-    # Poll until the job attribute appears in the ad
-
-    until $CONDOR_CHIRP get_job_attr JobServerAddress > /tmp/null 2>&1
-    do
-        sleep 2
-    done
-
-    JobServerAddress=`$CONDOR_CHIRP get_job_attr JobServerAddress`
+    JobServerAddress=`get_job_attr_blocking JobServerAddress`
+    if [ $? -ne 0 ]; then
+        echo "Chirp is broken"
+        exit 1
+    fi
+    echo "JobServerAddress: $JobServerAddress";
 
     host=`echo $JobServerAddress | tr -d '"' | awk '{print $1}'`
     port=`echo $JobServerAddress | tr -d '"' | awk '{print $2}'`
 
-    # Send the /etc/hosts file to the other side
+    echo "Sending to $host $port"
     nc $host $port < /etc/hosts
+    echo "Sent $?"
 
     # Don't do any other client stuff, just exit
     exit 0
 fi
 
 exit 0
-
-
-
-
 {endcode}