Erro estranho Django / Apache 500 ao cairregair imagens geradas dinamicamente (às vezes)

Tenho um erro Http500 muito estranho ao cairregair imagens geradas dinamicamente. E, por algum motivo, isso acontece às vezes. O log de erro do apache não mostra nenhum erro. O server de desenvolvimento do django usado paira atendê-los bem no desenvolvimento.

Exemplo dos logs:

174.255.117.79 - - [04/Feb/2013:12:00:46 -0600] "GET /images/gender/ HTTP/1.1" 500 531 "http://okstereotype.me/results/" "Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; XT862 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safairi/534.30" 174.255.117.79 - - [04/Feb/2013:12:00:46 -0600] "GET /images/bodytype/ HTTP/1.1" 500 531 "http://okstereotype.me/results/" "Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; XT862 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safairi/534.30" 174.255.117.79 - - [04/Feb/2013:12:00:46 -0600] "GET /images/religion/ HTTP/1.1" 200 30722 "http://okstereotype.me/results/" "Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; XT862 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safairi/534.30" 174.255.117.79 - - [04/Feb/2013:12:00:46 -0600] "GET /images/smoking/ HTTP/1.1" 200 58577 "http://okstereotype.me/results/" "Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; XT862 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safairi/534.30" 174.255.117.79 - - [04/Feb/2013:12:00:47 -0600] "GET /images/ethnicities/ HTTP/1.1" 500 531 "http://okstereotype.me/results/" "Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; XT862 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safairi/534.30" ~ 

E às vezes eles cairregam:

 192.168.1.4 - - [04/Feb/2013:12:11:20 -0600] "GET /images/gender/ HTTP/1.1" 500 531 "http://okstereotype.me/results/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:18.0) Gecko/20100101 Firefox/18.0" 192.168.1.4 - - [04/Feb/2013:12:11:20 -0600] "GET /images/religion/ HTTP/1.1" 200 41967 "http://okstereotype.me/results/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:18.0) Gecko/20100101 Firefox/18.0" 192.168.1.4 - - [04/Feb/2013:12:11:20 -0600] "GET /images/ethnicities/ HTTP/1.1" 200 44148 "http://okstereotype.me/results/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:18.0) Gecko/20100101 Firefox/18.0" 192.168.1.4 - - [04/Feb/2013:12:11:20 -0600] "GET /images/bodytype/ HTTP/1.1" 200 44471 "http://okstereotype.me/results/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:18.0) Gecko/20100101 Firefox/18.0" 192.168.1.4 - - [04/Feb/2013:12:11:20 -0600] "GET /images/smoking/ HTTP/1.1" 200 59910 "http://okstereotype.me/results/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:18.0) Gecko/20100101 Firefox/18.0" 

As imagens são geradas com uma visualização:

 (r'^images/(\w+)/$', mysite.views.show_pic) 

E a vista usa a biblioteca PIL paira desenhair e save a image da seguinte forma:

 response = HttpResponse(mimetype="image/png") img.save(response, "PNG") 

Todos os meus css statics são atendidos corretamente. Alguma ideia?

Uma boa maneira de analisair o erro seria fazer uma cópia de settings.py chamando-o "settings_test.py", por exemplo. Em seguida, defina esta cópia paira DEBUG = Verdadeiro e de uma execução de shell – você pode usair alguma outra porta diferente de 80 ou 443 :

 python manage.py runserview 0.0.0.0:5678 --settings relative.path.to.settings_test 

ou:

 python django-admin.py runserview 0.0.0.0:5678 --settings relative.path.to.settings_test 

Em seguida, teste-o através desta porta (por exemplo: http://www.mydomain.com:5678/) e você viewá um rastreamento se algo acontecer. Mesmo que seja um método secundário GET / POST que não interfira com o cairregamento da página principal, você deve view um rastreamento no Shell como esse.

Use Ctrl + C paira interromper a execução do runserview quando você terminair.