From d815eed174c8d277faa906bf32495655f28105c0 2014-05-09 00:00:42
From: Min RK <benjaminrk@gmail.com>
Date: 2014-05-09 00:00:42
Subject: [PATCH] Merge pull request #5824 from takluyver/testcontroller-json-error

Handle failure to read JSON waiting for server start
---

diff --git a/IPython/testing/iptestcontroller.py b/IPython/testing/iptestcontroller.py
index df29579..d72aa88 100644
--- a/IPython/testing/iptestcontroller.py
+++ b/IPython/testing/iptestcontroller.py
@@ -274,8 +274,14 @@ class JSController(TestController):
             if self.server.poll() is not None:
                 return self._failed_to_start()
             if os.path.exists(self.server_info_file):
-                self._load_server_info()
-                return
+                try:
+                    self._load_server_info()
+                except ValueError:
+                    # If the server is halfway through writing the file, we may
+                    # get invalid JSON; it should be ready next iteration.
+                    pass
+                else:
+                    return
             time.sleep(0.1)
         print("Notebook server-info file never arrived: %s" % self.server_info_file,
             file=sys.stderr