2 messages in com.mysql.lists.bugsthreading assuption in monthdate
FromSent OnAttachments
Michael R. Gile08 Sep 2000 13:10 
Michael Widenius09 Sep 2000 03:14 
Subject:threading assuption in monthdate
From:Michael Widenius (mon@mysql.com)
Date:09/09/2000 03:14:26 AM
List:com.mysql.lists.bugs

Hi!

"Michael" == Michael R Gile <gil@wsg.net> writes:

Michael> This problem shows up in 3.23.24 (and probably others) Michael> (We discovered it when upgrading from 3.22)

Michael> from item_timefunc.cc

Michael> 134 String* Item_func_monthname::val_str(String* str) Michael> 135 { Michael> 136 uint month=(uint) Item_func_month::val_int(); Michael> 137 if (null_value) Michael> 138 return (String*) 0; Michael> 139 return &month_names[month-1]; Michael> 140 }

Michael> Program assumes that no other threads modify "null_value" from within
call in line 136 to 137. We actually ran into a repeating case where this was
occuring, and line 139 was causing a Segfault.

Michael> Recommended workaround: Michael> change line 137 to read Michael> 137 if (month<1)

Can you get us a backtrace (with variables) of this ?

The null_value is a thread specific variable and it shouldn't be possible for it to be changed.

On the other hand, it's possible that month::val_int() could return 0; In that case we would like to find out why and fix this!

Regards, Monty