[odb-users] another test from odb-tests-2.1.1 fails with mariadb-5.5.28a

Hugo.Mildenberger at web.de Hugo.Mildenberger at web.de
Fri Feb 1 16:56:45 EST 2013


Hi Boris


 On Fri, 1 Feb 2013 15:14:01 +0200
 Boris Kolpackov <boris at codesynthesis.com> wrote:

 > Ok, so this seems to be MariaDB 5.5-specific. I just tried the tests
 > with the latest MySQL (5.5.29), that is, using both MySQL 5.5.29 (as
 > packaged by Debian) and libmysqlclient headers/libraries (as provided
 > by Oracle). Everything works fine.
 > 
 > So I tend to think this is either a MariaDB bug or a setup issue.
 > Regarding the possible setup issue, one thing that might be worth
 > checking is that you are using libmysqlclient from 5.5 as opposed
 > to 5.1. Though for me everything works fine with both 5.5 and 5.1
 > clients.

That is one reason why I use a source code distribution. And no, the 
'libmysqlclient.so' will get freshly installed each time. I also removed 
/var/lib/mysql, restarted the server and recompiled libodb-mysql when 
I changed mariadb versions. 

MySQL-5.5.29 runs fine here too, but MariaDB-5.5.2{8,9} do not. 

Here is an excerpt from a server side trace which looks interesting: 

  187 Execute	INSERT INTO `boost_mysql_dt_object_times` (`object_id`,`index`,`value`) VALUES (1,0,'')
  187 Reset stmt	
  187 Execute	INSERT INTO `boost_mysql_dt_object_times` (`object_id`,`index`,`value`) VALUES (1,1,NULL)
  187 Reset stmt	
  187 Execute	INSERT INTO `boost_mysql_dt_object_times` (`object_id`,`index`,`value`) VALUES (1,2,'')
  187 Reset stmt	
  187 Execute	INSERT INTO `boost_mysql_dt_object_times` (`object_id`,`index`,`value`) VALUES (1,3,'')

This fits with the output from a manual select:

	select * from boost_mysql_dt_object_times;
	+-----------+-------+---------------------+
	| object_id | index | value               |
	+-----------+-------+---------------------+
	|         1 |     0 | 0000-00-00 00:00:00 |
	|         1 |     1 | NULL                |
	|         1 |     2 | 0000-00-00 00:00:00 |
	|         1 |     3 | 0000-00-00 00:00:00 |
	+-----------+-------+---------------------+

Now, how to proceed? I finally persuaded libmysqlclient to create a trace file, 
but it did not contain anything useful. The trace flags are apparently only 
documented in the source code... what a mess. 
I tried  MYSQL_DEBUG=d:t:o:f,/tmp/client4.trace, but I certainly missed 
just the significant one. As an aside, I had to set MYSQL_DEBUG in the 
driver script inside of func_exec_program_core(). Neither exporting MYSQL_DEBUG 
nor setting --debug= in ../../../db.options did work. Maybe you have an idea 
for a strategic place where to put trace statements.


Hugo



More information about the odb-users mailing list