[MDEV-21824] 0xc0000005 crash Created: 2020-02-27 Updated: 2020-03-16 Resolved: 2020-03-16 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Server |
| Affects Version/s: | 10.5.1 |
| Fix Version/s: | 10.5.2 |
| Type: | Bug | Priority: | Major |
| Reporter: | Moshe L | Assignee: | Vladislav Vaintroub |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Environment: |
Windows 10 x64 |
||
| Issue Links: |
|
||||||||
| Description |
|
I am trying the 10.5.1 on a dev machine.
Sometimes with a specific popular SQL query. crashed also if the query table did not exists. other strange thing: this code is updating (or inserting) one row, but I see in my GUI: What I was tried:
the query: the table:
the original ENGINE was MEMORY, I was changed it to INNODB to remove the option that the MEMORY engins throw this bug.
I suspect the query isn't the problem and it just a big chance for it to run on the server crash, but when I was disabled it from the code side, the chance to crash was lowered from minutes to hours. Thanks ! |
| Comments |
| Comment by Elena Stepanova [ 2020-02-29 ] | |
|
You said So, how do you execute it when it crashes? Are you using some connector? And what is the difference between "execute the query manually" and "run the query from a GUI" – do you mean command-line client as "manually" and HeidiSQL as "GUI"? | |
| Comment by Moshe L [ 2020-02-29 ] | |
|
GUI is MySQL Workbench I think it failed more from the web, but don't sure abut this. I tried the same back to 10.4.12 and it is working without problems. (the original code was wrote in ~ 2008 and it works on every MySQL/MariaDB version from 5.0 and up....) | |
| Comment by Moshe L [ 2020-03-01 ] | |
|
I has some more time to debug this problem. other problem still here: "2 rows effected", but effected only one. | |
| Comment by Elena Stepanova [ 2020-03-08 ] | |
|
2 rows affected is not a problem, it's expected and documented behavior, also in MySQL (assuming your INSERT actually updates the row):
| |
| Comment by Vladislav Vaintroub [ 2020-03-08 ] | |
|
bar, this seems to be from Whether this is a problem, or whether it is a valid reason, is hard to tell. Apparently, I think it is not an actual query is causing this, due to query in the output. being 0x0. This might be ping or something like that. | |
| Comment by Vladislav Vaintroub [ 2020-03-08 ] | |
|
The actual line that is causing trouble must be
since the crash callstack does not jump into wc_mb(), I believe that only referencing pointers might be a problem | |
| Comment by Moshe L [ 2020-03-09 ] | |
|
I am not a SQL debugger, but I suspect the COM_RESET_CONNECTION action used by the MySQLConnector when reusing pooled connection as a new one. | |
| Comment by Moshe L [ 2020-03-10 ] | |
|
after 4 days of uptime, it crashed again With other simple UPDATE query, the first one after reset connection | |
| Comment by Vladislav Vaintroub [ 2020-03-10 ] | |
|
I think it is not "after" reset connection, it is "during" reset connection. | |
| Comment by Moshe L [ 2020-03-10 ] | |
|
update: I was wrong here, the code make the crash used Oracle MySQL .NET Connector 6.9.12 from 2015 that did not use the COM_RESET_CONNECTION. So, I upgraded the connector to MySQLConnector that use COM_RESET_CONNECTION and for now the problem was solved. if you want, I can test a debug-able version of MariaDB on this system. I did not have a mysqld.dmp. |