Closed Bug 1159295 Opened 9 years ago Closed 9 years ago

500 error when deleting a specification

Categories

(developer.mozilla.org Graveyard :: BrowserCompat, defect)

All
Other
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: jwhitlock, Unassigned)

References

Details

(Whiteboard: [type:bug][bc:infra])

Attachments

(1 file)

What did you do?
================
1. Modify docs/doc_cases.json to not skip "specification-delete"
2. run `make test-integration`


What happened?
==============
A 500 Server Error is returned. The specific error is that the changeset is closed:

    AssertionError: Changeset is closed

What should have happened?
==========================
The specification (and probably related sections) should be deleted without error.

Is there anything else we should know?
======================================
The issue is probably cascading deletions - a related section was also deleted and auto-closed the auto-opened changeset.  More work is needed to ensure that deletions cascade properly (or are forbidden if they would require a cascading delete) and work with changesets.
Traceback from deleting a specification in the "specification-delete" test
Blocks: 996570
Status: UNCONFIRMED → NEW
Ever confirmed: true
Component: General → BrowserCompat
Confirmed that this is an issue with cascading deletes.  I'll make it possible with the ``delete-resource`` permissions, with these cascades:

* Delete Maturity -> Delete Specifications
* Delete Specification -> Delete Sections
* Delete Section -> No cascade
* Delete Browser -> Delete Versions
* Delete Version -> Delete Supports
* Delete Support -> No cascade
* Delete Feature -> Delete child Features, Supports

Deleting in general will be a risky operation, and we'll need a UI like the Django admin UI to display what will be deleted and confirm it.  This bug fix will just make it possible to do outside of an explicit changeset.
Commits pushed to master at https://github.com/mdn/browsercompat

https://github.com/mdn/browsercompat/commit/cee74107e68eaa3cfc262d6064771353d9b3dba2
bug 1159295 - Allow quick cascading deletes

Move auto-changeset closing into the HistoryChangesetRequestMiddleware,
which is now HistoryChangesetMiddleware. This allows DELETE requests
against instances that will result in cascading deletes. The
view_feature serializer can also use the auto-changset behaviour, so the
manual changeset manipulation in the save method is removed.

https://github.com/mdn/browsercompat/commit/643abcf547773e71f52c35b7d3a55e3566cbd047
fix bug 1159295 - Enable specification-delete test

Test moved to end so that hard-coded changeset IDs will still be valid.

https://github.com/mdn/browsercompat/commit/c1f716a8ae57756b1ad2ae8a8e07a308376e4c07
Merge pull request #67 from mdn/delete_spec_1159295

bug 1159295 - Move auto-closing change sets to middleware
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Summary: [Compat Data] 500 error when deleting a specification → 500 error when deleting a specification
Whiteboard: [specification][type:bug] → [type:bug][bc:infra]
Product: developer.mozilla.org → developer.mozilla.org Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: