I have lost one day with struggling with django sessions and it seems that I am not really able to resolve it without coding my own sessions middleware or using some locking. The problem is, sessions are not stored even if the saving is triggered manually. It happens now and then, because of race condition which occurs when multiple simultaneous AJAX requests are sent from the client side. I'm using db backend. The thing is, everything is ok when calling only one start() dajaxice call from the javascript side.
So the question, why session is not stored sometimes? Should I lock the segment, where session is being stored? I double checked session_key is still the same. Should not be this resolved in the session middleware module? Settings: SESSION_SAVE_EVERY_REQUEST = True def print_session_keys(request, tmp): session_key = request.session.session_key session = Session.objects.get(session_key=session_key) a = session.get_decoded() print tmp+str(a.keys()) @dajaxice_registerdef start(request): dajax = Dajax() searchHash = os.urandom(16).encode('hex') data = 1 print_session_keys(request, 'Before: - hash: '+searchHash+' ') request.session.set_expiry(0) request.session[searchHash] = data request.session.modified = True request.session.save() print_session_keys(request, 'After: - hash: '+searchHash+' ') *LOG:* 1 or 2 requestes of 3, are stored fine: Before: - hash: 05f22e8e828a0e6145519e0bb0778357 [u'b0d0d5e4ebe846c4e3ffa66bfbd2e7e3', u'usermode', u'_session_expiry'] After: - hash: 05f22e8e828a0e6145519e0bb0778357 [u'09cf89e0cbe5fb6a179e1f658d452c6b', u'05f22e8e828a0e6145519e0bb0778357', u'usermode', u'b0d0d5e4ebe846c4e3ffa66bfbd2e7e3', u'_session_expiry'] BUT: Before: - hash: 071e79041aba16a82a32fe4a77c3b4e0 [u'b0d0d5e4ebe846c4e3ffa66bfbd2e7e3', u'usermode', u'_session_expiry'] After: - hash: 071e79041aba16a82a32fe4a77c3b4e0 [u'09cf89e0cbe5fb6a179e1f658d452c6b', u'05f22e8e828a0e6145519e0bb0778357', u'usermode', u'b0d0d5e4ebe846c4e3ffa66bfbd2e7e3', u'_session_expiry'] -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at http://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/55f6db0a-340a-4f08-b192-e8d95ffdb4b6%40googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.