[MDEV-9021] MYSQLD SEGFAULTS WHEN BUILT USING --WITH-MAX-INDEXES=128 Created: 2015-10-27 Updated: 2016-01-24 Resolved: 2015-11-09 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Compiling, OTHER |
| Affects Version/s: | 10.1.8 |
| Fix Version/s: | 10.1.9 |
| Type: | Bug | Priority: | Major |
| Reporter: | Nirbhay Choubey (Inactive) | Assignee: | Nirbhay Choubey (Inactive) |
| Resolution: | Fixed | Votes: | 18 |
| Labels: | None | ||
| Sprint: | 10.1.9-1, 10.1.9-2 |
| Description |
| Comments |
| Comment by Colin Charles [ 2015-10-27 ] | |||||
|
Fixed in 5.7.1, documented as: In the course of fixing this problem, a -DMAX_INDEXES=N CMake option was added to permit building the server to support a larger maximum number of indexes per table. The default is 64. The maximum is 255. Values smaller than 64 are ignored and the default of 64 is used. (Bug #11761614) http://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-1.html | |||||
| Comment by Tim Yim (Inactive) [ 2015-10-28 ] | |||||
|
When I backported this to 5.6, there are 2 commits needed to make it work. I cannot remember the other commit but its by the same author and the same bug number. | |||||
| Comment by Nirbhay Choubey (Inactive) [ 2015-10-28 ] | |||||
|
gadnium Yep, added. | |||||
| Comment by Nirbhay Choubey (Inactive) [ 2015-10-31 ] | |||||
|
psergey Can you please review this? The patches have been pushed to the following branch : | |||||
| Comment by Nirbhay Choubey (Inactive) [ 2015-11-05 ] | |||||
|
Monty's response : > On Fri, Oct 30, 2015 at 2:13 PM, Nirbhay Choubey <nirbhay@mariadb.com> wrote: The other reason to keep a reasonable limit is that there are some The biggest structures depending on MAX_KEY is in tokudb. There is a >> Memory and stack usage. >> Also, in In practice, having more than 128 keys will make any tables REALLY slow. It would be nice to know the reason/customer that got MySQL to change I think that 128 is better, except if we have some common application Regards, | |||||
| Comment by Tim Yim (Inactive) [ 2015-11-05 ] | |||||
|
128 is fine for us. We actually only need about 68. But nevertheless, its over the current limit of 64 so doubling it to 128 will work. | |||||
| Comment by Nirbhay Choubey (Inactive) [ 2015-11-05 ] | |||||
|
gadnium ok | |||||
| Comment by Sergei Petrunia [ 2015-11-06 ] | |||||
|
Expanded nirbhay_c 's diff until it passes the tests: https://gist.github.com/spetrunia/53b07648a7bd7bf61800 index_nr= MAX_KEY means "hash join is used". test_if_skip_sort_order used it in a context where it should have used "no key", for which it normally uses "-1". | |||||
| Comment by Sergei Petrunia [ 2015-11-06 ] | |||||
|
So, 64-bit bitmap takes 8 bytes, 128-bit bitmap would take 16 bytes, 256 bit bitmap would take 32 bytes, and that On the other hand, solution that uses Bitmap<n> is already coded, while we would still need to code the in-place bitmaps. | |||||
| Comment by Nirbhay Choubey (Inactive) [ 2015-11-06 ] | |||||
|
Patch : https://github.com/MariaDB/server/commit/0a03bd1f043861be5bafa5b0cdff72995fac61d5 | |||||
| Comment by Nirbhay Choubey (Inactive) [ 2015-11-09 ] | |||||
|
https://github.com/MariaDB/server/commit/7ec655850397a0edfcea8c1fd82650824297e564 |