Bug #70047 | srv_buf_size not declared | ||
---|---|---|---|
Submitted: | 15 Aug 2013 11:57 | Modified: | 3 Oct 2013 16:02 |
Reporter: | Michal Hrusecky | Email Updates: | |
Status: | Verified | Impact on me: | |
Category: | MySQL Server: InnoDB storage engine | Severity: | S3 (Non-critical) |
Version: | 5.6.12 | OS: | Any |
Assigned to: | CPU Architecture: | Any |
[15 Aug 2013 11:57]
Michal Hrusecky
[15 Aug 2013 13:05]
MySQL Verification Team
#ifdef FALLOC_FL_PUNCH_HOLE /* Try to deallocate the space for the file on disk. This should work on ext4 on Linux 2.6.39 and later, and be ignored when the operation is unsupported. */ fallocate(index->online_log->fd, FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE, ofs, srv_buf_size); #endif /* FALLOC_FL_PUNCH_HOLE */
[17 Aug 2013 5:38]
Joel Bion
I'd rate "failure to compile mysql" as something higher than an S3, because it is not clear to me how I easily work around this. I am running glibc 2.18, compiled against Linux 3.10.6
[17 Aug 2013 6:04]
Joel Bion
It is possible that the fix is to simply change srv_buf_size to srv_sort_buf_size. The previous code (posix_fadvise call) seems to hint that this would be the case. However, I cannot claim sufficient knowledge of this code to say that IS the solution; just a possibility, one that could be wrong.
[21 Aug 2013 13:01]
Naga Satyanarayana Bodapati
Your observation is right. It should be srv_sort_buf_size. Can you please tell me how you enabled this flag?
[30 Aug 2013 21:09]
Joel Bion
My cmake invocation is: cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/var -DWITH_SSL=system -DWITH_EMBEDDED_SERVER=true My system is Linux 3.10.10, with glibc 2.18, gcc 4.8.1. I noticed this with the glibc upgrade to 2.18.
[5 Sep 2013 15:21]
Raghavendra Prabhu
I can repeat the same (with kernel 3.10, gcc 4.8.1, glibc 2.18). Is the fix simply changing srv_buf_size to srv_sort_buf_size. FALLOC_FL_PUNCH_HOLE should be defined since Linux 2.6.38 - http://man7.org/linux/man-pages/man2/fallocate.2.html
[24 Feb 2015 1:46]
Eric Promislow
How I got here: Downloaded 5.6.10 source $ mkdir bld && cd bld $ cmake -DIGNORE_AIO_CHECK=1 -DBUILD_CONFIG=mysql_release .. $ make