Forum OpenACS Q&A: Errors installing dotlrn from HEAD on oracle

I got errors for several packages installing dotlrn from HEAD on oracle:

Calendar
Calendar not installed.

Error:

Transaction aborted: nsoracle.c:3904:ora_tcl_command: error in `OCIStmtExecute ()': Error - OCI_NO_DATA
SQL: 
            begin
                acs_sc_binding.new(
                       contract_name => :contract_name, 
                       impl_name => :impl_name
                   );
            end;

        nsoracle.c:3904:ora_tcl_command: error in `OCIStmtExecute ()': Error - OCI_NO_DATA
SQL: 
            begin
                acs_sc_binding.new(
                       contract_name => :contract_name, 
                       impl_name => :impl_name
                   );
            end;
        
    while executing
"ns_ora dml nsdb0 {
            begin
                acs_sc_binding.new(
                       contract_name => :contract_name, 
                    ..."
    ("uplevel" body line 1)
    invoked from within
"uplevel $ulevel [list ns_ora $type $db $sql] $args"
    ("oracle" arm line 2)
    invoked from within
"switch $driverkey {
                oracle {
                    return [uplevel $ulevel [list ns_ora $type $db $sql] $args]
                }
       ..."
    invoked from within
"db_exec dml $db $full_statement_name $sql"
    invoked from within
"if { [regexp {:1} $test_sql] } {
                return [db_exec exec_plsql_bind $db $full_statement_name $sql 2 1 ""]
            } else {
          ..."
    ("uplevel" body line 5)
    invoked from within
"uplevel 1 $code_block "
    invoked from within
"db_with_handle -dbn $dbn db {
            # Right now, use :1 as the output value if it occurs in the statement,
            # or not otherwise.
     ..."
    (procedure "db_exec_plsql" line 26)
    invoked from within
"db_exec_plsql binding_new {}"
    (procedure "acs_sc::impl::binding::new" line 3)
    invoked from within
"acs_sc::impl::binding::new  -contract_name $impl(contract_name)  -impl_name $impl(name)"
    ("uplevel" body line 6)
    invoked from within
"uplevel 1 $transaction_code "
    (procedure "db_transaction" line 1)
    invoked from within
"db_transaction {
        set impl_id [new  -contract_name $impl(contract_name)  -name $impl(name)  -pretty_name $impl(pretty_name)  -owner $impl(owner..."
    (procedure "acs_sc::impl::new_from_spec" line 10)
    invoked from within
"acs_sc::impl::new_from_spec -spec $spec"
    (procedure "calendar::sc::register_cal_item_fts_impl" line 12)
    invoked from within
"calendar::sc::register_cal_item_fts_impl"
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $transaction_code "
    (procedure "db_transaction" line 39)
    invoked from within
"db_transaction {
        calendar::sc::register_cal_item_fts_impl
        calendar::sc::register_acs_event_fts_impl
    }"
    (procedure "calendar::sc::register_implementations" line 2)
    invoked from within
"calendar::sc::register_implementations"
    (procedure "calendar::install::package_install" line 2)
    invoked from within
"calendar::install::package_install "
    ("eval" body line 1)
    invoked from within
"eval $command"
    (procedure "apm_invoke_callback_proc" line 37)
    invoked from within
"apm_invoke_callback_proc -version_id $version_id -type after-install"
    (procedure "apm_package_install" line 146)
    invoked from within
"apm_package_install  -load_data_model  -enable  -callback $callback  $spec_file"
faq
Faq not installed.

Error:
Transaction aborted: nsoracle.c:3904:ora_tcl_command: error in `OCIStmtExecute ()': Error - OCI_NO_DATA
SQL: 
            begin
                acs_sc_binding.new(
                       contract_name => :contract_name, 
                       impl_name => :impl_name
                   );
            end;

      nsoracle.c:3904:ora_tcl_command: error in `OCIStmtExecute ()': Error - OCI_NO_DATA
SQL: 
            begin
                acs_sc_binding.new(
                       contract_name => :contract_name, 
                       impl_name => :impl_name
                   );
            end;
        
    while executing
"ns_ora dml nsdb0 {
            begin
                acs_sc_binding.new(
                       contract_name => :contract_name, 
                    ..."
    ("uplevel" body line 1)
    invoked from within
"uplevel $ulevel [list ns_ora $type $db $sql] $args"
    ("oracle" arm line 2)
    invoked from within
"switch $driverkey {
                oracle {
                    return [uplevel $ulevel [list ns_ora $type $db $sql] $args]
                }
       ..."
    invoked from within
"db_exec dml $db $full_statement_name $sql"
    invoked from within
"if { [regexp {:1} $test_sql] } {
                return [db_exec exec_plsql_bind $db $full_statement_name $sql 2 1 ""]
            } else {
          ..."
    ("uplevel" body line 5)
    invoked from within
"uplevel 1 $code_block "
    invoked from within
"db_with_handle -dbn $dbn db {
            # Right now, use :1 as the output value if it occurs in the statement,
            # or not otherwise.
     ..."
    (procedure "db_exec_plsql" line 26)
    invoked from within
"db_exec_plsql binding_new {}"
    (procedure "acs_sc::impl::binding::new" line 3)
    invoked from within
"acs_sc::impl::binding::new  -contract_name $impl(contract_name)  -impl_name $impl(name)"
    ("uplevel" body line 6)
    invoked from within
"uplevel 1 $transaction_code "
    (procedure "db_transaction" line 39)
    invoked from within
"db_transaction {
        set impl_id [new  -contract_name $impl(contract_name)  -name $impl(name)  -pretty_name $impl(pretty_name)  -owner $impl(owner..."
    (procedure "acs_sc::impl::new_from_spec" line 10)
    invoked from within
"acs_sc::impl::new_from_spec -spec $spec"
    (procedure "faq::sc::register_faq_fts_impl" line 12)
    invoked from within
"faq::sc::register_faq_fts_impl"
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $transaction_code "
    (procedure "db_transaction" line 39)
    invoked from within
"db_transaction {
        faq::sc::register_faq_fts_impl
        faq::sc::register_faq_q_and_a_fts_impl
    }"
    (procedure "faq::sc::register_implementations" line 2)
    invoked from within
"faq::sc::register_implementations"
    (procedure "faq::install::package_install" line 2)
    invoked from within
"faq::install::package_install "
    ("eval" body line 1)
    invoked from within
"eval $command"
    (procedure "apm_invoke_callback_proc" line 37)
    invoked from within
"apm_invoke_callback_proc -version_id $version_id -type after-install"
    (procedure "apm_package_install" line 146)
    invoked from within
"apm_package_install  -load_data_model  -enable  -callback $callback  $spec_file"
forums
Error:
Transaction aborted: nsoracle.c:3904:ora_tcl_command: error in `OCIStmtExecute ()': Error - OCI_NO_DATA
SQL: 
            begin
                acs_sc_binding.new(
                       contract_name => :contract_name, 
                       impl_name => :impl_name
                   );
            end;
        
nsoracle.c:3904:ora_tcl_command: error in `OCIStmtExecute ()': Error - OCI_NO_DATA
SQL: 
            begin
                acs_sc_binding.new(
                       contract_name => :contract_name, 
                       impl_name => :impl_name
                   );
            end;
        
    while executing
"ns_ora dml nsdb0 {
            begin
                acs_sc_binding.new(
                       contract_name => :contract_name, 
                    ..."
    ("uplevel" body line 1)
    invoked from within
"uplevel $ulevel [list ns_ora $type $db $sql] $args"
    ("oracle" arm line 2)
    invoked from within
"switch $driverkey {
                oracle {
                    return [uplevel $ulevel [list ns_ora $type $db $sql] $args]
                }
       ..."
    invoked from within
"db_exec dml $db $full_statement_name $sql"
    invoked from within
"if { [regexp {:1} $test_sql] } {
                return [db_exec exec_plsql_bind $db $full_statement_name $sql 2 1 ""]
            } else {
          ..."
    ("uplevel" body line 5)
    invoked from within
"uplevel 1 $code_block "
    invoked from within
"db_with_handle -dbn $dbn db {
            # Right now, use :1 as the output value if it occurs in the statement,
            # or not otherwise.
     ..."
    (procedure "db_exec_plsql" line 26)
    invoked from within
"db_exec_plsql binding_new {}"
    (procedure "acs_sc::impl::binding::new" line 3)
    invoked from within
"acs_sc::impl::binding::new  -contract_name $impl(contract_name)  -impl_name $impl(name)"
    ("uplevel" body line 6)
    invoked from within
"uplevel 1 $transaction_code "
    (procedure "db_transaction" line 39)
    invoked from within
"db_transaction {
        set impl_id [new  -contract_name $impl(contract_name)  -name $impl(name)  -pretty_name $impl(pretty_name)  -owner $impl(owner..."
    (procedure "acs_sc::impl::new_from_spec" line 10)
    invoked from within
"acs_sc::impl::new_from_spec -spec $spec"
    (procedure "forum::sc::register_forum_fts_impl" line 12)
    invoked from within
"forum::sc::register_forum_fts_impl"
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $transaction_code "
    (procedure "db_transaction" line 39)
    invoked from within
"db_transaction {
        forum::sc::register_forum_fts_impl
        forum::sc::register_message_fts_impl
    }"
    (procedure "forum::sc::register_implementations" line 2)
    invoked from within
"forum::sc::register_implementations"
    (procedure "forum::install::package_install" line 2)
    invoked from within
"forum::install::package_install "
    ("eval" body line 1)
    invoked from within
"eval $command"
    (procedure "apm_invoke_callback_proc" line 37)
    invoked from within
"apm_invoke_callback_proc -version_id $version_id -type after-install"
    (procedure "apm_package_install" line 146)
    invoked from within
"apm_package_install  -load_data_model  -enable  -callback $callback  $spec_file"

------------------------------------------------------

To shorten this message, I won't paste full error messages for news and assessment packages, but they are basically the same:

news
...
    invoked from within
"news: news::sc::register_news_fts_impl"
    (procedure "news::install::after_install" line 2)
    invoked from within
"news::install::after_install "
...
assessment
...
invoked from within
"as::sc::register_fts_impl"
    (procedure "as::sc::register_implementations" line 2)
    invoked from within
"as::sc::register_implementations"
("uplevel" body line 13)
    invoked from within
"uplevel 1 $transaction_code "
    (procedure "db_transaction" line 39)
    invoked from within
"db_transaction {

	# Create the impl and aliases for one inter_item_check action
	set impl_id [create_inter_item_check_impl]

	# Create the notificati..."
    (procedure "inter_item_checks::apm_callback::package_install" line 2)
Collapse
Posted by Emmanuelle Raffenne on
Finally I could fix this on HEAD with Dave's help, thks :).

The FtsContentProvider contract wasn't created at installation time because of remaining "exit" at the end of sql installation scripts. The first script was sourced but not the following ones.

The fix has been committed to HEAD.