#26738: Window resize crashes runserver --noreload with pdb on linux
-------------------------+-------------------------------------------------
     Reporter:           |      Owner:  nobody
  dandavison             |
         Type:           |     Status:  new
  Uncategorized          |
    Component:  HTTP     |    Version:  master
  handling               |
     Severity:  Normal   |   Keywords:  runserver pdb noreload resize linux
 Triage Stage:           |  Has patch:  0
  Unreviewed             |
Easy pickings:  0        |      UI/UX:  0
-------------------------+-------------------------------------------------
 Resizing the terminal window while pdb is active in an HTTP handler thread
 using `--noreload` on linux causes the kernel to raise an error condition
 that crashes django (true for current HEAD `8f50ff5b` and e.g. 1.6). To
 reproduce this:

 1. Put a `pdb.set_trace()` call in a view function.
 2. On linux, start the server with `--noreload`.
 3. Send a request to the URL. The `pdb` prompt should now be in effect in
 the terminal.
 4. Resize the terminal window. This will cause django to crash with
 `select.error: (4, 'Interrupted system call')` as in the traceback below.

 The bug only affects `--noreload`. It does not occur with `--noreload
 --nothreading`.


 {{{
 (Pdb) Traceback (most recent call last):
   File "exampledev/manage.py", line 22, in <module>
     execute_from_command_line(sys.argv)
   File "/vagrant/django-
 examples/django/django/core/management/__init__.py", line 367, in
 execute_from_command_line
     utility.execute()
   File "/vagrant/django-
 examples/django/django/core/management/__init__.py", line 359, in execute
     self.fetch_command(subcommand).run_from_argv(self.argv)
   File "/vagrant/django-examples/django/django/core/management/base.py",
 line 305, in run_from_argv
     self.execute(*args, **cmd_options)
   File "/vagrant/django-
 examples/django/django/core/management/commands/runserver.py", line 58, in
 execute
     super(Command, self).execute(*args, **options)
   File "/vagrant/django-examples/django/django/core/management/base.py",
 line 356, in execute
     output = self.handle(*args, **options)
   File "/vagrant/django-
 examples/django/django/core/management/commands/runserver.py", line 97, in
 handle
     self.run(**options)
   File "/vagrant/django-
 examples/django/django/core/management/commands/runserver.py", line 108,
 in run
     self.inner_run(None, **options)
   File "/vagrant/django-
 examples/django/django/core/management/commands/runserver.py", line 144,
 in inner_run
     ipv6=self.use_ipv6, threading=threading)
   File "/vagrant/django-examples/django/django/core/servers/basehttp.py",
 line 193, in run
     httpd.serve_forever()
   File "/usr/lib/python2.7/SocketServer.py", line 225, in serve_forever
     r, w, e = select.select([self], [], [], poll_interval)
 select.error: (4, 'Interrupted system call')
 }}}

--
Ticket URL: <https://code.djangoproject.com/ticket/26738>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-updates+unsubscr...@googlegroups.com.
To post to this group, send email to django-updates@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/053.4d1d10a13306f4c0e52c9c65be3ddd06%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to