Forum OpenACS Q&A: News modules crashed!

Collapse
Posted by H. shefaat on
Hi, the news module (pg 7.2, openacs4.5, Suse 7.2) crashed with the followig error message. Some an idea what is happen? News module was runing sinsce 1 month without problems and i did not change in there... Thanks in advance
Request Error
Database operation "0or1row" failed (exception NSINT, "Query returned 
more than one row.")
    while executing
"ns_pg_bind 0or1row nsdb0 {
	select package_id from apm_packages where package_key 
= :package_key
    }"
    ("uplevel" body line 1)
    invoked from within
"uplevel $ulevel [list ns_pg_bind $type $db $sql"
    invoked from within
"db_exec 0or1row $db $full_name $sql"
    invoked from within
"set selection [db_exec 0or1row $db $full_name $sql]"
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $code_block "
    invoked from within
"db_with_handle db {
	set selection [db_exec 0or1row $db $full_name $sql]
    }"
    (procedure "db_string" line 7)
    invoked from within
"db_string apm_package_id_from_key {
	select package_id from apm_packages where package_key 
= :package_key
    } -default 0"
    (procedure "apm_package_id_from_key_mem" line 2)
    invoked from within
"apm_package_id_from_key_mem search"
    ("eval" body line 1)
    invoked from within
"eval $script"
    invoked from within
"ns_cache eval util_memoize $script {
	    list $current_time [eval $script]
	}"
    (procedure "util_memoize" line 20)
    invoked from within
"util_memoize "apm_package_id_from_key_mem $package_key""
    (procedure "apm_package_id_from_key" line 2)
    invoked from within
"apm_package_id_from_key $package_key"
    (procedure "news_util_get_url" line 3)
    invoked from within
"news_util_get_url search"
    invoked from within
"set search_url [news_util_get_url search]"
    ("uplevel" body line 46)
    invoked from within
"uplevel {
    	  # /packages/news/www/index.tcl

ad_page_contract {

    Displays a hyperlinked list of published news titles 
either 'live' or 'archiv..."
    (procedure "code::tcl::/web/openacs-4/packages/news/www/index" 
line 2)
    invoked from within
"code::tcl::$__adp_stub"
    invoked from within
"if { [file exists $__adp_stub.tcl] } {

      # ensure that data source preparation procedure exists and is 
up-to-date
      adp_init tcl $__adp_stub
..."
    ("uplevel" body line 3)
    invoked from within
"uplevel {

    if { [file exists $__adp_stub.tcl] } {

      # ensure that data source preparation procedure exists and is 
up-to-date
      adp_init t..."
    (procedure "adp_prepare" line 3)
    invoked from within
"adp_prepare "
    (procedure "template::adp_parse" line 30)
    invoked from within
"template::adp_parse [file root [ad_conn file]] {}"
    (procedure "adp_parse_ad_conn_file" line 7)
    invoked from within
"$handler"
    ("uplevel" body line 2)
    invoked from within
"uplevel $code"
    invoked from within
"ad_try {
	$handler
      } ad_script_abort val {
	# do nothing
      }"
    invoked from within
"rp_serve_concrete_file [ad_conn file]"
    (procedure "rp_serve_abstract_file" line 60)
    invoked from within
"rp_serve_abstract_file "$root/$path""
    ("uplevel" body line 2)
    invoked from within
"uplevel $code"
    invoked from within
"ad_try {
	rp_serve_abstract_file "$root/$path"
	set tcl_url2file([ad_conn url]) [ad_conn file]
	set tcl_url2path_info([ad_conn url]) [ad_conn path_inf..."
Collapse
Posted by Rocael Hernández Rizzardini on
You should see the lines before that message in the log file to see what happen exactly with the query, or post them here.
Collapse
Posted by H. shefaat on
Unfurtunatly the error message is deleted on the server. The crash still occurs. What do you think is happen?
Collapse
Posted by Ola Hansson on
apm_package_id_from_key is the problem here, I do believe.

packages/news/www/index.tcl makes this call:

set search_url [news_util_get_url search]

news_util_get_url in turn makes this call:

set package_id [apm_package_id_from_key $package_key]

Now, apm_package_id_from_key returns an error if it is called with "search" as package_key AND more than one instance of the Search package are mounted. (Possibly also if the Search package is installed but not mounted, but I'm not sure).

Did you mount several instances of search? In either case I'm afraid I'm not sure what to do about this, but perhaps replacing [apm_package_id_from_key $package_key] with [site_node_closest_ancestor_package $package_key] (in proc: news_util_get_url in the file: packages/news/tcl/news-procs.tcl) will help.

Let us know how it goes.

Collapse
Posted by H. shefaat on
Thanks Ola, I think you are right. I treid to reinstall the news module without success!. It was not possible to delete the packge. So after playing around I got the permission error not the old error anymore. So I cheked the permissions. It is missing news_read. But I dont have any news permission to choose in the permissions. So I dont know what the problem is and how to solve!!! Do you have an easy ides eather to reintsall the news module or remove this error?
Many thnaks in advance
Collapse
Posted by Ola Hansson on
Oops! I had no trouble deleting the news package with my two test instances, myself... Maybe you run on some old code? If you just have a test system and you're not being able to delete the package from the package manager, the easiest thing to do would probably be to drop the whole thing and download the latest 4.6 test tarball: http://dev.openacs.org/projects/openacs/4.6/download/download-verify?revision_id=47732
and try it there.

I'm not sure why you'd want to remove your news package in the first place, though. Changing one line in news-procs.tcl would probably have been enough. (The first error you described is present in the latest code as well).

If you run a production system and don't want to reinstall all packages, you should post the error message you get when you try to delete the package and tell us from where you're trying to do it.

Collapse
Posted by H. shefaat on
It is a production version with a lot of customazing. So I dont want to reinstall everything. The current version is very new (from Sep. 2002) and it works normaly good. The error message i get is:
Security Violation
-------------
You don't have permission to news_read News. 
This incident has been logged. 

I checke the permission and gave read, write to public. But allways the same error . I m logged as Admin and testet it at /admin/site-map/. It is the same form other pages.
Thnaks