Subject RE: [firebird-support] Pushing Firebird 2.1 over the edge.
Author Calin Pirtea
Hi Vlad,

The 400Mb is virtual Memory. I'm using task manager to get raw info and showing VMSize shows 400Mb. I've tried creating simple app in Delphi and when creating 1800 threads it crashed with insufficient memory yet in task manager it was showing only 20Mb or less on any memory reporting column. I'm sure I never seen the memory used by thread creation properly reported in Windows using TaskManager.

Cheers,

Calin Pirtea

From: Vlad Khorsun

 
> I'm creating a big load of connections to Firebird and during a select
> statement I reached the memory limit for Firebird. The select failed
> with:
> ISC ERROR CODE:335544430
>
> ISC ERROR MESSAGE:
> unable to allocate memory from operating system
>
> The machine is a VM with 2GB ram and Firebird was using at the time
> around 400Mb. However there were 884 threads running in Firebird and
> Firebird just froze.

Firebird used 2GB of *virtual memory* which is a limit for 32-bit process.
400MB you seen is amount of *physical* memory.

> Firebird log shows the following error:
> SRVR_multi_thread: forcefully disconnecting a port
>
> The Firebird server is not crashed and the guardian, of course, has not
> restarted it.

Don't use guardian !!! It do nothing which OS can't do. And it prevents
drWatson from creating crash dump (on Windows fo course).

> Should the guardian have been notified somehow or should Firebird have
> crashed gracefully?

Why should it crash ? Lower amout of connection and it should work normally.

Regards,
Vlad