[MXS-335] Crash in readwritesplit Created: 2015-08-26 Updated: 2015-09-17 Resolved: 2015-08-31 |
|
| Status: | Closed |
| Project: | MariaDB MaxScale |
| Component/s: | mariadbbackend, readwritesplit |
| Affects Version/s: | 1.2.0 |
| Fix Version/s: | 1.2.1 |
| Type: | Bug | Priority: | Blocker |
| Reporter: | markus makela | Assignee: | Johan Wikman |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Environment: |
Binaries: |
||
| Description |
|
which corresponds to:
Crash happens when the GWBUF is accessed on line 2754 of readwritesplit.c. |
| Comments |
| Comment by Dipti Joshi (Inactive) [ 2015-08-27 ] |
|
johan.wikman This is a new blocker issue. |
| Comment by Johan Wikman [ 2015-08-27 ] |
|
Assuming the crash occurred because writebuf was NULL at line 2754 in function clientReply in readwritesplit.c, it must have been NULL when passed in to clientReply. It may be set to NULL in clientReply, but then the crash line is not executed. In the caller - gw_read_backend_event in mysql_backend.c - the buffer is called read_buf and it can be NULL, if process_response_data on line 533 returns NULL without dcb being marked as complete. If the processing of a response is aborted in mysql_backend.c@process_responsedata due to a packet being incomplete, it must be ensured that it also appears that way after the return from the function, so that the processing is also aborted in mysql_backend.c@gw_read_backend_event |
| Comment by Johan Wikman [ 2015-08-27 ] |
|
A fix has now been made and is being regression tested. |
| Comment by Johan Wikman [ 2015-08-31 ] |
|
Crash not repeated, but likely cause found by code review. Fix made, and change regression tested. |
| Comment by Guillaume Lefranc [ 2015-08-31 ] |
|
Crash repeated in production, core dump files coming up. |