Subject Re: [firebird-support] Re: very strange behavior with UDF ...
Author Vander Clock Stephane
Hello Hvlad,

I do some interresting test to show (and prouve) definitively that FPC
64 bit is buggy with Firebird on 64 bit

I simply do :

Insert into ... values (MyFPC64UdfTrim('xxx'));

First i do with 10 simultaneous thread (connections) => no probleme

after i decide to try the same with 100 threads => Firebird crash in
100% in less than 1 minute !!
Message in the firebird.log are various, sometime no message at all ..

so this explain why it's look like to work for years in our system
without any probleme, because
when the number of concurrent connection is low, everything look like to
work ok, but as soon
as the server become overloaded => crash in 100% of the case !

to try it by yourself you can take any FPC 64 Udf dll and my benchmak tools

http://sourceforge.net/projects/alcinoe/files/alsqlbenchmark/1.01/ALSQLBenchmark_1.01.zip/download


so definitivelly, as the crash appear only in some heavy condition, lot
of people thing their FPC udf 64 work great,
and when FB crash it's not imediatly clear that it's because of the UDF
(because they use it probably like me for years
without any problem), I thing it's important to add a readme.txt inside
the firebird/udf to say to not build any udf with FPC !

regards
stéphane


On 1/18/2011 12:36 AM, hvlad wrote:
>
>
>
> --- In firebird-support@yahoogroups.com
> <mailto:firebird-support%40yahoogroups.com>, Vander Clock Stephane wrote:
> >
> > Thanks vlad ...
> >
> > hmmm, why not, but it's a lot of years now we use this dll in previous
> > version of firebird without any problem (but the database schema also
> > change in years, i m not sure) ...
>
> Because it was not on Win64, correct ?
>
> > and also it's not explain why the crash is on a udf function
> > (aludf_stringreplace) that is not used anywhere :(
>
> See above and consider broken exception handler installed by DLL on load.
>
> > anyway, as my function are very simple
> >
> > i need only these functions :
> >
> > aludf_httpencode => http decode
> > aludf_utf8lowercase => utf8 lowercase
> > aludf_utf8upercase => utf8 uppercase
> > aludf_utf8normalize => remove all accent from string (é => e)
> >
> > so what the best tool to use to write these UDF function ? VC ?
>
> For Windows MSVC is the working solution at least :)
> Probably GCC (using MinGW) also should be considered, i never used it
> by myself.
>
> Regards,
> Vlad
>
>


[Non-text portions of this message have been removed]