Forum OpenACS Q&A: Re: Re: Re: Re: Re: Re: Openacs process disappearing

Posted by Jason Cheung on
Hi Gustaf,

Thank you for your reply,

openacs 5.1.2d
tcl: version 8.4

The two tests did not return any error - and to update on further investigation, another website (lets say website B) using the same tcl version and openacs version did not have the same problem with entering a string in the query. I.E. it would complain:

We had a problem with your input:

group_id is not an integer

Please back up using your browser, correct the above , and resubmit your entry.

Thank you.

Whereas in website A (if I enter category?cid=a),it returns 500 Internal Server Error. Tested string and email also; they work fine.

Not sure if it relates to the openacs core installation or the custom tcl code or aolserver configuration.

Jason, do the tests return on both systems the correct boolean value? To be sure, try to use the function ad_page_contract_filter integer from version 1.20

don't you see any error message in the error log from the 500 error?


After some more testing it seems I know where the problem lies. It seems the master template (blank-master.adp) contained

ad_page_contract {

} {

{item_id:integer 0}
{cid:integer 0}
{return_url ""}

which it did not agree with .. guess it did do the validation after all and it was the display template which had the 500 problem!


I have 2 files - test.tcl and blank-master.tcl


ad_page_contract {

} {

ns_log Notice INSIDETEST


ad_page_contract {

} {
{x ""}

ns_log Notice BLANKMASTER

How might I pass value of x into blank-master in usual circumstances such as test?x=1 and test?x=a (this works;returns error) and also catch invalid urls such as test?x=1017%3C/p%3E%0D%0A%3Cp%3E (this causes server error).

A quick solution is to pass as a property in default-master and do integer validation further down in blank-master.

However, is there a coding convention that I am missing for passing queries to blank-master with better exception handling ?

The problem that I have had was rp processor displaying the error message within the master template which caught the same validation error thus resulting in a neverending error loop.