Forum OpenACS Development: problems with bboard in 4.5

Collapse
Posted by Rafael Calvo on
I just installed code from CVS using
 cvs -z3 -d:pserver:anonymous@openacs.org:/cvsroot update
bboard
. I assume this is going to be the oACS-4-5 branch. (Could someone confirm)
When posting /message-new-3 gives me an error:
Database operation "0or1row" failed (exception NSDB, "Query was not a
statement returning rows.")
           while executing
       "ns_pg_bind 0or1row nsdb0 {
                   select bboard_message__new (
                       :message_id,
                       :reply_to,
                       :sent_date..."
           ("uplevel" body line 1)
           invoked from within
       "uplevel $ulevel [list ns_pg_bind $type $db $sql"
           invoked from within
       "db_exec 0or1row $db $full_statement_name $sql"
           invoked from within
       "if {[regexp -nocase -- {^s*select} $test_sql match]} {
                   db_qd_log Debug "PLPGSQL: bypassed anon function"
                   set selection [db_ex..."
           ("uplevel" body line 6)
           invoked from within
       "uplevel 1 $code_block "
           invoked from within
       "db_with_handle db {
               # plsql calls that are simple selects bypass the
plpgsql 
               # mechanism for creating anonymous functions (OpenACS -
..."
           (procedure "db_exec_plsql" line 13)
           invoked from within
       "db_exec_plsql message_new {
               begin
                   :1 := bboard_message.new (
                       message_id => :message_id,
                       reply_to =..."
           (procedure "bboard_message_new" line 3)
           invoked from within
       "bboard_message_new -message_id $message_id -reply_to
$reply_to  -sender $user_id -title $title -mime_type $mime_type 
-content $content -context_id $f..."
           ("uplevel" body line 3)
           invoked from within
       "uplevel 1 $transaction_code "
           (procedure "db_transaction" line 39)
           invoked from within
       "db_transaction {

           bboard_message_new -message_id $message_id -reply_to
$reply_to  -sender $user_id -title $title -mime_type $mime_type 
-content $..."
           ("uplevel" body line 30)
           invoked from within
       "uplevel {
                 ad_page_contract {
           
           Confirmation page for a new posting.

           @author Anukul Kapoor (akk@arsdigita.com)
           @creation-datee 2..."
           (procedure
"code::tcl::/web/weg1/packages/bboard/www/message-new-3" 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..."

Does anyone have this problem?
Collapse
Posted by Don Baccus on
To get the tagged branch you have to say "-r oacs-4-5" ... I just installed the tagged postgres bboard a couple of days ago and I was able to post messages and attachments fine.

You're problem, though, is due to a bug fix to bboard made by Vinod.  The easiest way to fix this was to do something bboard should've been doing from day one - deriving its own bboard_message type from acs_message rather than use acs_message objects, so it can track its own objects reliably.

I haven't looked at what updating an existing installation would take.  If you don't have any other general messages in your system (no general comments, for instance) then in principle you can:

1. Add the new type (poach the code from bboard-create)

2. update the acs objects table changing the type of all acs_message objects to bboard_message

3. Add a row to bboard messages for each row in acs_messages tying them together with the message id.

This would probably work ...

This will be the last major change of this sort until after the 4.5 release, I think.  After beta we'll provide upgrade scripts if there are such changes.

Collapse
Posted by Rafael Calvo on
Thanks Don,

I need to start a new site. Do you suggest not to install bboard until your release 4.5? or if I install the new version (fresh from CVS) I will not need to do any changes?

I know you are with a flu, please get bettr soon, so we can have 4.5

cheers

Rafa

Collapse
Posted by Rafael Calvo on
I drop the DB and started from scratch, with fresh code from CVS.
When I try to create the bboard I get:
invalid command name "bboard_forum_new"
           while executing
       "bboard_forum_new -forum_id $forum_id -short_name $short_name  -charter $charter -moderated_p $moderated_p  -bboard_id $package_id -creation_user [ad_v..."
           ("uplevel" body line 2)
           invoked from within
       "uplevel 1 $transaction_code "
           (procedure "db_transaction" line 1)
           invoked from within
       "db_transaction {
           bboard_forum_new -forum_id $forum_id -short_name $short_name  -charter $charter -moderated_p $moderated_p  -bboard_id $package_id..."
           ("uplevel" body line 31)
           invoked from within
       "uplevel {
                 ad_page_contract {

           Create a new forum.

           @author John Prevost 
           @creation-date 2000-08-30
           @cvs..."
           (procedure "code::tcl::/web/weg1/packages/bboard/www/forum-new-2" 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..."
Sorry, but I can not help fixing it.
Collapse
Posted by Rafael Calvo on
the last problem was somehow solved when I did all over again... I am still left with the original one.