[MDEV-4495] CONNECT: Assertion failure in Diagnostics_area::set_error_status or unspecified error instead of a duplicate key error Created: 2013-05-07 Updated: 2013-06-12 Resolved: 2013-06-12 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | None |
| Affects Version/s: | 10.0.2 |
| Fix Version/s: | 10.0.4 |
| Type: | Bug | Priority: | Major |
| Reporter: | Elena Stepanova | Assignee: | Alexander Barkov |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | connect-engine | ||
| Issue Links: |
|
||||
| Description |
|
An attempt to insert a duplicate value into a unique index causes assertion failure on a debug build or unspecified error on a release build. Release build:
Debug build:
Test case:
bzr version-info
|
| Comments |
| Comment by Sergei Golubchik [ 2013-06-12 ] |
|
The crash happens because the server doesn't expect external_lock(F_UNLCK) to fail. It's not quite clear where we want to allow it to fail, the semantics of that failure is confusing. Was the table unlocked, despite the error? Were the changes rolled back? If we won't allow that, we'd need some other way for an engine to support deferred constraint checking (currently CONNECT is doing it in external_lock)). |
| Comment by Olivier Bertrand [ 2013-06-12 ] |
|
A proper error message is now generated. However, in debug mode, it is sent as a warning to avoid MariaDB stopping the server. |