Forum OpenACS Development: Re: Res: Re: Res: Re: xowiki error using ns_eval

Collapse
Posted by Raúl Morales Hidalgo on
Hi Stefan,

Thanks a lot, will try it as soon as we can.

I upgraded xotcl core, tried to run on a ds/shell an ns_eval source to reload a library and got the following error at every request after the call to ns_eval:

::xo::cc: unable to dispatch method 'user_id' during '::xo::cc user_id'
::xo::cc ::xotcl::Object->configure
::xo::ConnectionContext ::xotcl::Class->create
invoked from within
"my create ::xo::cc -package_id $package_id [list -parameter_declaration $parameter] -user_id $user_id -actual_query $actual_query -url $url"
(procedure "require" line 16)
::xo::ConnectionContext->require
invoked from within
"::xo::ConnectionContext require -package_id $package_id -url $url"
(procedure "get_context" line 14)
::throttle->get_context
invoked from within
"my get_context"
(procedure "check" line 4)
::throttle->check
invoked from within
"my check"
(procedure "postauth" line 4)
::throttle->postauth
invoked from within
"$proc $why"

am I missing something else?

Thanks in advance

Raúl,

Well, you might not be missing something, but simply expecting something not intended.

First question: Why are you ns_eval'ing *-procs files from xotcl-request-monitor? ns_eval is issued to incrementally update the blueprint state of all interpreters/ connection threads (and others).

Second question: Did you upgrade XOTcl to 1.6.1 (the C extension) or just xotcl-core (the OpenACS package)?

I could think of two sources of error, but you need to post the details to narrow it down ... (error.log, package version, how did you upgrade?) ...

Hi Stefan,

I just upgraded the C library, our xotcl-core version is still the 5.3 one I posted above (0.56 IIRC)

What I try to do is to reload a library from a given package because the apm -> reload doesn't work when the enhancePErformanceP parameter is set as Dave says in this thread:

https://openacs.org/forums/message-view?message_id=1473232

anything else I should run to narrow it down a little more?

Are you sure, you installed XOTcl in this installation?

Run the following command in your ds/shell

   set _ "$::xotcl::version$::xotcl::patchlevel"

For me, sourcing via ns_eval works (with the request-monitor installed as you have apparently). Try in your ds/shell

   set dir [acs_root_dir]
   ns_eval source $dir/packages/acs-tcl/tcl/request-processor-procs.tcl

If the command above does not work, one has to look closer
at the versions. If this works, what can i do to reproduce your problem?

Collapse
Posted by Joaquin Urrutia on
Hi Gustaf,

If we run:

set _ "$::xotcl::version$::xotcl::patchlevel"

We got

1.6.1

But, if we run:

set dir [acs_root_dir]
ns_eval source $dir/packages/acs-tcl/tcl/request-processor-procs.tcl

We got a permanent error on every request:

::xo::cc: unable to dispatch method 'user_id' during '::xo::cc user_id'
::xo::cc ::xotcl::Object->configure
::xo::ConnectionContext ::xotcl::Class->create
invoked from within
"my create ::xo::cc -package_id $package_id [list -parameter_declaration $parameter] -user_id $user_id -actual_query $actual_query -url $url"
(procedure "require" line 16)
::xo::ConnectionContext->require
invoked from within
"::xo::ConnectionContext require -package_id $package_id -url $url"
(procedure "get_context" line 14)
::throttle->get_context
invoked from within
"my get_context"
(procedure "check" line 4)
::throttle->check
invoked from within
"my check"
(procedure "postauth" line 4)
::throttle->postauth
invoked from within
"$proc $why"

Tell me the package versions that need to see exactly

Collapse
Posted by Gustaf Neumann on
The good news is that the problem apparently does not exist in cvs head, so there is a certain chance that it will heal once you have the chance to update.

Please check the versions of the following packages on your system by runing the command below in your ds/shell:

foreach pk {acs-kernel xotcl-core xotcl-request-monitor} {
   append _ "$pk: " [apm_version_get -package_key $pk -array ""; set x "$(version_name), $(release_date)"] \n
}
 
set _

and report it back.

Collapse
Posted by Raúl Morales Hidalgo on
Hi,

After upgrading in our main site the core to 5.4 and xo* packages to newer versions we still have problems with this, the problem now seems to be the one described in the first post of this thread:

invalid database id: "nsdb0"
while executing
"ns_db poolname $handle"

Our system right now:

acs-kernel: 5.4.3, 2008-10-03
xotcl-core: 0.100.1, 2009-01-23
xotcl-request-monitor: 0.40, 2007-10-14

and xotcl 1.6.1 (installed from debian package) which should fix the problem.

We have also tried xotcl-request-monitor 0.43 and xotcl library 1.6.6 to no avail (same error) we have tried reloading libraries via ns_eval with both performanceModeP on and off for the sake of testing.

any ideas or anything else to try?

Thanks in advance,
Raúl

Collapse
Posted by Gustaf Neumann on
Dear Raúl, i haved tried the following commands in ds/shell
   set dir [acs_root_dir]
   ns_eval source $dir/packages/acs-tcl/tcl/request-processor-procs.tcl
on the server, which comes closest to your configuration, and it works fine:
Server:    4.5.0p1 (AOLserver)
Tcl:       8.5.9
XOTcl:     1.6.6
Tdom:      0.8.3
libthread: /usr/local/aolserver/lib/thread2.6.5/libthread2.6.5.so
Tcllib:    /usr/local/aolserver45-HEAD/lib/tcllib1.10
acs-kernel:            2008-10-03, 5.4.3
xotcl-core:            2011-01-14, 0.118
xotcl-request-monitor: 2008-10-04, 0.42
xowiki:                2011-01-14, 0.136
xowf:                  2010-06-17, 0.30d
i would recommend XOTcl 1.6.6 and xotcl-core 0.118