﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	resolution	keywords	cc	parents
5427	Deleting reported media gives server error	ayleph		"On latest master, deleting media with a report on it leads to a server error and a partially deleted media entry.

Steps to reproduce:
1. Update to latest master & run migrations
2. Upload media entry
3. File a report on that media entry
3. Attempt to delete that media entry

Here's the error log.

{{{
Error - <class 'sqlalchemy.exc.IntegrityError'>: (sqlite3.IntegrityError) NOT NULL constraint failed: core__reports.object_id [SQL: u'UPDATE core__reports SET object_id=? WHERE core__reports.id = ?'] [parameters: (None, 1)]
URL: http://pumpdev.goblinrefuge.com/u/machalus/m/42/confirm-delete/
File '/path/to/mediagoblin/lib/python2.7/site-packages/Paste-1.7.5.1-py2.7.egg/paste/exceptions/errormiddleware.py', line 144 in __call__
  app_iter = self.application(environ, sr_checker)
File '/path/to/mediagoblin/mediagoblin/app.py', line 342 in __call__
  return self.call_backend(environ, start_response)
File '/path/to/mediagoblin/lib/python2.7/site-packages/Werkzeug-0.9.6-py2.7.egg/werkzeug/wsgi.py', line 588 in __call__
  return self.app(environ, start_response)
File '/path/to/mediagoblin/mediagoblin/app.py', line 276 in call_backend
  return self._finish_call_backend(request, environ, start_response)
File '/path/to/mediagoblin/mediagoblin/app.py', line 318 in _finish_call_backend
  response = controller(request)
File '/path/to/mediagoblin/mediagoblin/decorators.py', line 281 in wrapper
  return controller(request, media=media, *args, **kwargs)
File '/path/to/mediagoblin/mediagoblin/decorators.py', line 47 in wrapper
  return controller(request, *args, **kwargs)
File '/path/to/mediagoblin/mediagoblin/decorators.py', line 74 in new_controller_func
  return controller(request, *args, **kwargs)
File '/path/to/mediagoblin/mediagoblin/decorators.py', line 135 in wrapper
  return controller(request, *args, **kwargs)
File '/path/to/mediagoblin/mediagoblin/user_pages/views.py', line 338 in media_confirm_delete
  media.delete()
File '/path/to/mediagoblin/mediagoblin/db/models.py', line 735 in delete
  super(MediaEntry, self).delete(**kwargs)
File '/path/to/mediagoblin/mediagoblin/db/base.py', line 132 in delete
  report.save(commit=commit)
File '/path/to/mediagoblin/mediagoblin/db/base.py', line 85 in save
  sess.commit()
File 'build/bdist.linux-x86_64/egg/sqlalchemy/orm/session.py', line 801 in commit
File 'build/bdist.linux-x86_64/egg/sqlalchemy/orm/session.py', line 392 in commit
File 'build/bdist.linux-x86_64/egg/sqlalchemy/orm/session.py', line 372 in _prepare_impl
File 'build/bdist.linux-x86_64/egg/sqlalchemy/orm/session.py', line 2019 in flush
File 'build/bdist.linux-x86_64/egg/sqlalchemy/orm/session.py', line 2137 in _flush
File 'build/bdist.linux-x86_64/egg/sqlalchemy/util/langhelpers.py', line 60 in __exit__
File 'build/bdist.linux-x86_64/egg/sqlalchemy/orm/session.py', line 2101 in _flush
File 'build/bdist.linux-x86_64/egg/sqlalchemy/orm/unitofwork.py', line 373 in execute
File 'build/bdist.linux-x86_64/egg/sqlalchemy/orm/unitofwork.py', line 532 in execute
File 'build/bdist.linux-x86_64/egg/sqlalchemy/orm/persistence.py', line 170 in save_obj
File 'build/bdist.linux-x86_64/egg/sqlalchemy/orm/persistence.py', line 706 in _emit_update_statements
File 'build/bdist.linux-x86_64/egg/sqlalchemy/engine/base.py', line 914 in execute
File 'build/bdist.linux-x86_64/egg/sqlalchemy/sql/elements.py', line 323 in _execute_on_connection
File 'build/bdist.linux-x86_64/egg/sqlalchemy/engine/base.py', line 1010 in _execute_clauseelement
File 'build/bdist.linux-x86_64/egg/sqlalchemy/engine/base.py', line 1146 in _execute_context
File 'build/bdist.linux-x86_64/egg/sqlalchemy/engine/base.py', line 1341 in _handle_dbapi_exception
File 'build/bdist.linux-x86_64/egg/sqlalchemy/util/compat.py', line 200 in raise_from_cause
File 'build/bdist.linux-x86_64/egg/sqlalchemy/engine/base.py', line 1139 in _execute_context
File 'build/bdist.linux-x86_64/egg/sqlalchemy/engine/default.py', line 450 in do_execute
IntegrityError: (sqlite3.IntegrityError) NOT NULL constraint failed: core__reports.object_id [SQL: u'UPDATE core__reports SET object_id=? WHERE core__reports.id = ?'] [parameters: (None, 1)]
}}}"	defect	closed	blocker	0.9.0	programming	fixed	report,delete,error	tsyesika	
