Bug #74387 TFBuffer::validate() const: Assertion `(p->m_bytes & 3) == 0\' failed

Submitted: 14 Oct 2014 21:18 Modified: 11 Nov 2014 13:33
Reporter: Mauritz Sundell Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Cluster: Cluster (NDB) storage engine Severity:S3 (Non-critical)
Version:7.3.7 OS:Any
Assigned to: CPU Architecture:Any

[14 Oct 2014 21:18] Mauritz Sundell
Description:
During testing of 7.3.7 release ndb.ndb_blob_big failed for ubuntu14.04-x86-32bit cluster-community deb on an assert (see below).

The assert is faulty since it implies that writes to tcp transporter socket always will be in units of 4 bytes which is not guaranteed (although very common).

mysqld-debug: /export/home/pb2/build/sb_0-13403650-1412862484.75/mysql-cluster-gpl-7.3.7/storage/ndb/src/ndbapi/trp_buffer.cpp:77: void TFBuffer::validate() const: Assertion `(p->m_bytes & 3) == 0' failed.
14:59:19 UTC - mysqld got signal 6 ;

How to repeat:
Run several parallel instances of ndb.ndb_blob_big, not easy to repeat.

To see that writev will not always send even 4 bytes, add an assert((nBytesSent % 4) == 0) after call to my_socket_writev in TCP_Transporter.cpp and run:
 ./mtr --mem --para=4 ndb_blob_big ndb_blob_big ndb_blob_big ndb_blob_big.

Suggested fix:
Remove assert.
[11 Nov 2014 13:33] Jon Stephens
Thank you for your bug report. This issue has been committed to our source repository of that product and will be incorporated into the next release.

Fixed in NDB 7.3.8. Affects debug builds only; nothing to document. Closed.

If necessary, you can access the source repository and build the latest available version, including the bug fix. More information about accessing the source trees is available at

    http://dev.mysql.com/doc/en/installing-source.html

Portions of this website are copyright © 2001, 2002 The PHP Group

Page generated in 0.038 sec. using MySQL 8.4.7-u6-cloud

Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.