Bug #77514 mysql Segmentation Fault (CORE) during login
Submitted: 27 Jun 2015 15:10 Modified: 17 Jul 2015 12:03
Reporter: Tom Shaw Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Server: Compiling Severity:S1 (Critical)
Version:5.6.25 OS:Linux (Compiled from source)
Assigned to: CPU Architecture:Any
Tags: mysql source compiled core dump

[27 Jun 2015 15:10] Tom Shaw
Description:
After successfull compilation of mySQL 5.6.25, running the server etc issuing mysql with a socket or host connection results in a segmentation fault (Core).

Ubuntu v14.04 fresh desktop install

The cmake line I used was:
cmake . -DCMAKE_INSTALL_PREFIX='ninja/mysql' -DMYSQL_DATADIR='ninja/data/mysql' -DSYSCONFDIR='/ninja/config/mysql' -DENABLE_DOWNLOADS=1

The other command line utilities I have tested and work correctly are

It appear that mysql is the only executable that fails.

The binary version compiled by mySQL works on my system.

I can provide a compile log if required, if there is a way to get a more verbose listing or any more detail is required please let me know and I will create a log.

The output from running mysql is:

 ./mysql -S /ninja/data/mysql/mysql.sock -u root -pEnter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.6.25-log Source distribution

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Segmentation fault (core dumped)

How to repeat:
Run mysql.
[27 Jun 2015 15:32] Tom Shaw
The actual cmake like I used (previous was hand typed) was:

root@ninja:/ninja/src/mysql-5.6.25# cmake -DCMAKE_INSTALL_PREFIX='/ninja/mysql' -DMYSQL_DATADIR='/ninja/data/mysql' -DSYSCONFDIR='/ninja/config/mysql' -DENABLE_DOWNLOADS=1 -DWITH_SSL='/ninja/openssl' path_name > /home/tshaw/Desktop/mysql-cmake.log .
[28 Jun 2015 1:27] Tom Shaw
A completely clean install of Ubuntu allowed me to compile. I used my own compiled version of ncurses, which, despite compiling correctly, and the compile logs for mysql showing no errors related to ncurses, the mysql utility crashes. Using a packaged version fixes the issue.

Is mysql not able to use self compiled ncurses? What did I do wrong?
[17 Jul 2015 12:03] Georgi Kodinov
Not enough information was provided for us to be able to handle this bug. Please re-read the instructions at http://bugs.mysql.com/how-to-report.php

If you can provide more information, feel free to add it to this bug and change the status back to 'Open'.

Thank you for your interest in MySQL.

This is a situation that I can do very little to help you with. 
You're compiling using your own SSL library and your own curses library that I don't have to experiment with.

There are a number of things that could have gone wrong with this. 
I.e. it could have used the system headers and your own library binaries. It could have had incompatible compilation flags for the library and the server etc. 

Maybe the information in the callstack will help us determine if this is a mysql problem, so I'd start with this.

We currently compile almost exclusively with the system's ncurses. But there probably is a way to compile with a custom ncurses library too.

I also suggest you do some investigation yourself too. Start by reading http://dev.mysql.com/doc/refman/5.7/en/bug-reports.html. Then try to rule out some of the variables and narrow down the scope of the problem, i.e. try with the system SSL library and see if this fixes it, try with the system curses library and see if this fixes it, try compiling only the client components and see if they'd connect to a stock mysql server binary and vice versa. .....
Maybe also look at the output of profiling tools like e.g. valgrind, strace etc and see if you can find some clues on what's wrong there too. 

The less variables you have and the more information you provide the better are the chances that we can reproduce the problem and help you out.
And even if we can't it will help you to determine the faulty component better.