jupyter-dash icon indicating copy to clipboard operation
jupyter-dash copied to clipboard

Server does not start in JupyterLab when debug=True

Open msbuckas opened this issue 5 years ago • 0 comments

Server does not start if debug=True in JupyterLab.
This minimal code does run when :

  • debug=False in JuyterL:ab, or
  • debug=True if I export it as a an executable script and run it in a terminal window!

Environment setup:

  • conda install
  • Windows 10
  • JupyterLab 2.1
  • localhost

I'm running the following code:

Cell [2]:

app = JupyterDash(__name__)
app.layout = html.Div('Minimal')

app.run_server(mode="external", debug=True)

Cel[2] Output:

Click here for the lengthy error log:
Exception in thread Thread-28:
Traceback (most recent call last):
  File "C:\Users\spikes\Miniconda3\envs\jlab2\lib\threading.py", line 926, in _bootstrap_inner
    self.run()
  File "C:\Users\spikes\Miniconda3\envs\jlab2\lib\threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Users\spikes\Miniconda3\envs\jlab2\lib\site-packages\retrying.py", line 49, in wrapped_f
    return Retrying(*dargs, **dkw).call(f, *args, **kw)
  File "C:\Users\spikes\Miniconda3\envs\jlab2\lib\site-packages\retrying.py", line 212, in call
    raise attempt.get()
  File "C:\Users\spikes\Miniconda3\envs\jlab2\lib\site-packages\retrying.py", line 247, in get
    six.reraise(self.value[0], self.value[1], self.value[2])
  File "C:\Users\spikes\AppData\Roaming\Python\Python37\site-packages\six.py", line 693, in reraise
    raise value
  File "C:\Users\spikes\Miniconda3\envs\jlab2\lib\site-packages\retrying.py", line 200, in call
    attempt = Attempt(fn(*args, **kwargs), attempt_number, False)
  File "C:\Users\spikes\Miniconda3\envs\jlab2\lib\site-packages\jupyter_dash\jupyter_app.py", line 264, in run
    super_run_server(**kwargs)
  File "C:\Users\spikes\Miniconda3\envs\jlab2\lib\site-packages\dash\dash.py", line 1411, in run_server
    **flask_run_options)
  File "C:\Users\spikes\Miniconda3\envs\jlab2\lib\site-packages\flask\app.py", line 990, in run
    run_simple(host, port, self, **options)
TypeError: run_simple() got an unexpected keyword argument 'dev_tools_props_check'

---------------------------------------------------------------------------
ConnectionRefusedError                    Traceback (most recent call last)
~\Miniconda3\envs\jlab2\lib\site-packages\urllib3\connection.py in _new_conn(self)
    159             conn = connection.create_connection(
--> 160                 (self._dns_host, self.port), self.timeout, **extra_kw
    161             )

~\Miniconda3\envs\jlab2\lib\site-packages\urllib3\util\connection.py in create_connection(address, timeout, source_address, socket_options)
     83     if err is not None:
---> 84         raise err
     85 

~\Miniconda3\envs\jlab2\lib\site-packages\urllib3\util\connection.py in create_connection(address, timeout, source_address, socket_options)
     73                 sock.bind(source_address)
---> 74             sock.connect(sa)
     75             return sock

ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it

During handling of the above exception, another exception occurred:

NewConnectionError                        Traceback (most recent call last)
~\Miniconda3\envs\jlab2\lib\site-packages\urllib3\connectionpool.py in urlopen(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, **response_kw)
    676                 headers=headers,
--> 677                 chunked=chunked,
    678             )

~\Miniconda3\envs\jlab2\lib\site-packages\urllib3\connectionpool.py in _make_request(self, conn, method, url, timeout, chunked, **httplib_request_kw)
    391         else:
--> 392             conn.request(method, url, **httplib_request_kw)
    393 

~\Miniconda3\envs\jlab2\lib\http\client.py in request(self, method, url, body, headers, encode_chunked)
   1251         """Send a complete request to the server."""
-> 1252         self._send_request(method, url, body, headers, encode_chunked)
   1253 

~\Miniconda3\envs\jlab2\lib\http\client.py in _send_request(self, method, url, body, headers, encode_chunked)
   1297             body = _encode(body, 'body')
-> 1298         self.endheaders(body, encode_chunked=encode_chunked)
   1299 

~\Miniconda3\envs\jlab2\lib\http\client.py in endheaders(self, message_body, encode_chunked)
   1246             raise CannotSendHeader()
-> 1247         self._send_output(message_body, encode_chunked=encode_chunked)
   1248 

~\Miniconda3\envs\jlab2\lib\http\client.py in _send_output(self, message_body, encode_chunked)
   1025         del self._buffer[:]
-> 1026         self.send(msg)
   1027 

~\Miniconda3\envs\jlab2\lib\http\client.py in send(self, data)
    965             if self.auto_open:
--> 966                 self.connect()
    967             else:

~\Miniconda3\envs\jlab2\lib\site-packages\urllib3\connection.py in connect(self)
    186     def connect(self):
--> 187         conn = self._new_conn()
    188         self._prepare_conn(conn)

~\Miniconda3\envs\jlab2\lib\site-packages\urllib3\connection.py in _new_conn(self)
    171             raise NewConnectionError(
--> 172                 self, "Failed to establish a new connection: %s" % e
    173             )

NewConnectionError: <urllib3.connection.HTTPConnection object at 0x0000020565163988>: Failed to establish a new connection: [WinError 10061] No connection could be made because the target machine actively refused it

During handling of the above exception, another exception occurred:

MaxRetryError                             Traceback (most recent call last)
~\Miniconda3\envs\jlab2\lib\site-packages\requests\adapters.py in send(self, request, stream, timeout, verify, cert, proxies)
    448                     retries=self.max_retries,
--> 449                     timeout=timeout
    450                 )

~\Miniconda3\envs\jlab2\lib\site-packages\urllib3\connectionpool.py in urlopen(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, **response_kw)
    724             retries = retries.increment(
--> 725                 method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
    726             )

~\Miniconda3\envs\jlab2\lib\site-packages\urllib3\util\retry.py in increment(self, method, url, response, error, _pool, _stacktrace)
    438         if new_retry.is_exhausted():
--> 439             raise MaxRetryError(_pool, url, error or ResponseError(cause))
    440 

MaxRetryError: HTTPConnectionPool(host='127.0.0.1', port=8050): Max retries exceeded with url: /_alive_a6195403-4d44-472b-8ea6-99427edf92c3 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x0000020565163988>: Failed to establish a new connection: [WinError 10061] No connection could be made because the target machine actively refused it'))

During handling of the above exception, another exception occurred:

ConnectionError                           Traceback (most recent call last)
<ipython-input-4-6c821b38cf6f> in <module>
      2 app.layout = html.Div('Minimal')
      3 
----> 4 app.run_server(mode="external", debug=True)

~\Miniconda3\envs\jlab2\lib\site-packages\jupyter_dash\jupyter_app.py in run_server(self, mode, width, height, inline_exceptions, **kwargs)
    292                 )
    293 
--> 294         wait_for_app()
    295 
    296         if mode == 'inline':

~\Miniconda3\envs\jlab2\lib\site-packages\retrying.py in wrapped_f(*args, **kw)
     47             @six.wraps(f)
     48             def wrapped_f(*args, **kw):
---> 49                 return Retrying(*dargs, **dkw).call(f, *args, **kw)
     50 
     51             return wrapped_f

~\Miniconda3\envs\jlab2\lib\site-packages\retrying.py in call(self, fn, *args, **kwargs)
    210                 if not self._wrap_exception and attempt.has_exception:
    211                     # get() on an attempt with an exception should cause it to be raised, but raise just in case
--> 212                     raise attempt.get()
    213                 else:
    214                     raise RetryError(attempt)

~\Miniconda3\envs\jlab2\lib\site-packages\retrying.py in get(self, wrap_exception)
    245                 raise RetryError(self)
    246             else:
--> 247                 six.reraise(self.value[0], self.value[1], self.value[2])
    248         else:
    249             return self.value

~\AppData\Roaming\Python\Python37\site-packages\six.py in reraise(tp, value, tb)
    691             if value.__traceback__ is not tb:
    692                 raise value.with_traceback(tb)
--> 693             raise value
    694         finally:
    695             value = None

~\Miniconda3\envs\jlab2\lib\site-packages\retrying.py in call(self, fn, *args, **kwargs)
    198         while True:
    199             try:
--> 200                 attempt = Attempt(fn(*args, **kwargs), attempt_number, False)
    201             except:
    202                 tb = sys.exc_info()

~\Miniconda3\envs\jlab2\lib\site-packages\jupyter_dash\jupyter_app.py in wait_for_app()
    280         )
    281         def wait_for_app():
--> 282             res = requests.get(alive_url).content.decode()
    283             if res != "Alive":
    284                 url = "http://{host}:{port}".format(

~\Miniconda3\envs\jlab2\lib\site-packages\requests\api.py in get(url, params, **kwargs)
     74 
     75     kwargs.setdefault('allow_redirects', True)
---> 76     return request('get', url, params=params, **kwargs)
     77 
     78 

~\Miniconda3\envs\jlab2\lib\site-packages\requests\api.py in request(method, url, **kwargs)
     59     # cases, and look like a memory leak in others.
     60     with sessions.Session() as session:
---> 61         return session.request(method=method, url=url, **kwargs)
     62 
     63 

~\Miniconda3\envs\jlab2\lib\site-packages\requests\sessions.py in request(self, method, url, params, data, headers, cookies, files, auth, timeout, allow_redirects, proxies, hooks, stream, verify, cert, json)
    528         }
    529         send_kwargs.update(settings)
--> 530         resp = self.send(prep, **send_kwargs)
    531 
    532         return resp

~\Miniconda3\envs\jlab2\lib\site-packages\requests\sessions.py in send(self, request, **kwargs)
    641 
    642         # Send the request
--> 643         r = adapter.send(request, **kwargs)
    644 
    645         # Total elapsed time of the request (approximately)

~\Miniconda3\envs\jlab2\lib\site-packages\requests\adapters.py in send(self, request, stream, timeout, verify, cert, proxies)
    514                 raise SSLError(e, request=request)
    515 
--> 516             raise ConnectionError(e, request=request)
    517 
    518         except ClosedPoolError as e:

ConnectionError: HTTPConnectionPool(host='127.0.0.1', port=8050): Max retries exceeded with url: /_alive_a6195403-4d44-472b-8ea6-99427edf92c3 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x0000020565163988>: Failed to establish a new connection: [WinError 10061] No connection could be made because the target machine actively refused it'))

msbuckas avatar Jun 10 '20 14:06 msbuckas