[MDEV-16790] Server crashes on 'show table status' Created: 2018-07-20 Updated: 2018-09-09 Resolved: 2018-09-09 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Admin statements, Storage Engine - TokuDB |
| Affects Version/s: | 10.1.32 |
| Fix Version/s: | N/A |
| Type: | Bug | Priority: | Major |
| Reporter: | Jonathan Levin | Assignee: | Unassigned |
| Resolution: | Incomplete | Votes: | 0 |
| Labels: | need_feedback | ||
| Environment: |
Ubuntu 16.04.4 LTS |
||
| Attachments: |
|
| Description |
|
Hello, We seem to have a strange issue where running 'show table status' takes 3-4 minutes and then crashes the server. I have attached the error log during the crash and the server parameters in the attachment to this ticket. |
| Comments |
| Comment by Elena Stepanova [ 2018-07-20 ] | |||||
|
There is no configuration for TokuDB in serverparm.txt – do you really use all defaults, or do you have it in a separate file maybe? | |||||
| Comment by Jonathan Levin [ 2018-07-21 ] | |||||
|
The tokudb_max_lock_memory defaults to 4294967296. | |||||
| Comment by Jonathan Levin [ 2018-07-21 ] | |||||
|
I've changed the following two settings: Now, when I run 'show table status' it does not crash, but I do get the following output for some of the tables in the output.
| |||||
| Comment by Elena Stepanova [ 2018-07-21 ] | |||||
No, I wasn't suggesting that (yet), I was just asking about your TokuDB configuration, since I couldn't find it in the attached file.
Open tables mean open files, so the values are related to ulimit -n. | |||||
| Comment by Jonathan Levin [ 2018-07-21 ] | |||||
|
Also, it did crash.. a few moments after that show table status command. | |||||
| Comment by Jonathan Levin [ 2018-07-21 ] | |||||
|
root@db:~# sudo su - mysql but the open-files-limit is set to 10,000 and for some reason, I cannot seem to effect this. | |||||
| Comment by Jonathan Levin [ 2018-07-21 ] | |||||
|
There are no tokudb settings in the my.cnf file. | |||||
| Comment by Elena Stepanova [ 2018-08-04 ] | |||||
|
Stricter ulimit -n might be set by service configuration or whatever startup scripts are used to handle the server. Please check them. This effect
is very easily reproducible with insufficient ulimit -n. Further,
it is unclear whether this error is related to any of this or not. Do the files exist? Can they be corrupt? Does it work when you run show table status for only one of the tables? | |||||
| Comment by Jonathan Levin [ 2018-08-05 ] | |||||
|
File limit outside of mysql seems to be fine. Would you know what is causing mysql to ignore the my.cnf variable for open_files_limit and keep it at 10k? | |||||
| Comment by Elena Stepanova [ 2018-08-05 ] | |||||
|
From all I see, at least in 10.1.32 which you are using, the only thing that affects open_files_limit is the system limit; the value always ends up being set to whatever getrlmit returns.
(or using your config as --defaults-file, for an even cleaner experiment). | |||||
| Comment by Jonathan Levin [ 2018-08-08 ] | |||||
|
Your line worked, but on the actual server.. no matter how many times I change the my.cnf file or attempt to change the OS ulimit in numerous places, I cannot change it in mysql. From the online articles, this appears to be a common problem. | |||||
| Comment by Elena Stepanova [ 2018-08-08 ] | |||||
|
As mentioned before, there are various places where the limit can be tweaked, service scripts/configuration would be one of those. It should be fairly easy to trace, e.g. add the debug output of the limit (raw from the system and one from mysqld similar to above) at the different stages of the startup. Which packages are you using, btw, those provided by MariaDB or Debian? Given that you're on Xenial, it could be either. If you don't know, please paste the output of dpkg -l | grep -i maria. |