--
Ticket URL: <https://code.djangoproject.com/ticket/21773>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
* needs_better_patch: => 0
* needs_tests: => 0
* needs_docs: => 0
Comment:
One additional note, after ctrl-c, some thread of the server probably
keeps running for some time because later I get a message about keyboard
interrupt in the console. So that is probably the reason the port is not
immediately available in such situation.
--
Ticket URL: <https://code.djangoproject.com/ticket/21773#comment:1>
* stage: Unreviewed => Accepted
Comment:
I do occasionally see this behaviour. I have no idea what causes it. The
thread continuing to run in the background is very annoying and normally I
have to resort to `kill`
--
Ticket URL: <https://code.djangoproject.com/ticket/21773#comment:2>
Comment (by aaugustin):
Yes, I've seen that too. Last time I hit this problem, I had an infinite
loop in a view.
--
Ticket URL: <https://code.djangoproject.com/ticket/21773#comment:3>
Comment (by claudep):
It would be useful to know on which platform(s) and which exact Django
version that behavior arises, as the reload method might be different.
--
Ticket URL: <https://code.djangoproject.com/ticket/21773#comment:4>
Comment (by clime):
Replying to [comment:4 claudep]:
> It would be useful to know on which platform(s) and which exact Django
version that behavior arises, as the reload method might be different.
The first version of Django I have used was 1.4 and I think I have been
hitting this issue since beginning. I am totally sure that it is in 1.5
and 1.6.
The platform is linux/fedora. By the way I have just encountered this
issue again. This exception was raised:
{{{
Environment:
Request Method: GET
Request URL: http://127.0.0.1:8008/messagethreads/
Django Version: 1.6.1
Python Version: 2.7.3
Installed Applications:
('django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'south',
'grappelli',
'django.contrib.admin',
'django.contrib.admindocs',
'endless_pagination',
'debug_toolbar',
'djangoratings',
'imagekit',
'watson',
'web')
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'middleware.UserMemberMiddleware',
'middleware.ProfilerMiddleware',
'middleware.VaryOnAcceptMiddleware',
'debug_toolbar.middleware.DebugToolbarMiddleware',
'watson.middleware.SearchContextMiddleware')
Traceback:
File "/srv/www/envs/cb/lib/python2.7/site-
packages/django/core/handlers/base.py" in get_response
107. response = middleware_method(request, callback,
callback_args, callback_kwargs)
File "/srv/www/envs/cb/lib/python2.7/site-
packages/debug_toolbar/middleware.py" in process_view
73. response = panel.process_view(request, view_func,
view_args, view_kwargs)
File "/srv/www/envs/cb/lib/python2.7/site-
packages/debug_toolbar/panels/profiling.py" in process_view
133. return self.profiler.runcall(view_func, *args,
**view_kwargs)
File "/usr/lib64/python2.7/cProfile.py" in runcall
149. return func(*args, **kw)
File "/srv/www/envs/cb/lib/python2.7/site-
packages/django/contrib/auth/decorators.py" in _wrapped_view
22. return view_func(request, *args, **kwargs)
File "/srv/www/cb/web/views.py" in messagethread_list
1176. 'model_tag': MessageThread.tag,
Exception Type: NameError at /messagethreads/
Exception Value: global name 'model_tag' is not defined
}}}
I fixed it and then tried to refresh the page repeatedly. Nevertheless, I
was still getting the same exeption. In the end, I lost patience and
decided to restart the server (the usual scenario). After killing it by
ctrl-c, I tried to restart it:
{{{
^C(cb)clime@den /srv/www/cb ./manage.py runserver 127.0.0.1:8008
Validating models...
0 errors found
January 27, 2014 - 18:49:35
Django version 1.6.1, using settings 'cb.settings'
Starting development server at http://127.0.0.1:8008/
Quit the server with CONTROL-C.
Error: That port is already in use.
(cb)clime@den /srv/www/cb $ Exception KeyboardInterrupt in <module
'threading' from '/usr/lib64/python2.7/threading.pyc'> ignored
}}}
The KeyboardInterrupt exception appeared around 10 secs later. Then I
could finally start the server again.
--
Ticket URL: <https://code.djangoproject.com/ticket/21773#comment:5>
* component: Uncategorized => Core (Management commands)
--
Ticket URL: <https://code.djangoproject.com/ticket/21773#comment:6>
Comment (by mardini):
It's probably not a bug in Django, it might be caused by ThreadingMixIn of
Python's SocketServer module, which Django relies on. I didn't investigate
it thoroughly though, so I'm not sure.
--
Ticket URL: <https://code.djangoproject.com/ticket/21773#comment:7>
* status: new => assigned
* owner: nobody => mardini
--
Ticket URL: <https://code.djangoproject.com/ticket/21773#comment:8>
* version: 1.6 => master
--
Ticket URL: <https://code.djangoproject.com/ticket/21773#comment:9>
Comment (by mardini):
PR: https://github.com/django/django/pull/2690
Thanks.
--
Ticket URL: <https://code.djangoproject.com/ticket/21773#comment:10>
* has_patch: 0 => 1
--
Ticket URL: <https://code.djangoproject.com/ticket/21773#comment:11>
* status: assigned => closed
* resolution: => fixed
Comment:
In [changeset:"4f72e5f03ae803fd9faa1445245c1050ca004526"]:
{{{
#!CommitTicketReference repository=""
revision="4f72e5f03ae803fd9faa1445245c1050ca004526"
Fixed #21773 -- made daemon threads default in the development server.
Thanks clime for the report.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/21773#comment:12>