segfaults in mysql driver

Jan-Henrik Haukeland hauk at tildeslash.com
Fri Mar 21 13:03:25 CET 2008


Its fixed. You can check out the code from the repository at http://code.google.com/p/libzdb/source/checkout 
. re2c (http://re2c.org/ or apt-get re2c) is needed to build from  
scratch. Call bootstrap first, then configure.

To save memory, the MySQL driver is designed not to slurp down large  
data sets, but read as needed. Each column is preallocated with a 256  
byte buffer. This is more than enough for numbers and usually enough  
for strings, as real life strings often tend to be shorter. Buffers  
are reallocated if needed, it was this reallocation that had a bug  
which should now be fixed.

We have mainly been working on developing an application using the  
SQLite driver and haven't tested all drivers of libzdb _extensively_  
in a real application. Its unfortunate, but at the same time its great  
that you are able to test all parts and we'll try our best to respond  
as soon as we can. I hope you haven't lost all confidence in the  
library. The code should be well designed and easy to read and if you  
want too, you are most welcome to provide patches if more trouble  
should arise, though I hope we have ironed out most now.

We'll release a new version as soon as the postgresql problem you also  
reported has been fixed. I don't use postgres myself and I believe  
Martin is on vacation, so if you want to give it a stab I'll be happy  
to accept a patch :-)

Jan-Henrik


On 17. mars. 2008, at 16.32, Paul J Stevens wrote:

> Jan-Henrik,
>
> I'm running into some problems with the mysql backend. I can't seem  
> to retrieve
> long-ish strings.
>
> The attached code will reliably segfault on my systems.
>
> This code does *not* fail on Postgresql.
>
> Am I doing something wrong?
>
> thanks,



More information about the libzdb-general mailing list