--- cloudinit/util.py.orig
+++ cloudinit/util.py
@@ -46,6 +46,7 @@ import tempfile
import time
from base64 import b64decode, b64encode
+from signal import signal, SIGPIPE, SIG_DFL
from six.moves.urllib import parse as urlparse
import six
@@ -1802,7 +1803,8 @@ def subp(args, data=None, rcs=None, env=
sp = subprocess.Popen(args, stdout=stdout,
stderr=stderr, stdin=stdin,
- env=env, shell=shell)
+ env=env, shell=shell,
+ preexec_fn=lambda: signal(SIGPIPE, SIG_DFL))
(out, err) = sp.communicate(data)
# Just ensure blank instead of none.