Closed findesgh closed 3 years ago
ein:login fails with the jupyter server reporting
ein:login
[W 13:31:53.699 NotebookApp] 403 POST /login (127.0.0.1): XSRF cookie does not match POST argument
This might be similar or identical to #784. Happy to help in any way I can, but I don't know much elisp.
elisp
("EIN system info" :emacs-version "GNU Emacs 26.3 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.30, cairo version 1.15.10) of 2020-01-02" :window-system x :emacs-variant nil :build "--with-libsystemd --with-xaw3d --with-cairo --with-modules --with-xwidgets" :os (:uname "Linux ThinkPad-X260 5.0.0-37-generic #40~18.04.1-Ubuntu SMP Thu Nov 14 12:06:39 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux " :lsb-release "No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.5 LTS Release: 18.04 Codename: bionic ") :jupyter "4.4.0 " :image-types (svg imagemagick png gif tiff jpeg xpm xbm pbm postscript) :image-types-available (svg imagemagick png gif tiff jpeg xpm xbm pbm postscript) :request-backend curl :ein (:version "20210219.319" :source-dir "/home/user/.emacs.d/elpa/ein-20210219.319/") :lib ((:name "websocket" :path "~/.emacs.d/elpa/websocket-20210110.17/websocket.elc" :featurep t :version-var websocket-version :version "1.12") (:name "anaphora" :path "~/.emacs.d/elpa/anaphora-20180618.2200/anaphora.elc" :featurep t :version-var nil :version nil) (:name "request" :path "~/.emacs.d/elpa/request-20210214.37/request.elc" :featurep t :version-var request-version :version "0.3.3") (:name "deferred" :path "~/.emacs.d/elpa/deferred-20170901.1330/deferred.elc" :featurep t :version-var deferred:version :version "0.5.0") (:name "polymode" :path "~/.emacs.d/elpa/polymode-20200606.1106/polymode.elc" :featurep t :version-var nil :version nil) (:name "dash" :path "~/.emacs.d/elpa/dash-20210210.1449/dash.elc" :featurep t :version-var nil :version nil) (:name "with-editor" :path "~/.emacs.d/elpa/with-editor-20210117.2008/with-editor.elc" :featurep t :version-var nil :version nil)))
[debug] request--curl: curl --silent --location --cookie /home/user/.emacs.d/request/curl-cookie-jar --cookie-jar /home/user/.emacs.d/request/curl-cookie-jar --include --write-out \n(:num-redirects %{num_redirects} :url-effective "%{url_effective}") --junk-session-cookies --trace-ascii /tmp/curl-trace --compressed --header User-Agent: Mozilla/5.0 --header X-XSRFTOKEN: 2|0e56c9ce|328bcd75158c92e4c4274dd78a0aff8b|1613737827 http://127.0.0.1:8887/login [debug] request--curl-callback: event finished [debug] request--callback: UNPARSED HTTP/1.1 200 OK Server: TornadoServer/5.1.1 Content-Type: text/html; charset=UTF-8 Date: Fri, 19 Feb 2021 12:31:46 GMT Content-Security-Policy: frame-ancestors 'self'; report-uri /api/security/csp-report Etag: "d58ff2b1788ff10169ecb580d8e38f6287e3b1ec" Content-Length: 6694 Set-Cookie: _xsrf=2|b824e23f|f2ff4d7d39241a7c1dcef928bf2ac625|1613737906; Path=/ <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>Jupyter Notebook</title> <link id="favicon" rel="shortcut icon" type="image/x-icon" href="/static/base/images/favicon.ico?v=97c6417ed01bdc0ae3ef32ae4894fd03"> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <link rel="stylesheet" href="/static/components/jquery-ui/themes/smoothness/jquery-ui.min.css?v=3c2a865c832a1322285c55c6ed99abb2" type="text/css" /> <link rel="stylesheet" href="/static/components/jquery-typeahead/dist/jquery.typeahead.min.css?v=7afb461de36accb1aa133a1710f5bc56" type="text/css" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="/static/style/style.min.css?v=4b4b8cb1e49605137f77fed041f8922b" type="text/css"/> <link rel="stylesheet" href="/static/auth/css/override.css?v=19ec59d2c4f1203c49fe47462028cd9a" type="text/css" /> <link rel="stylesheet" href="/custom/custom.css" type="text/css" /> <script src="/static/components/es6-promise/promise.min.js?v=f004a16cb856e0ff11781d01ec5ca8fe" type="text/javascript" charset="utf-8"></script> <script src="/static/components/preact/index.js?v=00a2fac73c670ce39ac53d26640eb542" type="text/javascript"></script> <script src="/static/components/proptypes/index.js?v=c40890eb04df9811fcc4d47e53a29604" type="text/javascript"></script> <script src="/static/components/preact-compat/index.js?v=e88089d5b9ae96629d5b296428cbaed0" type="text/javascript"></script> <script src="/static/components/requirejs/require.js?v=951f856e81496aaeec2e71a1c2c0d51f" type="text/javascript" charset="utf-8"></script> <script> require.config({ urlArgs: "v=20210218145701", baseUrl: '/static/', paths: { 'auth/js/main': 'auth/js/main.min', custom : '/custom', nbextensions : '/nbextensions', kernelspecs : '/kernelspecs', underscore : 'components/underscore/underscore-min', backbone : 'components/backbone/backbone-min', jed: 'components/jed/jed', jquery: 'components/jquery/jquery.min', json: 'components/requirejs-plugins/src/json', text: 'components/requirejs-text/text', bootstrap: 'components/bootstrap/js/bootstrap.min', bootstraptour: 'components/bootstrap-tour/build/js/bootstrap-tour.min', 'jquery-ui': 'components/jquery-ui/jquery-ui.min', moment: 'components/moment/min/moment-with-locales', codemirror: 'components/codemirror', termjs: 'components/xterm.js/xterm', typeahead: 'components/jquery-typeahead/dist/jquery.typeahead.min', }, map: { // for backward compatibility "*": { "jqueryui": "jquery-ui", } }, shim: { typeahead: { deps: ["jquery"], exports: "typeahead" }, underscore: { exports: '_' }, backbone: { deps: ["underscore", "jquery"], exports: "Backbone" }, bootstrap: { deps: ["jquery"], exports: "bootstrap" }, bootstraptour: { deps: ["bootstrap"], exports: "Tour" }, "jquery-ui": { deps: ["jquery"], exports: "$" } }, waitSeconds: 30, }); require.config({ map: { '*':{ 'contents': 'services/contents', } } }); // error-catching custom.js shim. define("custom", function (require, exports, module) { try { var custom = require('custom/custom'); console.debug('loaded custom.js'); return custom; } catch (e) { console.error("error loading custom.js", e); return {}; } }) document.nbjs_translations = {"domain": "nbjs", "locale_data": {"nbjs": {"": {"domain": "nbjs"}}}}; document.documentElement.lang = navigator.language.toLowerCase(); </script> </head> <body class="" dir="ltr"> <noscript> <div id='noscript'> Jupyter Notebook requires JavaScript.<br> Please enable it to proceed. </div> </noscript> <div id="header"> <div id="header-container" class="container"> <div id="ipython_notebook" class="nav navbar-brand"><a href="/tree" title='dashboard'> <img src='/static/base/images/logo.png?v=641991992878ee24c6f3826e81054a0f' alt='Jupyter Notebook'/> </a></div> </div> <div class="header-bar"></div> </div> <div id="site"> <div id="ipython-main-app" class="container"> <div class="row"> <div class="navbar col-sm-8"> <div class="navbar-inner"> <div class="container"> <div class="center-nav"> <form action="/login?next=%2F" method="post" class="navbar-form pull-left"> <input type="hidden" name="_xsrf" value="2|b824e23f|f2ff4d7d39241a7c1dcef928bf2ac625|1613737906"/> <label for="password_input"><strong>Password:</strong></label> <input type="password" name="password" id="password_input" class="form-control"> <button type="submit" class="btn btn-default" id="login_submit">Log in</button> </form> </div> </div> </div> </div> </div> </div> </div> <script type="text/javascript"> require(["auth/js/main"], function (auth) { auth.login_main(); }); </script> <script type='text/javascript'> function _remove_token_from_url() { if (window.location.search.length <= 1) { return; } var search_parameters = window.location.search.slice(1).split('&'); for (var i = 0; i < search_parameters.length; i++) { if (search_parameters[i].split('=')[0] === 'token') { // remote token from search parameters search_parameters.splice(i, 1); var new_search = ''; if (search_parameters.length) { new_search = '?' + search_parameters.join('&'); } var new_url = window.location.origin + window.location.pathname + new_search + window.location.hash; window.history.replaceState({}, "", new_url); return; } } } _remove_token_from_url(); </script> </body> </html> [debug] request--callback: PARSED (:reprompt t) [debug] request--callback: executing success [debug] request--curl: curl --silent --location --cookie /home/user/.emacs.d/request/curl-cookie-jar --cookie-jar /home/user/.emacs.d/request/curl-cookie-jar --include --write-out \n(:num-redirects %{num_redirects} :url-effective "%{url_effective}") --junk-session-cookies --trace-ascii /tmp/curl-trace --compressed --data-binary @- --header User-Agent: Mozilla/5.0 --header X-XSRFTOKEN: 2|b824e23f|f2ff4d7d39241a7c1dcef928bf2ac625|1613737906 http://127.0.0.1:8887/login [debug] request--callback: executing complete [debug] request--curl-callback: event finished [debug] request--callback: UNPARSED HTTP/1.1 403 Forbidden Server: TornadoServer/5.1.1 Content-Type: text/html Date: Fri, 19 Feb 2021 12:31:53 GMT Content-Security-Policy: frame-ancestors 'self'; report-uri /api/security/csp-report Content-Length: 6165 Set-Cookie: _xsrf=2|8a9969ce|6bfaf506a8f1d88984f3daee46792b37|1613737913; Path=/ <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>Jupyter Notebook</title> <link id="favicon" rel="shortcut icon" type="image/x-icon" href="/static/base/images/favicon.ico?v=97c6417ed01bdc0ae3ef32ae4894fd03"> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <link rel="stylesheet" href="/static/components/jquery-ui/themes/smoothness/jquery-ui.min.css?v=3c2a865c832a1322285c55c6ed99abb2" type="text/css" /> <link rel="stylesheet" href="/static/components/jquery-typeahead/dist/jquery.typeahead.min.css?v=7afb461de36accb1aa133a1710f5bc56" type="text/css" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="/static/style/style.min.css?v=4b4b8cb1e49605137f77fed041f8922b" type="text/css"/> <style type="text/css"> /* disable initial hide */ div#header, div#site { display: block; } </style> <link rel="stylesheet" href="/custom/custom.css" type="text/css" /> <script src="/static/components/es6-promise/promise.min.js?v=f004a16cb856e0ff11781d01ec5ca8fe" type="text/javascript" charset="utf-8"></script> <script src="/static/components/preact/index.js?v=00a2fac73c670ce39ac53d26640eb542" type="text/javascript"></script> <script src="/static/components/proptypes/index.js?v=c40890eb04df9811fcc4d47e53a29604" type="text/javascript"></script> <script src="/static/components/preact-compat/index.js?v=e88089d5b9ae96629d5b296428cbaed0" type="text/javascript"></script> <script src="/static/components/requirejs/require.js?v=951f856e81496aaeec2e71a1c2c0d51f" type="text/javascript" charset="utf-8"></script> <script> require.config({ urlArgs: "v=20210218145701", baseUrl: '/static/', paths: { 'auth/js/main': 'auth/js/main.min', custom : '/custom', nbextensions : '/nbextensions', kernelspecs : '/kernelspecs', underscore : 'components/underscore/underscore-min', backbone : 'components/backbone/backbone-min', jed: 'components/jed/jed', jquery: 'components/jquery/jquery.min', json: 'components/requirejs-plugins/src/json', text: 'components/requirejs-text/text', bootstrap: 'components/bootstrap/js/bootstrap.min', bootstraptour: 'components/bootstrap-tour/build/js/bootstrap-tour.min', 'jquery-ui': 'components/jquery-ui/jquery-ui.min', moment: 'components/moment/min/moment-with-locales', codemirror: 'components/codemirror', termjs: 'components/xterm.js/xterm', typeahead: 'components/jquery-typeahead/dist/jquery.typeahead.min', }, map: { // for backward compatibility "*": { "jqueryui": "jquery-ui", } }, shim: { typeahead: { deps: ["jquery"], exports: "typeahead" }, underscore: { exports: '_' }, backbone: { deps: ["underscore", "jquery"], exports: "Backbone" }, bootstrap: { deps: ["jquery"], exports: "bootstrap" }, bootstraptour: { deps: ["bootstrap"], exports: "Tour" }, "jquery-ui": { deps: ["jquery"], exports: "$" } }, waitSeconds: 30, }); require.config({ map: { '*':{ 'contents': 'services/contents', } } }); // error-catching custom.js shim. define("custom", function (require, exports, module) { try { var custom = require('custom/custom'); console.debug('loaded custom.js'); return custom; } catch (e) { console.error("error loading custom.js", e); return {}; } }) document.nbjs_translations = {"domain": "nbjs", "locale_data": {"nbjs": {"": {"domain": "nbjs"}}}}; document.documentElement.lang = navigator.language.toLowerCase(); </script> </head> <body class="" dir="ltr"> <noscript> <div id='noscript'> Jupyter Notebook requires JavaScript.<br> Please enable it to proceed. </div> </noscript> <div id="header"> <div id="header-container" class="container"> <div id="ipython_notebook" class="nav navbar-brand"><a href="/tree" title='dashboard'> <img src='/static/base/images/logo.png?v=641991992878ee24c6f3826e81054a0f' alt='Jupyter Notebook'/> </a></div> </div> <div class="header-bar"></div> </div> <div id="site"> <div class="error"> <h1>403 : Forbidden</h1> <p>The error was:</p> <div class="traceback-wrapper"> <pre class="traceback">XSRF cookie does not match POST argument</pre> </div> </div> </div> <script type='text/javascript'> require(['jquery'], function($) { // scroll long tracebacks to the bottom var tb = $(".traceback")[0]; tb.scrollTop = tb.scrollHeight; }); </script> <script type='text/javascript'> function _remove_token_from_url() { if (window.location.search.length <= 1) { return; } var search_parameters = window.location.search.slice(1).split('&'); for (var i = 0; i < search_parameters.length; i++) { if (search_parameters[i].split('=')[0] === 'token') { // remote token from search parameters search_parameters.splice(i, 1); var new_search = ''; if (search_parameters.length) { new_search = '?' + search_parameters.join('&'); } var new_url = window.location.origin + window.location.pathname + new_search + window.location.hash; window.history.replaceState({}, "", new_url); return; } } } _remove_token_from_url(); </script> </body> </html> [error] request--callback: peculiar error: 403 [debug] request--callback: executing error [debug] request--curl: curl --silent --location --cookie /home/user/.emacs.d/request/curl-cookie-jar --cookie-jar /home/user/.emacs.d/request/curl-cookie-jar --include --write-out \n(:num-redirects %{num_redirects} :url-effective "%{url_effective}") --junk-session-cookies --trace-ascii /tmp/curl-trace --compressed --data-binary @- --header User-Agent: Mozilla/5.0 --header X-XSRFTOKEN: 2|8a9969ce|6bfaf506a8f1d88984f3daee46792b37|1613737913 http://127.0.0.1:8887/login [debug] request--callback: executing complete [debug] request--curl-callback: event finished [debug] request--callback: UNPARSED HTTP/1.1 403 Forbidden Server: TornadoServer/5.1.1 Content-Type: text/html Date: Fri, 19 Feb 2021 12:31:53 GMT Content-Security-Policy: frame-ancestors 'self'; report-uri /api/security/csp-report Content-Length: 6165 Set-Cookie: _xsrf=2|ba70f7ff|9adb00b1cee8726fbbd3ade508b264d4|1613737913; Path=/ <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>Jupyter Notebook</title> <link id="favicon" rel="shortcut icon" type="image/x-icon" href="/static/base/images/favicon.ico?v=97c6417ed01bdc0ae3ef32ae4894fd03"> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <link rel="stylesheet" href="/static/components/jquery-ui/themes/smoothness/jquery-ui.min.css?v=3c2a865c832a1322285c55c6ed99abb2" type="text/css" /> <link rel="stylesheet" href="/static/components/jquery-typeahead/dist/jquery.typeahead.min.css?v=7afb461de36accb1aa133a1710f5bc56" type="text/css" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="/static/style/style.min.css?v=4b4b8cb1e49605137f77fed041f8922b" type="text/css"/> <style type="text/css"> /* disable initial hide */ div#header, div#site { display: block; } </style> <link rel="stylesheet" href="/custom/custom.css" type="text/css" /> <script src="/static/components/es6-promise/promise.min.js?v=f004a16cb856e0ff11781d01ec5ca8fe" type="text/javascript" charset="utf-8"></script> <script src="/static/components/preact/index.js?v=00a2fac73c670ce39ac53d26640eb542" type="text/javascript"></script> <script src="/static/components/proptypes/index.js?v=c40890eb04df9811fcc4d47e53a29604" type="text/javascript"></script> <script src="/static/components/preact-compat/index.js?v=e88089d5b9ae96629d5b296428cbaed0" type="text/javascript"></script> <script src="/static/components/requirejs/require.js?v=951f856e81496aaeec2e71a1c2c0d51f" type="text/javascript" charset="utf-8"></script> <script> require.config({ urlArgs: "v=20210218145701", baseUrl: '/static/', paths: { 'auth/js/main': 'auth/js/main.min', custom : '/custom', nbextensions : '/nbextensions', kernelspecs : '/kernelspecs', underscore : 'components/underscore/underscore-min', backbone : 'components/backbone/backbone-min', jed: 'components/jed/jed', jquery: 'components/jquery/jquery.min', json: 'components/requirejs-plugins/src/json', text: 'components/requirejs-text/text', bootstrap: 'components/bootstrap/js/bootstrap.min', bootstraptour: 'components/bootstrap-tour/build/js/bootstrap-tour.min', 'jquery-ui': 'components/jquery-ui/jquery-ui.min', moment: 'components/moment/min/moment-with-locales', codemirror: 'components/codemirror', termjs: 'components/xterm.js/xterm', typeahead: 'components/jquery-typeahead/dist/jquery.typeahead.min', }, map: { // for backward compatibility "*": { "jqueryui": "jquery-ui", } }, shim: { typeahead: { deps: ["jquery"], exports: "typeahead" }, underscore: { exports: '_' }, backbone: { deps: ["underscore", "jquery"], exports: "Backbone" }, bootstrap: { deps: ["jquery"], exports: "bootstrap" }, bootstraptour: { deps: ["bootstrap"], exports: "Tour" }, "jquery-ui": { deps: ["jquery"], exports: "$" } }, waitSeconds: 30, }); require.config({ map: { '*':{ 'contents': 'services/contents', } } }); // error-catching custom.js shim. define("custom", function (require, exports, module) { try { var custom = require('custom/custom'); console.debug('loaded custom.js'); return custom; } catch (e) { console.error("error loading custom.js", e); return {}; } }) document.nbjs_translations = {"domain": "nbjs", "locale_data": {"nbjs": {"": {"domain": "nbjs"}}}}; document.documentElement.lang = navigator.language.toLowerCase(); </script> </head> <body class="" dir="ltr"> <noscript> <div id='noscript'> Jupyter Notebook requires JavaScript.<br> Please enable it to proceed. </div> </noscript> <div id="header"> <div id="header-container" class="container"> <div id="ipython_notebook" class="nav navbar-brand"><a href="/tree" title='dashboard'> <img src='/static/base/images/logo.png?v=641991992878ee24c6f3826e81054a0f' alt='Jupyter Notebook'/> </a></div> </div> <div class="header-bar"></div> </div> <div id="site"> <div class="error"> <h1>403 : Forbidden</h1> <p>The error was:</p> <div class="traceback-wrapper"> <pre class="traceback">XSRF cookie does not match POST argument</pre> </div> </div> </div> <script type='text/javascript'> require(['jquery'], function($) { // scroll long tracebacks to the bottom var tb = $(".traceback")[0]; tb.scrollTop = tb.scrollHeight; }); </script> <script type='text/javascript'> function _remove_token_from_url() { if (window.location.search.length <= 1) { return; } var search_parameters = window.location.search.slice(1).split('&'); for (var i = 0; i < search_parameters.length; i++) { if (search_parameters[i].split('=')[0] === 'token') { // remote token from search parameters search_parameters.splice(i, 1); var new_search = ''; if (search_parameters.length) { new_search = '?' + search_parameters.join('&'); } var new_url = window.location.origin + window.location.pathname + new_search + window.location.hash; window.history.replaceState({}, "", new_url); return; } } } _remove_token_from_url(); </script> </body> </html> [error] request--callback: peculiar error: 403 [debug] request--callback: executing error [debug] request--callback: executing complete
13:31:46:513: [debug] Login attempt #-1 in response to nil from http://127.0.0.1:8887. @#<buffer *scratch*> 13:31:53:318: [debug] Login attempt #0 in response to 200 from http://127.0.0.1:8887. @#<buffer *scratch*> 13:31:53:323: [debug] ein:notebooklist-login--complete STATUS: 200 DATA: (:reprompt t) @#<buffer *scratch*> 13:31:53:447: [debug] Login attempt #1 in response to 403 from http://127.0.0.1:8887. @#<buffer *scratch*> 13:31:53:452: [debug] ein:notebooklist-login--complete STATUS: 403 DATA: nil @#<buffer *scratch*> 13:31:53:744: [error] Login to http://127.0.0.1:8887 failed, error-thrown (error http 403), raw-header HTTP/1.1 403 Forbidden Server: TornadoServer/5.1.1 Content-Type: text/html Date: Fri, 19 Feb 2021 12:31:53 GMT Content-Security-Policy: frame-ancestors 'self'; report-uri /api/security/csp-report Content-Length: 6165 Set-Cookie: _xsrf=2|ba70f7ff|9adb00b1cee8726fbbd3ade508b264d4|1613737913; Path=/ @#<buffer *scratch*> 13:31:53:755: [debug] ein:notebooklist-login--complete STATUS: 403 DATA: nil @#<buffer *scratch*> 13:32:00:957: [warn] ein:dev-packages: Don’t call me! @#<buffer *temp*>
Sorry about this.
Please try it again after redownloading from melpa (or github).
Works again. Thank you very much for the quick fix!
Problem description
ein:login
fails with the jupyter server reportingThis might be similar or identical to #784. Happy to help in any way I can, but I don't know much
elisp
.System info:
Logs:
request-log:
ein:log-all: