Forum OpenACS Q&A: Can't read ad_sec_deferred_dml

Collapse
Posted by dan lieberman on
i started getting this message this morning; it will appear for
anything we do - when I login to the site for example:

[23/Dec/2001:11:26:26][5951.25611][-sched:80-] Notice: Done running
scheduled proc send_scheduled_spam_messages.
[23/Dec/2001:11:26:53][5951.23562][-conn15-] Error: Filter
ad_issue_deferred_dml returned error #1: can't
read "ad_sec_deferred_dml": no such variable
[23/Dec/2001:11:26:53][5951.23562][-conn15-] Error: tclop: invalid
return code from filter proc 'Critical filter ad_issue_deferred_dml
failed.': must be filter_ok, filter_return, or filter_break

I'm running AOLserver/3.2+ad12, Open ACS 3.2.5
I bounced Postgres/AOLserver - but it still appears.
I'm stumped. It looks like some ad background process is trying to do
some database operation and failing.

danny

Collapse
Posted by Don Baccus on
It's looking to see if any deferred dml has been queued by ad_defer_dml.  This is all in tcl/ad-security.tcl and the queue's a global.  You can guard the check in the filter with a "[info exists ad_sec_deferred_dml]" but it's not clear why you should be seeing this problem suddenly when you haven't had it before.
Collapse
Posted by dan lieberman on
Don
who calls ad_defer_dml? i saw that the code in ad-security.tcl references ad_sec_deferred_dml - but the question is how does the code break so the we get a no such variable error? I am doing a
ns_register_filter preauth GET /scripts/* nimda and bouncing back to the sender. is it possible that there is some connection between the 2 events?
Collapse
Posted by Cynthia Kiser on
In ACS 3.4.10, ad_sec_deferred_dml is run as a trace filter on all get requests (think it is largely used for updating sec_sessions, sec_browser_*, etc). I would suggest installing the OpenACS monitoring package and using it to look at the registered filters to see how ad_sec_deferred_dml is being called on your server. (You can probably get the same amount of information by just greping your server files for ad_sec_deferred_dml but the monitoring package is pretty cool so recommend installing it in any case.)

Also the original aD version of the filter did check to see if there was any DML to run so putting in the [info exists _] does not sound like a bad idea.

Collapse
Posted by dan lieberman on
We're running the OpenAcs monitor - you're right it IS pretty cool.
I was grepping log files - but STILL couldnt seem to see what was the initiative for deferred_dml.

While we're on the topic of Monitor - after a certain number of error messages AOL server stops logging errors.  How can we enlarge the quota or remove it - right now I'm using the hammer approach - restart aolserver - it works for us cause this is a development machine.
danny

Collapse
Posted by Cynthia Kiser on
I had meant grepping your source code, not log file.

But what do you mean about AOLServer ceasing to log after a certain amount of time? I have never seen that. The only quota on log files I know about is the size of the disk partition you write them to. Is there a pattern to the last thing that is logged before it quits?