On 2014/08/22 22:06, Stuart Henderson wrote:
> On 2014/08/19 17:15, Brad Smith wrote:
> > Here is a diff to make attempt #2 at switching to MariaDB.
> >
> > Going through the various Makefile's I noticed bmf had a typo
> > with its WANTLIB entry for MySQL.
>
> It seems that files moved between -server (on mysql) and -client (on mariadb),
>
> /usr/local/bin/msql2mysql (mysql-server-5.1.73p0v0 and
> mariadb-client-10.0.13)
> /usr/local/bin/mysql_find_rows (mysql-server-5.1.73p0v0 and
> mariadb-client-10.0.13)
> /usr/local/bin/mysql_waitpid (mysql-server-5.1.73p0v0 and
> mariadb-client-10.0.13)
> /usr/local/bin/mysqlaccess (mysql-server-5.1.73p0v0 and
> mariadb-client-10.0.13)
> /usr/local/man/cat1/msql2mysql.0 (mysql-server-5.1.73p0v0 and
> mariadb-client-10.0.13)
> /usr/local/man/cat1/mysql_find_rows.0 (mysql-server-5.1.73p0v0 and
> mariadb-client-10.0.13)
> /usr/local/man/cat1/mysql_waitpid.0 (mysql-server-5.1.73p0v0 and
> mariadb-client-10.0.13)
> /usr/local/man/cat1/mysqlaccess.0 (mysql-server-5.1.73p0v0 and
> mariadb-client-10.0.13)
>
> untested but perhaps adding "@conflict mysql-server-*" to
> mariadb/pkg/PLIST-main
> will let this update automatically..
>
Not specific to mariadb (similar things happen with the standalone mytop)
but noticed this while testing:
$ mytop
Cannot connect to MySQL server. Please check the:
* database you specified "test" (default is "test")
* username you specified "root" (default is "root")
* password you specified "" (default is "")
* hostname you specified "localhost" (default is "localhost")
* port you specified "3306" (default is 3306)
* socket you specified "/var/run/mysql/mysql.sock" (default is "")
The options my be specified on the command-line or in a ~/.mytop
config file. See the manual (perldoc mytop) for details.
Here's the exact error from DBI. It might help you debug:
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß!
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
.....
#0 0x0000065180fca864 in strlen (str=0x65276ff3897 'ß' <repeats 200 times>...)
at /usr/src/lib/libc/string/strlen.c:39
39 /usr/src/lib/libc/string/strlen.c: No such file or directory.
in /usr/src/lib/libc/string/strlen.c
(gdb) bt
#0 0x0000065180fca864 in strlen (str=0x65276ff3897 'ß' <repeats 200 times>...)
at /usr/src/lib/libc/string/strlen.c:39
#1 0x00000651c30023cc in Perl_sv_setpv (sv=0x651857fa058, ptr=0x65276ff3897
'ß' <repeats 200 times>...) at /usr/src/gnu/usr.bin/perl/sv.c:4596
#2 0x00000651e426c0d5 in mysql_dr_error (h=Variable "h" is not available.
) at dbdimp.c:1441
#3 0x00000651e4270f01 in mysql_db_login (dbh=0x652687b47a8,
imp_dbh=0x651962a4100,
dbname=0x65243adb300
"database=test;mysql_read_default_group=mytop;mysql_socket=/var/run/mysql/mysql.sock",
user=Variable "user" is not available.
) at dbdimp.c:2096
#4 0x00000651e427ad40 in XS_DBD__mysql__db__login (cv=Variable "cv" is not
available.
) at mysql.xsi:104
#5 0x00000651c303f09d in Perl_pp_entersub () at
/usr/src/gnu/usr.bin/perl/pp_hot.c:2888
#6 0x00000651c30631f3 in Perl_runops_standard () at
/usr/src/gnu/usr.bin/perl/run.c:42
#7 0x00000651c3033ade in Perl_call_sv (sv=0x651fd180250, flags=2) at
perl.c:2751
#8 0x0000065194537326 in XS_DBI_dispatch () from
/usr/local/libdata/perl5/site_perl/amd64-openbsd/auto/DBI/DBI.so
#9 0x00000651c303f09d in Perl_pp_entersub () at
/usr/src/gnu/usr.bin/perl/pp_hot.c:2888
#10 0x00000651c30631f3 in Perl_runops_standard () at
/usr/src/gnu/usr.bin/perl/run.c:42
#11 0x00000651c3034a3c in perl_run (my_perl=Variable "my_perl" is not available.
) at perl.c:2467
#12 0x0000064f80c014e3 in main () from /usr/bin/perl
(gdb) x/x str
0x65276ff3897: 0xdfdfdfdf
... so this looks like a use-after-free in DBD::MySQL error handling.