Bug #24190 many exportable definitions of field_in_record_is_null
Submitted: 10 Nov 2006 14:21 Modified: 18 Jun 2010 1:10
Reporter: Andrei Elkin Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server Severity:S3 (Non-critical)
Version:5.1.13 OS:Any
Assigned to: Andrei Elkin CPU Architecture:Any

[10 Nov 2006 14:21] Andrei Elkin
Description:
The fact showes up with running some tests with innodb e.g
mysql-test-run --debug row_basic_3innodb

Created slave.trace file has the following stack

T@56665182: | | | >ha_innobase::update_row
T@56665182: | | | | >ha_federated::field_in_record_is_null

It appeares to be a real problem when i challenged the server with gdb.
It also showed that field_in_record_is_null of ha_federated.cc was called at
innodb's function, instead of its own inline.

inlining was turned off by using -O0 for compilation.

How to repeat:
build the server with CFLAGS= -O0 ... CXXFLAGS= -O0 ..., you might need to
remove -Wuninitialized as well.
Just do this:

BUILD/complile-pentium-valgrind-max -n > mybuild
sed -i -e 's/-O1/-O0/g' mybuild ;
sed -i -e 's/-Wuninitialized//g' mybuild
chmod a+x mybuild
./mybuild

cd mysql-test;
./mysql-test-run --debug row_basic_3innodb
#
# to find the claimed:
#
grep -2 'ha_federated::field_in_record_is_null' var/log/slave.trace

Suggested fix:
add static visibility to the function definitions.
[10 Nov 2006 14:24] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/15136

ChangeSet@1.2322, 2006-11-10 17:22:43+02:00, aelkin@dsl-hkibras-fe30f900-107.dhcp.inet.fi +2 -0
  Bug #24190  many exportable definitions of field_in_record_is_null
  
  mysql had several(2) exportable definitions of field_in_record_is_null function.
  
  Fixed with adding static.
[20 Nov 2006 15:40] Lars Thalmann
Pushed into 5.1.14.
[28 Nov 2006 20:49] Paul DuBois
Noted in 5.1.14 changelog.

The server source code had multiple exportable definitions of the
field_in_record_is_null() function. These are now all declared
static.
[5 May 2010 15:21] Bugs System
Pushed into 5.1.47 (revid:joro@sun.com-20100505145753-ivlt4hclbrjy8eye) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (merge vers: 5.1.46) (pib:16)
[6 May 2010 2:31] Paul DuBois
Push resulted from incorporation of InnoDB tree. No changes pertinent to this bug. Re-closing.
[28 May 2010 6:00] Bugs System
Pushed into mysql-next-mr (revid:alik@sun.com-20100524190136-egaq7e8zgkwb9aqi) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (pib:16)
[28 May 2010 6:29] Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20100524190941-nuudpx60if25wsvx) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (merge vers: 5.1.46) (pib:16)
[28 May 2010 6:56] Bugs System
Pushed into 5.5.5-m3 (revid:alik@sun.com-20100524185725-c8k5q7v60i5nix3t) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (merge vers: 5.1.46) (pib:16)
[28 May 2010 21:44] Paul DuBois
Push resulted from incorporation of InnoDB tree. No changes pertinent to this bug.
Re-closing.
[17 Jun 2010 12:03] Bugs System
Pushed into 5.1.47-ndb-7.0.16 (revid:martin.skold@mysql.com-20100617114014-bva0dy24yyd67697) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (merge vers: 5.1.46) (pib:16)
[17 Jun 2010 12:45] Bugs System
Pushed into 5.1.47-ndb-6.2.19 (revid:martin.skold@mysql.com-20100617115448-idrbic6gbki37h1c) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (merge vers: 5.1.46) (pib:16)
[17 Jun 2010 13:30] Bugs System
Pushed into 5.1.47-ndb-6.3.35 (revid:martin.skold@mysql.com-20100617114611-61aqbb52j752y116) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (merge vers: 5.1.46) (pib:16)