New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Infinite ES EDS with AUTONOMOUS transaction leads to memory leak + 335544333: internal consistency check (cannot start cache writer thread) [CORE4194] #4520
Comments
Commented by: @pavel-zotov this .zip contains two files: (both was launched every 10 seconds) |
Modified by: @pavel-zotovAttachment: fb_memory_consumption_during_infinite_ES_EDS_with_autonom_tran.zip [ 12369 ] |
Commented by: @pavel-zotov This test script shows that minimum interval between ES EDS when new slots in netstat statistics will NOT be accumulated is ~20 seconds. If we set min_delay to value that less than 15 seconds we can see that log of netstat -an | findstr /c:3252 is filled with new slots faster than old slots are removed form it. So, memory leak occurs in that case. set term ^; |
Commented by: @pavel-zotov Please see in attach the cumulative log of netstat -an | findstr /c:<firebird_listening_port> It was done for EDS called every 9.5 seconds (8 second interval + 1.5 seconds elapsed time of "select count(*) from ..." itself). One can see that new slots appear more frequently than old ones are removed from it. |
Modified by: @pavel-zotovAttachment: netstat_port_3252_201308_0912.zip [ 12370 ] |
Modified by: @dyemanovRegression: 3.0 Alpha 1 [ 10331 ] |
Modified by: @hvladassignee: Vlad Khorsun [ hvlad ] |
Commented by: @dyemanov Was this issue validated against v2.5? Is it a regression or not? |
Commented by: @pavel-zotov > Was this issue validated against v2.5? Is it a regression or not? In my message with timestamp `30/Aug/13 05:11 AM` I see this:execute block as
|
Modified by: @dyemanovVersion: 2.5.4 [ 10585 ] |
Commented by: @pavel-zotov Some bad news is coming: WI-V2.5.5.26887 can NOT perform following script more than 10-20 minutes on my machine (OS = Win XP):shell del C:\MIX\firebird\QA\fbt-repo\tmp\e25.fdb 2>nul; create sequence g; show version; set term ^; show sequ;
|
Commented by: @pavel-zotov PS. Attached screen and log - memory consumation during this test. |
Modified by: @pavel-zotovAttachment: fb-memory-consumation.PNG [ 12773 ] Attachment: memowatch.zip [ 12774 ] |
Commented by: @pavel-zotov WI-V3.0.0.31929 has the same problem as 2.5, but it has appeared after much more time, test worked almost 7 hours. Finally, isql.exe produced: Statement failed, SQLSTATE = 08006 firebird.log was filled by messages: IT_TEST Thu Jul 09 19:33:39 2015 IT_TEST Thu Jul 09 19:36:40 2015 IT_TEST Thu Jul 09 19:36:41 2015 And log of memory consumption (see attached file) show that small memory leak present: 2015-07-09 12:40:06.750 Name Pid VM WS Priv Priv Pk Faults NonP Page PS. gstat -h for test database shows: Database "C:\1INSTALL\FB25SNAP\E30.FDB"
|
Modified by: @pavel-zotovAttachment: fb3-memowatch.log.zip [ 12777 ] |
Submitted by: @pavel-zotov
Attachments:
fb_memory_consumption_during_infinite_ES_EDS_with_autonom_tran.zip
netstat_port_3252_201308_0912.zip
fb-memory-consumation.PNG
memowatch.zip
fb3-memowatch.log.zip
Votes: 1
Running this simple script during ~1 day leads to memory consumption ~630 Mb and after all to internal consistency check.
-- run from Windows machine with FB 2.5 installed, ip = 192.168.43.96:
C:\MIX\firebird\fb25>isql 192.168.99.44/3330:empty30
Database: 192.168.99.44/3330:empty30 -- this is on host with FB 3.0
SQL> set term ^;
SQL> execute block as
CON> declare host varchar(128) = '192.168.0.201/3330:empty30' ;
CON> declare stt varchar(255) = 'select count(*) from rdb$relations';
CON> declare usr varchar(255);
CON> declare psw varchar(255);
CON> declare cnt int;
CON> begin
CON> usr = 'sysdba';
CON> psw = 'masterke';
CON> while (1=1) do
CON> execute statement (:stt)
CON> with autonomous transaction
CON> on external (:host)
CON> as user :usr password :psw
CON> into cnt
CON> ;
CON> end^
-- after ~20 hours this message appeared:
Statement failed, SQLSTATE = 42000
Execute statement error at attach :
335544333 : internal Firebird consistency check (cannot start cache writer thread)
Data source : Firebird::192.168.0.201/3330:empty30
SQL> set term ;^
SQL>
SQL> ^C
This is from firebird.log (test was in run since 27-aug-2013 09:17 till 28-aug-2013 11:40):
-----------
CSMIRROR Tue Aug 27 08:46:34 2013
INET/inet_error: read errno = 10054
CSMIRROR Wed Aug 28 05:37:30 2013
Operating system call _beginthreadex failed. Error code 8
CSMIRROR Wed Aug 28 05:37:30 2013
Database: C:\1Install\FBTEST\empty30.fdb
internal Firebird consistency check (cannot start cache writer thread)
CSMIRROR Wed Aug 28 05:37:31 2013
Operating system call _beginthreadex failed. Error code 8
CSMIRROR Wed Aug 28 05:37:31 2013
Database: C:\1Install\FBTEST\empty30.fdb
internal Firebird consistency check (cannot start cache writer thread)
-----------
After the last message (05:37:31 2013) memory consumption of FB did not changed.
Please see in attach incremental log of memory consumption (result of psList -m and psList -x for firebird process).
PS-1.
SQL> show version;
ISQL Version: WI-V2.5.3.26661 Firebird 2.5
Server version:
Firebird/linux AMD64 (access method), version "LI-T3.0.0.30616 Firebird 3.0 Alpha 1"
Firebird/linux AMD64 (remote server), version "LI-T3.0.0.30616 Firebird 3.0 Alpha 1/tcp (vmoel63.local)/P12"
Firebird/x86/Windows NT (remote interface), version "WI-V2.5.3.26661 Firebird 2.5/tcp (csprog)/P12"
on disk structure version 12.0
PS-2. firebird.conf:
# Type: boolean
#SharedCache = true
# Type: boolean
#SharedDatabase = false
The text was updated successfully, but these errors were encountered: