Subject RE: [ib-support] FB crash
Author Szakály Balázs
> The page_size has to be large enough to accommodate one row of your
> structure. Your two varchar(4000) columns on their own would require
> page_size of 8K. Add the other columns and we come out at 8224 bytes
> plus a few for page info data. So 8192 bytes is too small.
> (and no, you do not have to count 3 bytes per character with WIN1250 -
> is a one-byte character set)

Then, the varchar(4000) allocate 4000bytes from block, when the data is
only 400 char???

> I am not talking about Delphi - I am talking about the Firebird client

> gds32.dll, which DBExpress will load upon the first connection. Check
> version number of this library - it should be WI-V1.0.0.794. (Find it
> the system directory).

I install FB from install. I think, the gds32.dll is correct...
But, i check it, and the version is correct.

> Why are you using varchar(4000) for these columns, instead of BLOB?
Because, this system work on ORACLE and MSSQL too, and on ORACLE, i
cannot use BLOB, because, is very slow.
I think, 1000 char text is not a very dangerous size to varchar.

> You mentioned elsewhere that you had 8 threads running on this
> connection. This connection is local. Were you aware that the local
> connection is not thread-safe?

It's sure, that is thread safe. This system works since 2 years, and the
problem started since a install new FB, and add the two varchar field.

> It seems that you have multiple sources of jeopardy here for memory
> a. the page_size is smaller than the record structure
>b. you have 8 threads all stepping in the same inter-process
> space as the server process.
a. OK, page is small. The real data on the varchars is only 600-700
chars, then i change to varchar(2000). Then, the total recsize is only
~5000byte. It is correct?

b. It must be the 8 thread with 8 connection. Then, how a need to
connect to FB? I use\ddd\aa.gdb format, then is not TCP/IP
connection instead of IPC?