Недавно я представил введение в программирование на Python на семинаре по геномике. Для урока мы использовали интерфейс ноутбука, и он был очень хорошо принят (спасибо!). Во время обсуждения циклов я попросил студентов преобразовать пример цикла for в цикл while. В процессе многие студенты создавали бесконечные циклы. У некоторых из этих студентов это привело к сбою Firefox. Исправление заключалось в том, чтобы убить сервер ноутбука и браузер. Все студенты использовали виртуальные машины на базе Ubuntu и Firefox в качестве браузера. Если это поможет, я могу получить дополнительную информацию о системах, а также выяснить, смогу ли я воссоздать это поведение на своей копии виртуальной машины.
Будет ли случайно сбой производить вывод, а не тот, который не приводит к сбою браузера?
(у вас должно быть kill kernel в одном меню)
Вероятно, у нас может быть тайм-аут безопасности, который убивает сервер, так как ядро слишком долго занято, или внешний интерфейс получает слишком много входных данных.
Я думаю, что здесь есть две проблемы:
@Carreau не было выхода
@takluyver меню ядра не отвечало. Это могло случиться с петлями, которые печатались, и петлями, которые не печатались.
Можете ли вы привести пример цикла, где он не работает?
13 января 2013 г., 16:11, Дэниел Макдональд ( [email protected] ) написал:
@Carreau https://github.com/Carreau вывода не было
@takluyver https://github.com/takluyver меню ядра не было
отзывчивый. Это могло случиться с петлями, которые печатались, и петлями, которые
не печатались.—
Ответьте на это письмо напрямую или просмотрите его на Gi tHubhttps://github.com/ipython/ipython/issues/2781#issuecomment -12195606.
Наивный/ужасный алгоритм анаграммы, когда слова не являются анаграммами друг друга
from random import shuffle
word1 = list("quietx")
word2 = list("quite")
while word1 != word2:
shuffle(word1)
Я только что проверил, и я могу без проблем прервать его в Firefox и Ubuntu. Можете ли вы надежно воспроизвести его в своей системе?
Я не могу воспроизвести это в своей системе. Я отследю пользователей, у которых возникла проблема, и перезапущу их на их системах. Семинары возобновятся завтра утром — семинар проходит в Европе, а сегодня выходной — так что пройдет немного времени, прежде чем я смогу вернуться к этому.
Я больше не в состоянии проверить это и не смог ответить на
мастерская. Учитывая, что я не могу воспроизвести проблему, как и никто другой,
давайте спишем это на случайность.
Еще раз спасибо за быстрый ответ, и я извиняюсь за то, что потратил время на это
В воскресенье, 13 января 2013 г., в 9:57, Томас Клюйвер, [email protected] , написал:
Я только что проверил, и я могу без проблем прервать его в Firefox.
и Убунту. Можете ли вы надежно воспроизвести его в своей системе?—
Ответьте на это письмо напрямую или просмотрите его на Gi tHubhttps://github.com/ipython/ipython/issues/2781#issuecomment -12196271.
Не беспокойся. Не стесняйтесь снова открывать, если вы найдете способ воспроизвести ошибку.
Я постоянно получаю это в блокноте IPython в Chrome (и я только что проверил его в Firefox, и он «успешен», т.е. он разбился). Я _думаю_, это происходит каждый раз, когда у меня есть бесконечный цикл, который часто печатает. Для меня это проблема, потому что я часто добавляю операторы печати для отладки, и при этом я теряю код, который должен был исправить мою ошибку из-за сбоя.
Вот код, который я использовал, чтобы заставить его падать:
импортировать numpy как np
х = np.массив ([0,1,2,3,4])
это = np.nditer(x,flags=['f_index'])
пока не то.закончено:
распечатать.индекс
такое бывает и у меня...
Сначала браузер перестает отвечать на запросы, а потом я обнаруживаю, что вся система зависает. Я вынужден сделать хард-ресет.
Я использую Ubuntu с рабочим столом xfce/firefox.
Если это будет полезно, я был бы готов поделиться любыми другими деталями, которые могут вам потребоваться, чтобы исправить это ...
@минк
Эта проблема, кажется, все еще существует!
Я могу запустить «прерывание» или «Перезагрузить» из меню ядра, но это вообще не подействовало. значок запуска по-прежнему отображается в виде черного шара.
Даже если я перезагружу компьютер, после того, как я снова нажму на блокнот, он будет зацикливаться там навсегда!
Я использую MacBook с установленным ipython 2.2.0.
У меня также была эта проблема: ноутбук ipython зависал в браузере и не мог восстановиться с помощью ядра прерывания. В дополнение к ошибкам зацикливания это, по-видимому, происходит с любым зависшим процессом, например, если интернет-запрос в функции зависает по сетевым причинам.
Мой вопрос: есть ли способ получить доступ к базовому ядру из командной строки? Я запускаю ноутбук ipython с терминала, и на данный момент мое решение состоит в том, чтобы прерывать работу этого терминала с помощью клавиатуры, что полностью отключает ядро.
У меня тоже есть такая критическая проблема. Кажется, это действительно связано с петлями. Это не позволяет мне запускать длительные симуляции или анализ данных, а это значит: я облажался...
Я не знаю, связано ли это, но я заметил, что, как только он зависает, гиперпоточность, кажется, рушится на один процессор, который все еще работает. Вы можете увидеть это, например, с помощью htop . Сначала мне казалось, что гиперпоточность (которую библиотеки numpy -> BLAS используют на моей машине) была той, что дает сбой, и тогда все это будет работать безумно медленно, но затем я попытался прервать и не повезло, и поэтому я понял, что это просто застряло ядро IPython.
Эта проблема никогда не возникала у меня, когда:
Мои обоснованные предположения таковы:
Когда возникает проблема, я просто перезапускаю ядро из веб-интерфейса и повторяю то, что делал...
РЕДАКТИРОВАТЬ: мне также трудно воспроизвести это, но я заметил, что если я не использую BLAS, например, если я не использую точечный продукт numpy, проблема не появляется, хотя я должен запустить еще несколько тестов чтобы убедиться в этом.
Я также довольно часто сталкиваюсь с этой проблемой, и ее трудно решить - если есть много данных, обработка которых в ядре занимает много времени, может быть довольно сложно убить все и принудительно перезапустить. Определенно не воображаемый баг :)
У меня также есть эта проблема на OSX + Chrome.
@minrk , я думаю, что это стоит открыть снова. У меня недостаточно привилегий, чтобы просто открыть заново, если не создавать новую проблему.
Из интерфейса командной строки кажется, что нажатие кнопки «Стоп» что-то делает, но ноутбук совершенно не отвечает.
[I 15:26:22.224 NotebookApp] Kernel interrupted: edee0497-b340-43fd-be77-1ad67e5170ee
[I 15:26:32.197 NotebookApp] Kernel interrupted: edee0497-b340-43fd-be77-1ad67e5170ee
[I 15:26:42.688 NotebookApp] Saving file at /Untitled.ipynb
[I 15:27:30.993 NotebookApp] Kernel interrupted: edee0497-b340-43fd-be77-1ad67e5170ee
[I 15:27:35.605 NotebookApp] Kernel interrupted: edee0497-b340-43fd-be77-1ad67e5170ee
[I 15:28:43.999 NotebookApp] Saving file at /Untitled.ipynb
[I 15:29:28.038 NotebookApp] Kernel interrupted: edee0497-b340-43fd-be77-1ad67e5170ee
Я думаю, что одному из нас нужно найти простой ноутбук, который воспроизводит эту проблему, по крайней мере, в какой-то системе. В противном случае, скорее всего, это не поправимо.
Я тоже вижу эту проблему.
Я думаю, что одному из нас нужно найти простой ноутбук, который воспроизводит эту проблему, по крайней мере, в какой-то системе.
while True:
print "foo"
Это заставляет Firefox использовать 100% ЦП и не отвечает ни в какой форме. Уничтожение Firefox и процесса IPython — единственный способ вернуть систему.
Айпитон 3.0.0
Фаерфокс 42.0
Linux 3.13.0-24-общий
Я могу воспроизвести с
ипитон 3.2.0
питон 2.7.10
Версия Chrome 46.0.2490.86 (64-разрядная версия)
ОС X 10.10.5
Меня тоже очень сильно раздражает. Из-за этой проблемы мне часто приходится убивать весь сервер ноутбука вместе с хромом. Я могу добраться до точки, когда я нажимаю кнопку прерывания ядра, и она выделяется, как если бы она была нажата, но что-то где-то не получает сообщение об остановке.
Мое первоначальное впечатление, что это проблема с механизмом рендеринга текста в Chrome, но я мало знаю, как это работает.
Другой пример медлительности — это когда относительно большая библиотека matplotlib выходит на передний план после прокрутки до нее. Весь ноутбук становится чрезвычайно дрожащим в течение добрых 4-5 секунд.
Что бы это ни стоило, я использую довольно мощную машину, поэтому особенно странно, что jupyter может поставить всю мою машину на колени.
9/10, это происходит случайно, так что это не так просто, как назвать это ошибкой пользователя.
У меня только что возникла эта проблема (или, по крайней мере, она соответствует описанному выше профилю). Я не мог заставить окно регулярно реагировать, но _я мог_ сделать очень медленную копию всей страницы из буфера обмена, что позволило мне сохранить последние изменения кода.
Не решение проблемы, а потенциальный способ смягчить ее последствия.
У меня была та же проблема сегодня и в прошлом, когда я работал с Linux Mint (18.0) и firefox. Это был очень простой генератор count(), но я возился с __getitem__ и по глупости установил печать на ключе.
В последних версиях наших пакетов реализовано регулирование вывода, что должно смягчить проблемы с большим объемом вывода, замедляющим работу браузера.
Закрытие, поскольку эта проблема не в самом IPython, и если она все еще проблематична и актуальна, ее следует открыть в правильном репозитории. Это позволит держать под контролем количество открытых задач в репозитории IPython.
Не стесняйтесь оставлять комментарии или открывать заново, если это необходимо.
Спасибо.
@Carreau , у вас есть рекомендуемый репозиторий (или он просто не был перенесен туда, где отслеживаются проблемы с ноутбуком ...)?
Это необходимо будет перенести либо на jupyter/notebook, либо на jupyterlab/jupyterlab. Вероятно, второй, если он также влияет на jupyterlab.
Самый полезный комментарий
Это заставляет Firefox использовать 100% ЦП и не отвечает ни в какой форме. Уничтожение Firefox и процесса IPython — единственный способ вернуть систему.
Айпитон 3.0.0
Фаерфокс 42.0
Linux 3.13.0-24-общий