List:Internals« Previous MessageNext Message »
From:Sergei Golubchik Date:April 14 2012 4:36pm
Subject:Re: crash we've seen in TC_LOG_MMAP::unlog
View as plain text  
Hi, Zardosht!

At the risk of repeating myself, I'll answer "it's fixed in MariaDB" :)
Here's the fix:

http://bazaar.launchpad.net/~maria-captains/maria/5.5/revision/sergii@ style="color:#666">stripped

Somehow it's only in 5.5, but the fix is trivial, we can backport it, if
necessary.

On Apr 14, Zardosht Kasheff wrote:
> When we run our mysql-test suite with a large number of parallel
> threads, sometimes we see a crash in TC_LOG_MMAP::unlog:
> 
> int TC_LOG_MMAP::unlog(ulong cookie, my_xid xid)
> {
>   PAGE *p=pages+(cookie/tc_log_page_size);
> 
> The problem is that for some mysterious reason, tc_log_page_size is
> set to 0, causing a divide by 0 error. We never see this if we run the
> test suite serially.
> 
> The test simply creates a transaction does inserts into two engines,
> each of which support XA, and commits.
> 
> Has anyone seen this before? I am hoping this is a known issues, as I
> understand very little about this code. Looking at it, I cannot see
> how tc_log_page_size should be 0 in that function, leading me to
> believe that there is some memory corruption somewhere.

You'll understand it when you see the fix :)

Regards,
Sergei
Thread
crash we've seen in TC_LOG_MMAP::unlogZardosht Kasheff14 Apr
  • Re: crash we've seen in TC_LOG_MMAP::unlogSergei Golubchik14 Apr