Skip to content

Race Condition Problems #1

Closed
Closed
@scoopex

Description

@scoopex

It seems that this library does to protect the handled models with a reliable behavior.

Our environment:

$ grep django  requirements.txt 
django==3.1.1
django-admin==2.0.1
django-extensions==3.0.8
django-colorfield==0.3.2
django-admin-thumbnails==0.2.5
django-material-admin==1.7.8
django-private-storage==2.2.2
django-storages==1.9.1
django-rq==2.3.2
django-auth-adfs==1.7.0
django-admin-edit-lock==0.3.0
django-stubs==1.8.0

Envrionment:

  • Single Worker Pod
  • PostgreSQL Database

Settings:

ADMIN_EDIT_LOCK_DURATION = 15
ADMIN_EDIT_LOCK_MAX_DURATION = 900

The model class:

class BaseAdmin(AdminEditLockMixin, admin.ModelAdmin):
....
    @property
    def id(self):
        # the django-admin-edit-lock depends on models having an id attribute
        return self.name
....

Our problem:

  1. Open two idendepended browser windows with two different users
  2. Open the edit view of the model in both windows with a delay of ~1 second -> both windows show the edit view
  3. Make a change in the second window an press save -> Change can be performed
  4. Make a change in the first window an press save -> Change can be performed

This happens not always, but in 50% of the cases.

Did we miss something important or is this really a bug?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions