1. 22 Eyl, 2017 1 kayıt (commit)
    • Daniel Tao's avatar
      Refs #28593 -- Made URLResolver._populate() more resilient to signal interrupts. · 6f7279c4
      Daniel Tao yazdı
      _populate() sets the populating attribute to prevent infinite recursion in
      case a urlconf includes itself. The flag is a threadlocal to avoid a race
      condition [1] where one thread sets the flag and another checks it, then
      proceeds to access data that's supposed to be populated (e.g. _reverse_dict)
      but isn't yet.
      
      The potential still exists for a thread to set the threadlocal, then be
      interrupted by a signal such as SIGALRM and raise before resetting the
      threadlocal flag. In this scenario, subsequent calls to _populate() in the
      same thread will short-circuit erroneously.
      
      The bulk of the method was already wrapped in a try/finally in df41b5a0, but
      since a signal interrupt can occur at any line executed by the interpreter,
      this moves up the try to ensure threadlocal gets reset.
      
      [1]: https://groups.google.com/d/msg/django-developers/D_bIeinKHjE/4NmVQUJqAgAJ
      6f7279c4
  2. 21 Eyl, 2017 6 kayıt (commit)
  3. 20 Eyl, 2017 5 kayıt (commit)
  4. 19 Eyl, 2017 4 kayıt (commit)
  5. 18 Eyl, 2017 8 kayıt (commit)
  6. 17 Eyl, 2017 1 kayıt (commit)
  7. 16 Eyl, 2017 3 kayıt (commit)
  8. 15 Eyl, 2017 3 kayıt (commit)
  9. 14 Eyl, 2017 3 kayıt (commit)
  10. 13 Eyl, 2017 3 kayıt (commit)
  11. 12 Eyl, 2017 3 kayıt (commit)