Subject Re: [firebird-support] mon$call_stack line numbers, procedure hanging
Author Milan Babuskov
unordained wrote:
> I've got a bunch of very similar procedures being run from inside one master
> procedure. Here and there, one of them will hang -- sometimes for two hours (!),
> with 100% cpu, still writing to disk at 200KB/sec. It's clearly doing
> *something*, but I can't figure out what. This happens on FB2.1/32-bit/Windows,
> both superserver and classic (two different machines).
>
> So I checked mon$call_stack while it was stuck, and in this case it told me it
> was in calc_flag_ref_cn_svc, line 17 (mon$source_line), character 1
> (mon$source_column). But that doesn't make any sense to me.
>
> Here's the procedure, with line numbers as FlameRobin reports them, and the
> indentation is accurate:
>
> 1 SET TERM ^ ;
> 2 ALTER PROCEDURE CALC_FLAG_REF_CN_SVC
> 3 AS
> 4 declare variable count_zero integer = 0;
> 5 declare variable count_one integer = 0;
> 6 begin
> 7 /* uncustomized -- remove this tag if you modify this code */
> 8 execute procedure dg_prc_log_beg_calc('calc_flag_ref_cn_svc');
> 9 if (not exists(select rdb$db_key from bt_flag_ref where cn_svc is null))
> then exit;
> 10 update bt_flag_ref set cn_svc = 1
> 11 where cn_svc is null and (cn_q_svc = 1
> 12 or cn_c_svc = 1);
> 13 count_one = count_one + ROW_COUNT;
> 14 if (count_one > 0) then post_event 'ref_cn_svc_1';
> 15 update bt_flag_ref set cn_svc = 0 where cn_svc is null;
> 16 count_zero = count_zero + ROW_COUNT;
> 17 if (count_zero > 0) then post_event 'ref_cn_svc_0';

Do you have any kind of firewall between client and server? Try turning
it off and see what happens. If you have NOD32 on some of the machines,
disable the IMON module and try.


--
Milan Babuskov

==================================
The easiest way to import XML, CSV
and textual files into Firebird:
http://www.guacosoft.com/xmlwizard
==================================