[MXS-870] Assertion or Buffer Overflow Created: 2016-09-16 Updated: 2016-09-20 Resolved: 2016-09-20 |
|
| Status: | Closed |
| Project: | MariaDB MaxScale |
| Component/s: | mariadbbackend, readwritesplit |
| Affects Version/s: | 2.0.0 |
| Fix Version/s: | 2.0.1 |
| Type: | Bug | Priority: | Critical |
| Reporter: | Kurt Pastore (Inactive) | Assignee: | markus makela |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Environment: |
CentOS Linux release 7.2.1511 (Core)
MariaDB Corporation MaxScale beta-2.0.0 Fri Sep 16 16:37:48 2016 |
||
| Description |
|
Sample from the error log and experienced a high cpu load during the event. 2016-09-16 14:07:57 error : debug assert /home/vagrant/workspace/server/core/buffer.c:394 |
| Comments |
| Comment by markus makela [ 2016-09-17 ] | ||||
|
File and line locations in the source code:
| ||||
| Comment by markus makela [ 2016-09-17 ] | ||||
|
The code in question uses an older method of splitting data buffers. The gwbuf_clone_portion function has the following debug assertion: ss_dassert(start_offset + length <= GWBUF_LENGTH(buf)); This assumes that the cloned buffer is contiguous but it is perfectly possible that it isn't. Presumably this is more likely to happen under higher load. The gwbuf_split function can handle this situation and should be used in the code in question. |