Hello! I’m trying to install Binderhub v0.2.0-b593363 and I get a 400 error. I saw Github issue #611 on about this, but I don’t have any comments in starting with < that may be causing the error. This might be a silly mistake or oversight on my part, but I’ve tried to deploy the Binderhub more than once (including a tear-down and re-start) and I still get the error. Could someone help me with this?
Here is the kubernetes pod log:
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/tornado/web.py", line 1543, in _execute
result = yield result
File "/usr/local/lib/python3.6/site-packages/tornado/gen.py", line 1099, in run
value = future.result()
File "/usr/local/lib/python3.6/site-packages/binderhub/builder.py", line 273, in get
image_manifest = await self.registry.get_image_manifest(*'/'.join(image_name.split('/')[-2:]).split(':', 1))
File "/usr/local/lib/python3.6/site-packages/tornado/gen.py", line 1107, in run
yielded = self.gen.throw(*exc_info)
File "/usr/local/lib/python3.6/site-packages/binderhub/registry.py", line 199, in get_image_manifest
auth_resp = yield client.fetch(auth_req)
File "/usr/local/lib/python3.6/site-packages/tornado/gen.py", line 1099, in run
value = future.result()
tornado.httpclient.HTTPError: HTTP 400: Bad Request
Yaaay, it works!!! Thank you! It was the < key after all. I’m really, really sorry – I should have seen that. I think it might be helpful to show an example secret.yaml file and config.yaml file with fake key values in the BinderHub docs at the end of Step 3.7.
Although the BinderHub works (I tested it out with a simple repository unrelated to the jupyter-book), it doesn’t build the master branch of my jupyter-book:
/bin/sh: 1: conda: Invalid argument
Removing intermediate container 09fe881d9b66
The command '/bin/sh -c conda env update -n root -f "environment.yml" && conda clean -tipsy && conda list -n root' returned a non-zero code: 2
However, I can successfully build this master branch on mybinder.org, so I’m not sure if there’s anything wrong with my environment.yml file. Is this a resource allocation problem?
hmmmm, I wonder if your binderhub is running and older version of conda…when you ran helm upgrade ... what was the version of the binderhub chart you used?
I was using 0.2.0-b593363 (from the February 4 release) but I re-created a BinderHub with the 0.2.0-6bfd93b chart and it works!
However, it took a really long time to build (~15 minutes). When I click the interact button in the jupyter-book, I get a timeout error (on Chrome, Safari, and Firefox).
I checked the Kubernetes pods and I am using a minimal amount (less than 10%) of CPU and memory. I also upped my Github rate limit to 5k. Is our codebase just too big?
hmmmm, it could be that the size of the images is really big. Are you using a “kitchen-sink”-style repository? Maybe you can check the size of the docker image to see if that’s prohibitive.
I don’t know what kitchen-sink means, but I assume it means a single-layer image – if so, the answer is yes. Is there a way around this problem (other than lightening the environment.yml file)?
I looked at the repo2docker and binderhub docs and couldn’t find anything obvious (but I don’t understand exactly what to look for, so I may have missed something).
hmmm 2.7GB doesn’t seem to be too bad. (by “kitchen sink” I mean some folks that just put every package imaginable in their envt.yml file, just in case they’ll need it later )
in kubernetes, you could check the logs of the build pod while it’s building…first try building a repo, then do something like:
# List all pods
kubectl --namespace=yournamespace get pod
# Then find the build pod
# List its logs
kubectl --namespace=yournamespace logs <build-pod-name>
It works!!! It turns out I was using https:// and then the IP for the binderhub_url field in the jupyter-book _config.yml file, when I should have been using http://.
The book is slow to load the first time. It took 5 minutes for BinderHub to successfully build the image, 2.5 minutes to push the image, and another 2 minutes to launch the server. In all, it took 9.5 minutes to go from clicking ‘Interact’ to being able to execute cells. After the first time, it loads quickly.
I am super happy with the end result and I think the Jupyter Book is genuinely one of the best educational tools of all time! Thanks for helping me through all these details. I really appreciate the support.
The reason it takes a long time is because it has to do a docker pull if the image doesn’t exist already on the node where the session is being launched.
and thanks for your kind words about Jupyter Book! Please feel free to make suggestions, edits, PRs, etc! It’s still early days for this project so there are lots of improvements to be made!