Hi, Kristian!

On Apr 23, Kristian Nielsen wrote:
> 
> I was looking at a Valgrind warning in Buildbot (appended below).
> 
> Thread 1 is running SHOW PROCESSLIST, it grabs the pointer THD::db to
> the current database of thread 2.
> Thread 2 then does THD::set_db(), freeing the old THD::db pointer and
> allocating a new one with the new data.
> Thread 1 then resumes, doing strdup() of the _old_, now invalid,
> THD::db pointer, which reads garbage data (or could even segfault if
> we get really unlucky).
> 
> This seems like a genuine bug. I see absolutely no locking protecting
> against this race :-(
> 
> Any suggestions for how to deal with this?

I'd say, let's use a fixed buffer in 5.1-5.5.
In 10.0 a better way would be to use Sergey Petrunia's
APC subsystem for that.

Regards,
Sergei

_______________________________________________
Mailing list: https://launchpad.net/~maria-developers
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~maria-developers
More help   : https://help.launchpad.net/ListHelp

Reply via email to