I am having issues with jupyterhub public port not working and the private port not being able to redirect the page to jupyter-single notebook after login.
If I define ports as:
Private port:
c.JupyterHub.hub_port = 8089
Public port:
c.JupyterHub.port = 8090
and open this url: http://127.0.0.1:8090/ on the node I get white screen "The connection was reset" but if I use the http://127.0.0.1:8089 (which I should not), it lets me log in but then does not redirect.
I am attaching my jupyterhub config file and the output I get in my terminal. Any help will be greatly appreciated!
Here is my config file (it's a big one, so my apologies for that):
$ more jupyterhub_config.py
# Configuration file for jupyterhub.
c = get_config()
#This is just an experiment
#import nbextensions
#End of experiment
import os
pjoin = os.path.join
#runtime_dir = os.path.join('~/.conda/envs/jupyterhub2/bin/jupyterhub')
runtime_dir = os.path.join('/userhome/username1/Work/Jupyterhub')
##ssl_dir = pjoin(runtime_dir, 'ssl')
ssl_dir = runtime_dir
if not os.path.exists(ssl_dir):
os.makedirs(ssl_dir)
# https on :443
###c.JupyterHub.port = 80880
c.JupyterHub.ssl_key = pjoin(ssl_dir, 'ca.key')
c.JupyterHub.ssl_cert = pjoin(ssl_dir, 'ca.crt')
# put the JupyterHub cookie secret and state db
# in /var/run/jupyterhub
c.JupyterHub.cookie_secret_file = pjoin(runtime_dir, 'cookie_secret')
c.JupyterHub.db_url = pjoin(runtime_dir, 'jupyterhub.sqlite')
# or `--db=/path/to/jupyterhub.sqlite` on the command-line
#########################Original config start from here on:####################
#c.JupyterHub.ssl_key = '/userhome/username1/Work/Jupyterhub/ca.key'
#c.JupyterHub.ssl_cert = '/userhome/username1/Work/Jupyterhub/ca.crt'
###c.JupyterHub.port = 44223
######Private port:
c.JupyterHub.hub_port = 8089
#c.JupyterHub.hup_ip = 127.0.0.1
######Public port:
c.JupyterHub.port = 8090
# c.JupyterHub.proxy_api_port = 0
# c.JupyterHub.statsd_port = 8125
# This should be the full Error! Hyperlink reference not valid.
#------------------------------------------------------------------------------
# Configurable configuration
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# LoggingConfigurable configuration
#------------------------------------------------------------------------------
# A parent class for Configurables that log.
#
# Subclasses have a log trait, and the default behavior is to get the logger
# from the currently running Application.
#------------------------------------------------------------------------------
# SingletonConfigurable configuration
#------------------------------------------------------------------------------
# A configurable that only allows one instance.
#
# This class is for classes that should only have one instance of itself or
# *any* subclass. To create and retrieve such a class use the
# :meth:`SingletonConfigurable.instance` method.
#------------------------------------------------------------------------------
# Application configuration
#------------------------------------------------------------------------------
# This is an application.
# The date format used by logging formatters for %(asctime)s
#c.Application.log_datefmt = '%Y-%m-%d %H:%M:%S'
# The Logging format template
#c.Application.log_format = '[%(name)s]%(highlevel)s %(message)s'
# Set the log level by value or name.
#c.Application.log_level = 30
#------------------------------------------------------------------------------
# JupyterHub configuration
#------------------------------------------------------------------------------
# An Application for starting a Multi-User Jupyter Notebook server.
# Grant admin users permission to access single-user servers.
#
# Users should be properly informed if this is enabled.
# c.JupyterHub.admin_access = False
# DEPRECATED, use Authenticator.admin_users instead.
# c.JupyterHub.admin_users = set()
# Answer yes to any questions (e.g. confirm overwrite)
# c.JupyterHub.answer_yes = False
# Dict of token:username to be loaded into the database.
#
# Allows ahead-of-time generation of API tokens for use by services.
# c.JupyterHub.api_tokens = {}
# Class for authenticating users.
#
# This should be a class with the following form:
#
# - constructor takes one kwarg: `config`, the IPython config object.
#
# - is a tornado.gen.coroutine
# - returns username on success, None on failure
# - takes two arguments: (handler, data),
# where `handler` is the calling web.RequestHandler,
# and `data` is the POST form data from the login page.
# c.JupyterHub.authenticator_class = 'jupyterhub.auth.PAMAuthenticator'
c.JupyterHub.authenticator_class = 'ldapauthenticator.LDAPAuthenticator'
c.LDAPAuthenticator.server_address = 'nihdcadhub.nih.gov'
c.LDAPAuthenticator.bind_dn_template = 'CN={username},OU=Users,OU=xxxxx,OU=xxx,OU=xx,DC=xxx,DC=xxx'
#c.LDAPAuthenticator.allowed_groups = ['CN=xxxxx OEB All,OU=Groups,OU=xxxxx,OU=xxx,OU=xx,DC=xxx,DC=xxx']
###c.LDAPAuthenticator.use_ssl = False
###c.LDAPAuthenticator.lookup_dn = True
# Active Directory
###c.LDAPAuthenticator.user_attribute = 'sAMAccountName'
# OpenLDAP
###c.LDAPAuthenticator.user_attribute = 'uid'
# The base URL of the entire application
###c.JupyterHub.base_url = 'http://127.0.0.1:8088/hub'
# Whether to shutdown the proxy when the Hub shuts down.
#
# Disable if you want to be able to teardown the Hub while leaving the proxy
# running.
#
# Only valid if the proxy was starting by the Hub process.
#
# If both this and cleanup_servers are False, sending SIGINT to the Hub will
# only shutdown the Hub, leaving everything else running.
#
# The Hub should be able to resume from database state.
c.JupyterHub.cleanup_proxy = True
# Whether to shutdown single-user servers when the Hub shuts down.
#
# Disable if you want to be able to teardown the Hub while leaving the single-
# user servers running.
#
# If both this and cleanup_proxy are False, sending SIGINT to the Hub will only
# shutdown the Hub, leaving everything else running.
#
# The Hub should be able to resume from database state.
c.JupyterHub.cleanup_servers = True
# The config file to load
c.JupyterHub.config_file = '/userhome/username1/Work/Jupyterhub/jupyterhub_config.py'
# Confirm that JupyterHub should be run without SSL. This is **NOT RECOMMENDED**
# unless SSL termination is being handled by another layer.
# c.JupyterHub.confirm_no_ssl = False
# Number of days for a login cookie to be valid. Default is two weeks.
# c.JupyterHub.cookie_max_age_days = 14
# The cookie secret to use to encrypt cookies.
#
# Loaded from the JPY_COOKIE_SECRET env variable by default.
# c.JupyterHub.cookie_secret = b''
# File in which to store the cookie secret.
# c.JupyterHub.cookie_secret_file = 'jupyterhub_cookie_secret'
# The location of jupyterhub data files (e.g. /usr/local/share/jupyter/hub)
###c.JupyterHub.data_files_path = '/userhome/username1/.conda/envs/jupyterhub2'
# Include any kwargs to pass to the database connection. See
# sqlalchemy.create_engine for details.
# c.JupyterHub.db_kwargs = {}
# url for the database. e.g. `sqlite:///jupyterhub.sqlite`
# c.JupyterHub.db_url = 'sqlite:///jupyterhub.sqlite'
# log all database transactions. This has A LOT of output
# c.JupyterHub.debug_db = False
# show debug output in configurable-http-proxy
c.JupyterHub.debug_proxy = True
# Send JupyterHub's logs to this file.
#
# This will *only* include the logs of the Hub itself, not the logs of the proxy
# or any single-user servers.
# c.JupyterHub.extra_log_file = ''
# put the log file in /var/log
###c.JupyterHub.extra_log_file = '/var/log/jupyterhub.log'
c.JupyterHub.extra_log_file = '/userhome/username1/Work/Jupyterhub/jupyterhub.log'
# Extra log handlers to set on JupyterHub logger
# c.JupyterHub.extra_log_handlers = []
# Generate default config file
# c.JupyterHub.generate_config = False
# The ip for this process
# c.JupyterHub.hub_ip = '127.0.0.1'
# The port for this process
# c.JupyterHub.hub_port = 8081
# The prefix for the hub server. Must not be '/'
###c.JupyterHub.hub_prefix = '/userhome'
# The public facing ip of the whole application (the proxy)
# c.JupyterHub.ip = ''
# Supply extra arguments that will be passed to Jinja environment.
# c.JupyterHub.jinja_environment_options = {}
# Interval (in seconds) at which to update last-activity timestamps.
# c.JupyterHub.last_activity_interval = 300
# Specify path to a logo image to override the Jupyter logo in the banner.
# c.JupyterHub.logo_file = ''
# File to write PID Useful for daemonizing jupyterhub.
# c.JupyterHub.pid_file = ''
# The public facing port of the proxy
# c.JupyterHub.port = 8000
# The ip for the proxy API handlers
# c.JupyterHub.proxy_api_ip = '127.0.0.1'
# The port for the proxy API handlers
# c.JupyterHub.proxy_api_port = 0
# The Proxy Auth token.
#
# Loaded from the CONFIGPROXY_AUTH_TOKEN env variable by default.
# c.JupyterHub.proxy_auth_token = ''
c.JupyterHub.proxy_auth_token = 'blah-blah-blah'
# Interval (in seconds) at which to check if the proxy is running.
# c.JupyterHub.proxy_check_interval = 30
# The command to start the http proxy.
#
# Only override if configurable-http-proxy is not on your PATH
###c.JupyterHub.proxy_cmd = ['configurable-http-proxy']
# Purge and reset the database.
# c.JupyterHub.reset_db = False
# The class to use for spawning single-user servers.
#
# Should be a subclass of Spawner.
###c.JupyterHub.spawner_class = 'jupyterhub.spawner.LocalProcessSpawner'
c.JupyterHub.spawner_class = 'sudospawner.SudoSpawner'
# Path to SSL certificate file for the public facing interface of the proxy
#
# Use with ssl_key
# c.JupyterHub.ssl_cert = ''
# Path to SSL key file for the public facing interface of the proxy
#
# Use with ssl_cert
# c.JupyterHub.ssl_key = ''
# Host to send statds metrics to
# c.JupyterHub.statsd_host = ''
# Port on which to send statsd metrics about the hub
# c.JupyterHub.statsd_port = 8125
# Prefix to use for all metrics sent by jupyterhub to statsd
# c.JupyterHub.statsd_prefix = 'jupyterhub'
# Run single-user servers on subdomains of this host.
#
# This should be the full Error! Hyperlink reference not valid.
#
# Provides additional cross-site protections for javascript served by single-
# user servers.
#
# Requires <username>.hub.domain.tld to resolve to the same host as
# hub.domain.tld.
#
# In general, this is most easily achieved with wildcard DNS.
#
# When using SSL (i.e. always) this also requires a wildcard SSL certificate.
# c.JupyterHub.subdomain_host = ''
# Paths to search for jinja templates.
# c.JupyterHub.template_paths = []
# Extra settings overrides to pass to the tornado application.
# c.JupyterHub.tornado_settings = {}
#------------------------------------------------------------------------------
# Spawner configuration
#------------------------------------------------------------------------------
# Base class for spawning single-user notebook servers.
#
# Subclass this, and override the following methods:
#
# - load_state - get_state - start - stop - poll
# Extra arguments to be passed to the single-user server
# c.Spawner.args = []
###c.Spawner.args = ['--NotebookApp.default_url=/notebooks/Welcome.ipynb']
# The command used for starting notebooks.
c.SudoSpawner.sudospawner_path = '/userhome/username1/.conda/envs/jupyterhub2/bin/sudospawner'
c.Spawner.cmd = ['jupyterhub-singleuser']
# Enable debug-logging of the single-user server
c.Spawner.debug = True
# The default URL for the single-user server.
#
# Can be used in conjunction with --notebook-dir=/ to enable full filesystem
# traversal, while preserving user's homedir as landing page for notebook
#
# `%U` will be expanded to the user's username
###c.Spawner.default_url = '/userhome/`%U`'
# Disable per-user configuration of single-user servers.
#
# This prevents any config in users' $HOME directories from having an effect on
# their server.
c.Spawner.disable_user_config = False
# Whitelist of environment variables for the subprocess to inherit
c.Spawner.env_keep = ['PATH', 'PYTHONPATH', 'CONDA_ROOT', 'CONDA_DEFAULT_ENV', 'VIRTUAL_ENV', 'LANG', 'L
C_ALL']
# Environment variables to load for the Spawner.
#
# Value could be a string or a callable. If it is a callable, it will be called
# with one parameter, which will be the instance of the spawner in use. It
# should quickly (without doing much blocking operations) return a string that
# will be used as the value for the environment variable.
# c.Spawner.environment = {}
# Timeout (in seconds) before giving up on a spawned HTTP server
#
# Once a server has successfully been spawned, this is the amount of time we
# wait before assuming that the server is unable to accept connections.
# c.Spawner.http_timeout = 30
# The IP address (or hostname) the single-user server should listen on
###c.Spawner.ip = '127.0.0.1'
# The notebook directory for the single-user server
#
# `~` will be expanded to the user's home directory `%U` will be expanded to the
# user's username
c.Spawner.notebook_dir = '~/notebooks'
###c.Spawner.args = ['--NotebookApp.default_url=/notebooks/Welcome.ipynb']
# An HTML form for options a user can specify on launching their server. The
# surrounding `<form>` element and the submit button are already provided.
#
# For example:
#
# Set your key:
# <input name="key" val="default_key"></input>
# <br>
# Choose a letter:
# <select name="letter" multiple="true">
# <option value="A">The letter A</option>
# <option value="B">The letter B</option>
# </select>
# c.Spawner.options_form = ''
# Interval (in seconds) on which to poll the spawner.
# c.Spawner.poll_interval = 30
# Timeout (in seconds) before giving up on the spawner.
#
# This is the timeout for start to return, not the timeout for the server to
# respond. Callers of spawner.start will assume that startup has failed if it
# takes longer than this. start should return when the server process is started
# and its location is known.
# c.Spawner.start_timeout = 60
#------------------------------------------------------------------------------
# LocalProcessSpawner configuration
#------------------------------------------------------------------------------
# A Spawner that just uses Popen to start local processes as users.
#
# Requires users to exist on the local system.
#
# This is the default spawner for JupyterHub.
# Seconds to wait for process to halt after SIGINT before proceeding to SIGTERM
#c.LocalProcessSpawner.INTERRUPT_TIMEOUT = 10
# Seconds to wait for process to halt after SIGKILL before giving up
#c.LocalProcessSpawner.KILL_TIMEOUT = 5
# Seconds to wait for process to halt after SIGTERM before proceeding to SIGKILL
#c.LocalProcessSpawner.TERM_TIMEOUT = 5
#------------------------------------------------------------------------------
# Authenticator configuration
#------------------------------------------------------------------------------
# A class for authentication.
#
# The primary API is one method, `authenticate`, a tornado coroutine for
# authenticating users.
# set of usernames of admin users
#
# If unspecified, only the user that launches the server will be admin.
c.Authenticator.admin_users = set(['username1'])
# Dictionary mapping authenticator usernames to JupyterHub users.
#
# Can be used to map OAuth service names to local users, for instance.
#
# Used in normalize_username.
# c.Authenticator.username_map = {}
# Regular expression pattern for validating usernames.
#
# If not defined: allow any username.
# c.Authenticator.username_pattern = ''
# Username whitelist.
#
# Use this to restrict which users can login. If empty, allow any user to
# attempt login.
# c.Authenticator.whitelist = set()
#------------------------------------------------------------------------------
# LocalAuthenticator configuration
#------------------------------------------------------------------------------
# Base class for Authenticators that work with local Linux/UNIX users
#
# Checks for local users, and can attempt to create them if they exist.
# The command to use for creating users as a list of strings.
#
# For each element in the list, the string USERNAME will be replaced with the
# user's username. The username will also be appended as the final argument.
#
# For Linux, the default value is:
#
# ['adduser', '-q', '--gecos', '""', '--disabled-password']
#
# To specify a custom home directory, set this to:
#
# ['adduser', '-q', '--gecos', '""', '--home', '/customhome/USERNAME', '--
# disabled-password']
#
# This will run the command:
#
# adduser -q --gecos "" --home /customhome/river --disabled-password river
#
# when the user 'river' is created.
c.LocalAuthenticator.add_user_cmd = ['adduser', '-q', '--gecos', '""', '--home', '/customhome/USERNAME',
'--disabled-password']
# If a user is added that doesn't exist on the system, should I try to create
# the system user?
c.LocalAuthenticator.create_system_users = True
# Automatically whitelist anyone in this group.
# c.LocalAuthenticator.group_whitelist = set()
#------------------------------------------------------------------------------
# PAMAuthenticator configuration
#------------------------------------------------------------------------------
# Authenticate local Linux/UNIX users with PAM
# The encoding to use for PAM
#c.PAMAuthenticator.encoding = 'utf8'
# Whether to open PAM sessions when spawners are started.
#
# This may trigger things like mounting shared filsystems, loading credentials,
# etc. depending on system configuration, but it does not always work.
#
# It can be disabled with::
#
#c.PAMAuthenticator.open_sessions = False
#c.PAMAuthenticator.open_sessions = True
# The PAM service to use for authentication.
#c.PAMAuthenticator.service = 'login'
Here is the output:
$ jupyterhub -f /userhome/username1/Work/Jupyterhub/jupyterhub_config.py --debug
[D 2016-09-12 14:19:16.907 JupyterHub application:529] Looking for /userhome/username1/Work/Jupyterhub/jupyterhub_config in None
[D 2016-09-12 14:19:16.908 JupyterHub application:549] Loaded config file: /userhome/username1/Work/Jupyterhub/jupyterhub_config.py
[I 2016-09-12 14:19:16.974 JupyterHub app:622] Loading cookie_secret from /userhome/username1/Work/Jupyterhub/cookie_secret
[D 2016-09-12 14:19:16.974 JupyterHub app:694] Connecting to db: sqlite:////userhome/username1/Work/Jupyterhub/jupyterhub.sqlite
[I 2016-09-12 14:19:17.030 JupyterHub app:785] Not using whitelist. Any authenticated user will be allowed.
[D 2016-09-12 14:19:17.070 JupyterHub app:888] Loaded users:
username1 admin
username2
username3
[I 2016-09-12 14:19:17.076 JupyterHub app:1231] Hub API listening on http://127.0.0.1:8089/hub/
[I 2016-09-12 14:19:17.079 JupyterHub app:968] Starting proxy @ http://*:8090/
[D 2016-09-12 14:19:17.079 JupyterHub app:969] Proxy cmd: ['configurable-http-proxy', '--ip', '', '--port', '8090', '--api-ip', '127.0.0.1', '--api-port', '8091', '--default-target', 'http://127.0.0.1:8089', '--error-target', 'http://127.0.0.1:8089/hub/error', '--log-level', 'debug', '--ssl-key', '/userhome/username1/Work/Jupyterhub/ca.key', '--ssl-cert', '/userhome/username1/Work/Jupyterhub/ca.crt']
14:19:17.257 - info: [ConfigProxy] Proxying https://*:8090 to http://127.0.0.1:8089
14:19:17.261 - info: [ConfigProxy] Proxy API at http://127.0.0.1:8091/api/routes
[D 2016-09-12 14:19:17.285 JupyterHub app:997] Proxy started and appears to be up
[I 2016-09-12 14:19:17.286 JupyterHub app:1254] JupyterHub is now running at http://127.0.0.1:8090/
[I 2016-09-12 14:20:34.809 JupyterHub log:100] 302 GET / (@127.0.0.1) 1.93ms
[I 2016-09-12 14:20:34.819 JupyterHub log:100] 302 GET /hub (@127.0.0.1) 0.55ms
[D 2016-09-12 14:20:34.830 JupyterHub pages:35] User is not running: /hub/home
[I 2016-09-12 14:20:34.835 JupyterHub log:100] 302 GET /hub/ ([email protected]) 3.93ms
[I 2016-09-12 14:20:34.873 JupyterHub log:100] 200 GET /hub/home ([email protected]) 32.74ms
[D 2016-09-12 14:20:34.896 JupyterHub log:100] 200 GET /hub/static/css/style.min.css?v=91c753d3c28f12b7480e5d0d9e7c55b2 (@127.0.0.1) 7.97ms
[D 2016-09-12 14:20:34.898 JupyterHub log:100] 200 GET /hub/static/components/requirejs/require.js?v=6da8be361b9ee26c5e721e76c6d4afce (@127.0.0.1) 1.33ms
[D 2016-09-12 14:20:34.912 JupyterHub log:100] 200 GET /hub/logo (@127.0.0.1) 13.55ms
[D 2016-09-12 14:20:34.947 JupyterHub log:100] 200 GET /hub/static/components/font-awesome/fonts/fontawesome-webfont.woff?v=4.1.0 (@127.0.0.1) 1.66ms
[D 2016-09-12 14:20:34.955 JupyterHub log:100] 200 GET /hub/static/js/home.js?v=(& (@127.0.0.1) 1.42ms
[D 2016-09-12 14:20:34.993 JupyterHub log:100] 200 GET /favicon.ico (@127.0.0.1) 11.15ms
[D 2016-09-12 14:20:35.000 JupyterHub log:100] 200 GET /hub/static/components/jquery/jquery.min.js?v=(& (@127.0.0.1) 1.50ms
[D 2016-09-12 14:20:35.001 JupyterHub log:100] 200 GET /hub/static/js/jhapi.js?v=(& (@127.0.0.1) 1.05ms
[D 2016-09-12 14:20:35.012 JupyterHub log:100] 304 GET /favicon.ico (@127.0.0.1) 1.01ms
[D 2016-09-12 14:20:35.026 JupyterHub log:100] 200 GET /hub/static/js/utils.js?v=(& (@127.0.0.1) 1.48ms
[I 2016-09-12 14:20:40.378 JupyterHub log:100] 302 GET /hub/spawn ([email protected]) 4.58ms
[I 2016-09-12 14:20:40.382 JupyterHub log:100] 302 GET /user/username1 (@127.0.0.1) 0.99ms
[I 160912 14:20:40 mediator:68] Spawning /userhome/username1/.conda/envs/jupyterhub2/bin/jupyterhub-singleuser --user=username1 --port=38610 --cookie-name=jupyter-hub-token-username1 --base-url=/user/username1 --hub-host= --hub-prefix=/hub/ --hub-api-url=http://127.0.0.1:8089/hub/api --ip=127.0.0.1 '--notebook-dir=~/notebooks' --debug
[D 2016-09-12 14:20:41.410 username1 application:178] Searching ['/userhome/username1', '/userhome/username1/.jupyter', '/userhome/username1/.conda/envs/jupyterhub2/etc/jupyter', '/usr/local/etc/jupyter', '/etc/jupyter'] for config files
[D 2016-09-12 14:20:41.411 username1 application:529] Looking for jupyter_config in /etc/jupyter
[D 2016-09-12 14:20:41.411 username1 application:529] Looking for jupyter_config in /usr/local/etc/jupyter
[D 2016-09-12 14:20:41.411 username1 application:529] Looking for jupyter_config in /userhome/username1/.conda/envs/jupyterhub2/etc/jupyter
[D 2016-09-12 14:20:41.411 username1 application:529] Looking for jupyter_config in /userhome/username1/.jupyter
[D 2016-09-12 14:20:41.411 username1 application:529] Looking for jupyter_config in /userhome/username1
[D 2016-09-12 14:20:41.412 username1 application:529] Looking for jupyter_notebook_config in /etc/jupyter
[D 2016-09-12 14:20:41.412 username1 application:529] Looking for jupyter_notebook_config in /usr/local/etc/jupyter
[D 2016-09-12 14:20:41.412 username1 application:529] Looking for jupyter_notebook_config in /userhome/username1/.conda/envs/jupyterhub2/etc/jupyter
[W 2016-09-12 14:20:41.413 username1 loader:419] Unrecognized JSON config file version, assuming version 1
[D 2016-09-12 14:20:41.413 username1 application:549] Loaded config file: /userhome/username1/.conda/envs/jupyterhub2/etc/jupyter/jupyter_notebook_config.json
[D 2016-09-12 14:20:41.415 username1 application:529] Looking for jupyter_notebook_config in /userhome/username1/.jupyter
[D 2016-09-12 14:20:41.415 username1 application:529] Looking for jupyter_notebook_config in /userhome/username1
[D 2016-09-12 14:20:41.420 username1 manager:45] [nb_conda_kernels] refreshing conda info
[D 2016-09-12 14:20:41.737 JupyterHub spawner:316] Polling subprocess every 30s
Using Anaconda Cloud api site https://api.anaconda.org
[D 2016-09-12 14:20:41.797 username1 manager:145] [nb_conda_kernels] refreshing conda kernelspecs
[I 2016-09-12 14:20:41.800 username1 manager:32] [nb_conda_kernels] enabled, 7 kernels found
[I 2016-09-12 14:20:41.844 username1 handlers:290] [nb_conda] enabled
[I 2016-09-12 14:20:41.883 username1 handlers:73] [nb_anacondacloud] enabled
[I 2016-09-12 14:20:41.932 username1 __init__:35] ✓ nbpresent HTML export ENABLED
[I 2016-09-12 14:20:41.932 username1 __init__:46] ✓ nbpresent PDF export ENABLED
[I 2016-09-12 14:20:41.938 username1 notebookapp:1128] Serving notebooks from local directory: /userhome/username1/notebooks
[I 2016-09-12 14:20:41.938 username1 notebookapp:1128] 0 active kernels
[I 2016-09-12 14:20:41.938 username1 notebookapp:1128] The Jupyter Notebook is running at: http://127.0.0.1:38610/user/username1/
[I 2016-09-12 14:20:41.938 username1 notebookapp:1129] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[I 2016-09-12 14:20:41.941 username1 log:47] 302 GET /user/username1 (127.0.0.1) 0.66ms
[D 2016-09-12 14:20:41.942 JupyterHub utils:84] Server at http://127.0.0.1:38610/user/username1 responded with 302
[I 2016-09-12 14:20:41.943 JupyterHub base:306] User username1 server took 1.558 seconds to start
[I 2016-09-12 14:20:41.943 JupyterHub orm:159] Adding user username1 to proxy /user/username1 => http://127.0.0.1:38610
[D 2016-09-12 14:20:41.945 JupyterHub orm:146] Fetching POST http://127.0.0.1:8091/api/routes/user/username1
14:20:41.951 - debug: [ConfigProxy] POST /user/username1 user=username1, target=http://127.0.0.1:38610
[D 2016-09-12 14:20:41.954 JupyterHub base:231] Setting cookie for username1: jupyter-hub-token-username1, {}
[I 2016-09-12 14:20:41.963 JupyterHub log:100] 302 GET /hub/user/username1 ([email protected]) 1576.38ms
[I 2016-09-12 14:20:41.970 JupyterHub log:100] 302 GET /user/username1 (@127.0.0.1) 1.21ms
[D 2016-09-12 14:20:42.202 JupyterHub base:231] Setting cookie for username1: jupyter-hub-token-username1, {}
[I 2016-09-12 14:20:42.208 JupyterHub log:100] 302 GET /hub/user/username1 ([email protected]) 233.92ms
[I 2016-09-12 14:20:42.212 JupyterHub log:100] 302 GET /user/username1 (@127.0.0.1) 0.75ms
[D 2016-09-12 14:20:42.431 JupyterHub base:231] Setting cookie for username1: jupyter-hub-token-username1, {}
[I 2016-09-12 14:20:42.437 JupyterHub log:100] 302 GET /hub/user/username1 ([email protected]) 220.85ms
[I 2016-09-12 14:20:42.443 JupyterHub log:100] 302 GET /user/username1 (@127.0.0.1) 0.76ms
[D 2016-09-12 14:20:42.692 JupyterHub base:231] Setting cookie for username1: jupyter-hub-token-username1, {}
[I 2016-09-12 14:20:42.700 JupyterHub log:100] 302 GET /hub/user/username1 ([email protected]) 251.54ms
[I 2016-09-12 14:20:42.705 JupyterHub log:100] 302 GET /user/username1 (@127.0.0.1) 1.08ms
[D 2016-09-12 14:20:42.980 JupyterHub base:231] Setting cookie for username1: jupyter-hub-token-username1, {}
[I 2016-09-12 14:20:42.988 JupyterHub log:100] 302 GET /hub/user/username1 ([email protected]) 276.85ms
[I 2016-09-12 14:20:42.994 JupyterHub log:100] 302 GET /user/username1 (@127.0.0.1) 0.94ms
[D 2016-09-12 14:20:43.233 JupyterHub base:231] Setting cookie for username1: jupyter-hub-token-username1, {}
[I 2016-09-12 14:20:43.239 JupyterHub log:100] 302 GET /hub/user/username1 ([email protected]) 240.30ms
[I 2016-09-12 14:20:43.243 JupyterHub log:100] 302 GET /user/username1 (@127.0.0.1) 0.82ms
[D 2016-09-12 14:20:43.488 JupyterHub base:231] Setting cookie for username1: jupyter-hub-token-username1, {}
[I 2016-09-12 14:20:43.497 JupyterHub log:100] 302 GET /hub/user/username1 ([email protected]) 248.48ms
[I 2016-09-12 14:20:43.503 JupyterHub log:100] 302 GET /user/username1 (@127.0.0.1) 1.16ms
[D 2016-09-12 14:20:43.728 JupyterHub base:231] Setting cookie for username1: jupyter-hub-token-username1, {}
[I 2016-09-12 14:20:43.735 JupyterHub log:100] 302 GET /hub/user/username1 ([email protected]) 228.23ms
[I 2016-09-12 14:20:43.738 JupyterHub log:100] 302 GET /user/username1 (@127.0.0.1) 0.74ms
[D 2016-09-12 14:20:43.984 JupyterHub base:231] Setting cookie for username1: jupyter-hub-token-username1, {}
[I 2016-09-12 14:20:43.992 JupyterHub log:100] 302 GET /hub/user/username1 ([email protected]) 248.32ms
[I 2016-09-12 14:20:43.996 JupyterHub log:100] 302 GET /user/username1 (@127.0.0.1) 1.06ms
[D 2016-09-12 14:20:44.242 JupyterHub base:231] Setting cookie for username1: jupyter-hub-token-username1, {}
[I 2016-09-12 14:20:44.250 JupyterHub log:100] 302 GET /hub/user/username1 ([email protected]) 248.99ms
[I 2016-09-12 14:22:43.050 JupyterHub log:100] 302 GET / (@127.0.0.1) 1.54ms
[I 2016-09-12 14:22:43.052 JupyterHub log:100] 302 GET /hub (@127.0.0.1) 0.41ms
[D 2016-09-12 14:22:43.056 JupyterHub pages:31] User is running: /user/username1
[D 2016-09-12 14:22:43.057 JupyterHub base:231] Setting cookie for username1: jupyter-hub-token-username1, {}
[I 2016-09-12 14:22:43.062 JupyterHub log:100] 302 GET /hub/ ([email protected]) 5.81ms
[I 2016-09-12 14:22:43.070 JupyterHub log:100] 302 GET /user/username1 (@127.0.0.1) 1.08ms
[D 2016-09-12 14:22:43.310 JupyterHub base:231] Setting cookie for username1: jupyter-hub-token-username1, {}
[I 2016-09-12 14:22:43.317 JupyterHub log:100] 302 GET /hub/user/username1 ([email protected]) 242.31ms
[I 2016-09-12 14:22:43.321 JupyterHub log:100] 302 GET /user/username1 (@127.0.0.1) 0.95ms
[D 2016-09-12 14:22:43.568 JupyterHub base:231] Setting cookie for username1: jupyter-hub-token-username1, {}
[I 2016-09-12 14:22:43.576 JupyterHub log:100] 302 GET /hub/user/username1 ([email protected]) 250.24ms
[I 2016-09-12 14:22:43.581 JupyterHub log:100] 302 GET /user/username1 (@127.0.0.1) 1.07ms
[D 2016-09-12 14:22:43.825 JupyterHub base:231] Setting cookie for username1: jupyter-hub-token-username1, {}
[I 2016-09-12 14:22:43.831 JupyterHub log:100] 302 GET /hub/user/username1 ([email protected]) 246.42ms
[I 2016-09-12 14:22:43.835 JupyterHub log:100] 302 GET /user/username1 (@127.0.0.1) 0.84ms
[D 2016-09-12 14:22:44.054 JupyterHub base:231] Setting cookie for username1: jupyter-hub-token-username1, {}
[I 2016-09-12 14:22:44.060 JupyterHub log:100] 302 GET /hub/user/username1 ([email protected]) 221.38ms
[I 2016-09-12 14:22:44.063 JupyterHub log:100] 302 GET /user/username1 (@127.0.0.1) 0.74ms
[D 2016-09-12 14:22:44.292 JupyterHub base:231] Setting cookie for username1: jupyter-hub-token-username1, {}
[I 2016-09-12 14:22:44.298 JupyterHub log:100] 302 GET /hub/user/username1 ([email protected]) 231.44ms
[I 2016-09-12 14:22:44.302 JupyterHub log:100] 302 GET /user/username1 (@127.0.0.1) 0.72ms
[D 2016-09-12 14:22:44.540 JupyterHub base:231] Setting cookie for username1: jupyter-hub-token-username1, {}
[I 2016-09-12 14:22:44.549 JupyterHub log:100] 302 GET /hub/user/username1 ([email protected]) 241.75ms
[I 2016-09-12 14:22:44.553 JupyterHub log:100] 302 GET /user/username1 (@127.0.0.1) 1.01ms
[D 2016-09-12 14:22:44.793 JupyterHub base:231] Setting cookie for username1: jupyter-hub-token-username1, {}
[I 2016-09-12 14:22:44.803 JupyterHub log:100] 302 GET /hub/user/username1 ([email protected]) 243.02ms
[I 2016-09-12 14:22:44.811 JupyterHub log:100] 302 GET /user/username1 (@127.0.0.1) 1.22ms
[D 2016-09-12 14:22:45.093 JupyterHub base:231] Setting cookie for username1: jupyter-hub-token-username1, {}
[I 2016-09-12 14:22:45.100 JupyterHub log:100] 302 GET /hub/user/username1 ([email protected]) 284.35ms
[I 2016-09-12 14:22:45.105 JupyterHub log:100] 302 GET /user/username1 (@127.0.0.1) 0.85ms
[D 2016-09-12 14:22:45.370 JupyterHub base:231] Setting cookie for username1: jupyter-hub-token-username1, {}
[I 2016-09-12 14:22:45.376 JupyterHub log:100] 302 GET /hub/user/username1 ([email protected]) 262.32ms
[D 2016-09-12 14:24:17.296 JupyterHub orm:146] Fetching GET http://127.0.0.1:8091/api/routes
[D 2016-09-12 14:25:42.037 username1 jupyterhub-singleuser:211] Clearing cookie cache
[D 2016-09-12 14:29:17.295 JupyterHub orm:146] Fetching GET http://127.0.0.1:8091/api/routes
[D 2016-09-12 14:30:41.996 username1 jupyterhub-singleuser:211] Clearing cookie cache
[D 2016-09-12 14:34:17.295 JupyterHub orm:146] Fetching GET http://127.0.0.1:8091/api/routes
[D 2016-09-12 14:35:42.038 username1 jupyterhub-singleuser:211] Clearing cookie cache
[D 2016-09-12 14:39:17.296 JupyterHub orm:146] Fetching GET http://127.0.0.1:8091/api/routes
question