﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
27301	Better handling of errors that are not pickleable when testing in parallel	Adam Wróbel	Tim Graham <timograham@…>	"When running test in parallel the tests results are communicated between processes in serialized form. Unfortunately not all test errors are serializable using `pickle` module.

Django currently detects errors that fail `pickle.dumps`, reports them to `STDERR` and raises exception that interrupts test runner.

This ticket has two parts:

The first is a minor enhancement. In addition to detecting `pickle.dumps` errors also detect `pickle.loads` errors. I've implemented it in a [https://github.com/django/django/pull/7325 Github PR #7325].

The second is a proposal to instead of raising pickling exception that interrupts tests and displays useless `multiprocessing.pool.RemoteTraceback` wrap the error type and message in some kind of `UnpickleableError` container and pass it to parent process with the usual `addError`/`addFailure`/`addSubTest`/`addExpectedFailure` methods. This will let the test suite continue, display final error statistics and perform teardown. This is especially important for `addExpectedFailure` which currently stops the entire suite if the expected error is unpickleable (my actual use case)."	Cleanup/optimization	closed	Testing framework	1.10	Normal	fixed	testrunner parallel pickle	Aymeric Augustin chris.jerdonek@…	Ready for checkin	1	0	0	0	0	0
