On a freshly installed 'helloworld' project, following the documentation to setup Userena, I am experiencing a very odd situation where the django 'runserver' process completely hangs after submitting from the /accounts/signup/ form. In PDB, I can catch the submission in the 'signup()' view just after "if request.method == 'POST':" ... PDB then hangs forever:
$ python helloworld/manage.py runserver
0 errors found
Django version 1.3, using settings 'helloworld.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[30/Jul/2011 17:32:17] "GET /accounts/signup/ HTTP/1.1" 200 1375
-> form = signup_form(request.POST, request.FILES)
... hangs forever ....
After this, attempting to making any further requests to localhost:8000/ all just hang as well.
In PDB, if I 'step' through the code... I can see where what appears to be a circular reference loop starts. In the above (in userena), signup_form is a SignupForm, which subclasses django.forms.Form() .... when stepping through PDB I can see that a deep copy is initiated in a line like
self.fields = deepcopy(self.base_fields)
But this just seems to run up and down the python standard library continually doing a 'deepcopy'... and never ends. I held down 'enter' (step mode) for a good minute with no end in site. Any idea what might be going on here?
This turned out to be related to the default mail facility in Django, which defaults to SMTP. Therefore, if 'EMAIL_BACKEND' is not defined properly, users will experience this issue... which took a long time to narrow down.
Adding doc about EMAIL_BACKEND, RE Issue #74
Merged in commit 3182d5f.