Bug #56488 NdbApi : Improve Blob/internal operation management
Submitted: 2 Sep 2010 9:46 Modified: 18 Dec 2016 20:32
Reporter: Frazer Clement Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Cluster: NDB API Severity:S3 (Non-critical)
Version:mysql-5.1-telco-6.2 OS:Any
Assigned to: CPU Architecture:Any
Triage: Triaged: D3 (Medium) / R6 (Needs Assessment) / E4 (High)

[2 Sep 2010 9:46] Frazer Clement
Description:
Accesses to Blob columns cause NdbApi to insert extra 'internal' operations into the user transaction's operation lists for retrieving/maintaining the Blob head and the Blob part table rows.

This can cause problems :
 1) When scanning a table with Blobs, each nextResult() call issues read operations for the Blob part table(s).  These operations are not automatically freed. (Bug # 52313)

 2) Implicit execute() calls can break expected Blob state transitions (bug#50310).  Where some user operations are defined which access Blobs, then a separate scan of a Blob containing table is advanced with nextResult(), the implicit execute() within the nextResult() can cause the Blob-accessing user operations to be executed without correct state transitions.

 3) When iterating through completed operations, internal operations which the user is conceptually unaware of, are visible.

How to repeat:
See above bug numbers.

Suggested fix:
Improve the encapsulation of the Blob internal operations :
 - Make the 'internal' nature of the Blob operations explicit.
 - Manage them separately from the user's operations.
 - Execute them only when expected.
 - Free them after they have been processed.