Skip to content

Fix failing MySQL spec due to deadlock condition

Stan Hu requested to merge sh-fix-issue-55161 into master

spec/features/uploads/user_uploads_file_to_note_spec.rb was failing in master because MySQL detected a deadlock when a DELETE and INSERT for the same indexed item occurred within a transaction in the uploads table. Due to InnoDB's next-key locking algorithm (see innodb_locks_unsafe_for_binlog in https://dev.mysql.com/doc/refman/5.5/en/innodb-parameters.html), InnoDB sets an exclusive lock for any of the indexed records it encounters, so the INSERT will fail until the DELETE is committed.

To fix this, we just disable the transaction for MySQL and keep it for PostgreSQL.

Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/55161

Edited by Stan Hu

Merge request reports