Unable to read MON$-tables when run few ISQLs that all make bulk updates of 
huge table (10E8 rows for each of them)
-------------------------------------------------------------------------------------------------------------------

                 Key: CORE-4179
                 URL: http://tracker.firebirdsql.org/browse/CORE-4179
             Project: Firebird Core
          Issue Type: Bug
    Affects Versions: 3.0 Alpha 1
         Environment: LI-T3.0.0.30585 Firebird 3.0 Alpha 1
SuperServer
            Reporter: Pavel Zotov
         Attachments: 
unable_querying_mon_tables_when_huge_table_is_updated_-_logs.zip

/* I've opened this ticked instead of continuing reports to old CORE-3977;  
   Dmitry told me that this should be new one.
*/

The following scenario leads any new attempts to establish new connect  to be 
failed.

1. database with single table that have 10E9 rows:

SQL> show table t; show index;
ID                              INTEGER Nullable
S01                             VARCHAR(8) Nullable
S02                             VARCHAR(8) Nullable
T_ID INDEX ON T(ID)
T_S01_S02 INDEX ON T(S01, S02)

2. Start trace 
3. Five ISQLs that all connects to this database via TCP and started (almost at 
one time) commands:

session # 1
set plan on; set stat on; update t set s01=s02, s02=s01 where id between 1 and 
100000000;

session # 2
set plan on; set stat on; update t set s01=s02, s02=s01 where id between 
100000001 and 200000000;

session # 3
set plan on; set stat on; update t set s01=s02, s02=s01 where id between 
200000001 and 300000000;

session # 4
set plan on; set stat on; update t set s01=s02, s02=s01 where id between 
300000001 and 400000000;

session # 5
set plan on; set stat on; update t set s01=s02, s02=s01 where id between 
400000001 and 500000000; 

4. After all these 5 connects reflects in the trace that they  STARTED 
statements I run 6th ISQL with the following script as input:

set list off;
commit;
select current_timestamp dts, i.* from mon$io_stats i;
select current_timestamp dts, r.* from mon$record_stats r;
quit;

This "monitoring" ISQL hanged - no output was during ~20...30 minutes.

5. Take snapshot of firebird backtrace (via gdb) and lock print (via 
fb_lock_print -a -c -m)

6. Then I shutdown this database like this: gfix -shut -force 0.
The trace shows that database goes in shutdown mode but all ISQLs are still 
hangs. No output at all.

7. Attempt to connect via ISQL to another database on that host - and could not 
do this. Firebird did not answered.

All reports please see in attach.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite!
It's a free troubleshooting tool designed for production.
Get down to code-level detail for bottlenecks, with <2% overhead. 
Download for free and get started troubleshooting in minutes. 
http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to