Aaron Weiss writes:
 > Hi,
 > 
 > I wanted to create a UDF for MySQL that can use the ASpell engine to
 > generate a string of spelling suggestions, given a single word
 > parameter. Thus, select aspell('wrd') should return Aspell's suggested
 > spellings.
 > 
 > I don't know C very well at all, so I began using an existing UDF
 > function already written, called unprefix(). I changed the main
 > subroutine to open a pipe to aspell, and to read the output of the
 > pipe (aspell's suggestions). Because aspell sometimes returns
 > a suggestions string longer than 255 character I tried to use malloc()
 > to give the string a maximum headroom of 1024 characters.
 > 
 > When I compile and create this UDF, it seems to work. Queries to it
 > produce the correct results. No problems. However, in a live
 > production environment where tens of these queries are sent over a
 > few minutes, mysqld is repeatedly, seemingly randomly, crashing and
 > restarting itself. Checking the logs, I see it is only queries using
 > my new "aspell" UDF that cause the crash. However, it seems random
 > because 99% of aspell queries in the log do not cause a crash, and the
 > ones that do are not replicable (trying to repeat a UDF query that caused
 > the crash does not cause a crash again).
 > 
 > The more serious problem is that sometimes mysqld cannot restart
 > itself (error log shows that TCP/IP port is 'in use'). That's when the
 > server is effectively dead.
 > 
 > I retrieved the stack trace information that MySQL reports during each
 > crash. It is always the same stack trace info. If anyone has any hints for me as to 
 >what
 > this is saying, maybe I can pinpoint the source of the problem. As it
 > is now, I have no idea!
 > 
 > 0x40073522 _end + 938017058
 > 0x40139897 _end + 938828951
 > 0x411cf9de _end + 956220894
 > 0x8091dab val_str__17Item_func_udf_strP6String + 119
 > 0x808a129 send__4ItemP6String + 73
 > 0x80b5e8a send_data__11select_sendRt4List1Z4Item + 98
 > 0x80dd236
 > 
 >mysql_select__FP3THDP13st_table_listRt4List1Z4ItemP4ItemRt4List1Z15Item_func_matchP8st_orderT5P4ItemT5UiP13select_result
 > +
 > 1830
 > 0x80c3467 mysql_execute_command__Fv + 783
 > 0x80c7523 mysql_parse__FP3THDPcUi + 199
 > 0x80c2849 do_command__FP3THD + 1157
 > 0x80c1ea6 handle_one_connection__FPv + 582
 > 
 > **crash!**
 > 
 > thanks!
 > Aaron Weiss ([EMAIL PROTECTED])
 > CTO, Wordsmyth Collaboratory
 > http://www.wordsmyth.net
 > 
 > 
 > 


Hi!

Possible cause of your problems might be that you have not made that
function thread - safe.


Regards,

Sinisa

      ____  __     _____   _____  ___     ==  MySQL AB
     /*/\*\/\*\   /*/ \*\ /*/ \*\ |*|     Sinisa Milivojevic
    /*/ /*/ /*/   \*\_   |*|   |*||*|     mailto:[EMAIL PROTECTED]
   /*/ /*/ /*/\*\/*/  \*\|*|   |*||*|     Larnaca, Cyprus
  /*/     /*/  /*/\*\_/*/ \*\_/*/ |*|____
  ^^^^^^^^^^^^/*/^^^^^^^^^^^\*\^^^^^^^^^^^
             /*/             \*\                Developers Team

---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to