Bug #24333 concurrent calls to table object on columns with utf8 charse cause crash
Submitted: 15 Nov 2006 11:57 Modified: 22 Dec 2006 16:03
Reporter: Jim Dowling Email Updates:
Status: No Feedback Impact on me:
None 
Category:MySQL Cluster: NDB API Severity:S1 (Critical)
Version:5.1.12 OS:Linux (Linux)
Assigned to: Assigned Account CPU Architecture:Any
Tags: cluster, table object, utf8 charset

[15 Nov 2006 11:57] Jim Dowling
Description:
We have encountered a SIGSEGV when multiple threads attempt to access a column with charset UTF8 using a table object.

The scenarios are:
* If multiple threads attempt to call NdbTransaction.getOperation() for a table with a UTF-8 character set 'simultaneously', we get a SIGSEGV
* If we serialise this, by having one thread call getOperation() for a table with a UTF-8 character set before any others are allowed (i.e. just after we have recovered a cluster connection) the problem goes away.
* However, we still see it in situations where the cluster_connection has been up, fails, and recovers.

It may be that it fails when there is concurrent access to the cluster to retrieve the cached table object.

How to repeat:
Only java program available for repeat.
[22 Nov 2006 15:43] Jonas Oreland
Hi,

Looking at mysys charset code, 
it should serialize access to init_available_charsets

If you have used ndb_init (which calls my_init)
  and also call my_thread_init as first method
  as first method in a thread.

Do you use both of these calls?

Can you also expand a bit on what 
"* However, we still see it in situations where the cluster_connection has been
up, fails, and recovers." means ?

/Jonas
[22 Nov 2006 16:03] Jonas Oreland
ok,
update to need feedback
[28 Nov 2006 14:15] Jonas Oreland
jim,

can you updated us on what change you did (as issue now is closed)

so we know for future (and mabye even document it :-)
[23 Dec 2006 0:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".