Forum OpenACS Q&A: Can't login to new system after copying an existing system

Request notifications

Hi,
I wanted to create a test copy of one of my OpenACS systems so I took an export of the live database, and imported it into a new database user. I fixed any import errors (mostly to do with tables containing LOBS) and recompiled any broken SQL. When I started up AOLserver the home page came up fine but I got the following error on /register when I tried to login as the superuser:
wrong # args: should be "AcsSc.auth_password.canretrievepassword.local parameters parameters".

This error seems to be coming from password-procs and it appears to be trying to retrieve a forgotten password. This is confusing me as I have the right password for the user I'm logging in as, so I don't know why it's trying to run that code (or even why it's getting as far as that without m e telling it to retrieve the password).

This problem is obviously a result of something the import broke that I haven't spotted yet, but all the tables,views and PL/SQL seems to be fine. What else could be messed up? Could some of the password data have been messed up by doing an import?

Has anybody any suggestions for what I could try to figure this one out?

This is an Oracle system running OpenACS 5.0.
Thanks a lot,
Brian
PS
The error log contains the following:
[18/Mar/2004:11:27:22][1428.1084][-conn:crgatest::0] Error: Error invoking CanRetrievePassword operation for authority_id 9:
wrong # args: should be "AcsSc.auth_password.canretrievepassword.local parameters parameters"
    while executing
"AcsSc.auth_password.canretrievepassword.local {}"
    ("uplevel" body line 1)
    invoked from within
"uplevel $func_and_args"
    (procedure "apply" line 3)
    invoked from within
"apply $proc_name $arguments"
    (procedure "acs_sc_call" line 6)
    invoked from within
"acs_sc_call -error=$error_p $contract $operation $call_args $impl"
    (procedure "acs_sc::invoke" line 17)
    invoked from within
"acs_sc::invoke  -error  -contract "auth_password"  -impl_id $impl_id  -operation CanRetrievePassword  -call_args [list $parameters]"
    (procedure "auth::password::CanRetrievePassword" line 11)
    invoked from within
"auth::password::CanRetrievePassword  -authority_id $authority_id"
    invoked from within
"set result_p [auth::password::CanRetrievePassword  -authority_id $authority_id]"
    ("uplevel" body line 2)
    invoked from within
"uplevel $body "
[18/Mar/2004:11:27:22][1428.1084][-conn:crgatest::0] Error: Error invoking CanResetPassword operation for authority_id 9:
wrong # args: should be "AcsSc.auth_password.canresetpassword.local parameters parameters"
    while executing
"AcsSc.auth_password.canresetpassword.local {}"
    ("uplevel" body line 1)
    invoked from within
"uplevel $func_and_args"
    (procedure "apply" line 3)
    invoked from within
"apply $proc_name $arguments"
    (procedure "acs_sc_call" line 6)
    invoked from within
"acs_sc_call -error=$error_p $contract $operation $call_args $impl"
    (procedure "acs_sc::invoke" line 17)
    invoked from within
"acs_sc::invoke  -error  -contract "auth_password"  -impl_id $impl_id  -operation CanResetPassword  -call_args [list $parameters]"
    (procedure "auth::password::CanResetPassword" line 11)
    invoked from within
"auth::password::CanResetPassword  -authority_id $authority_id"
    invoked from within
"set result_p [auth::password::CanResetPassword  -authority_id $authority_id]"
    ("uplevel" body line 2)
    invoked from within
"uplevel $body "
[18/Mar/2004:11:27:22][1428.1084][-conn:crgatest::0] Error: auth::authenticate: error invoking authentication driver for authority_id = 9: wrong # args: should be "AcsSc.auth_authentication.authenticate.local username username password password parameters parameters"
    while executing
"AcsSc.auth_authentication.authenticate.local brian quest1 {}"
    ("uplevel" body line 1)
    invoked from within
"uplevel $func_and_args"
    (procedure "apply" line 3)
    invoked from within
"apply $proc_name $arguments"
    (procedure "acs_sc_call" line 6)
    invoked from within
"acs_sc_call -error=$error_p $contract $operation $call_args $impl"
    (procedure "acs_sc::invoke" line 17)
    invoked from within
"acs_sc::invoke  -error  -impl_id $impl_id  -operation Authenticate  -call_args [list $username $password $parameters]"
    (procedure "auth::authentication::Authenticate" line 13)
    invoked from within
"auth::authentication::Authenticate  -username $username  -authority_id $authority_id  -password $password"
    invoked from within
"array set result [auth::authentication::Authenticate  -username $username  -authority_id $authority_id  -password $password]"
    ("uplevel" body line 2)
    invoked from within
"uplevel $body "

I'm having the same issue. Where you able to resolve it?
Collapse
Posted by Thomas Senn on
Hello,

The same applies for me, however the initial error message being slightly different. I'running ACS 5.1.2 with pgsql 7.4.8 and just restored a DB script-type dump for the first time...

I tried to apply this bug patch with no success. But this other similar bug patch points out the service contract.

Did someone manage to get this fixed?

Thanks for helping.

Cheers.

Collapse
Posted by Thomas Senn on
And here is the error log
-------------------------
[06/Jun/2006:14:44:41][19478.98311][-conn:acsserver::3] Error: Error invoking CanRetrievePassword operation for authority_id 9:
wrong # args: should be "AcsSc.auth_password.canretrievepassword.local parameters parameters"
while executing
"AcsSc.auth_password.canretrievepassword.local {}"
("uplevel" body line 1)
invoked from within
"uplevel $func_and_args"
(procedure "apply" line 3)
invoked from within
"apply $proc_name $arguments"
(procedure "acs_sc_call" line 6)
invoked from within
"acs_sc_call -error=$error_p $contract $operation $call_args $impl"
(procedure "acs_sc::invoke" line 17)
invoked from within
"acs_sc::invoke -error -contract "auth_password" -impl_id $impl_id -operation CanRetrievePassword -call_args [list $parameters]"
(procedure "auth::password::CanRetrievePassword" line 11)
invoked from within
"auth::password::CanRetrievePassword -authority_id $authority_id"
invoked from within
"set result_p [auth::password::CanRetrievePassword -authority_id $authority_id]"
("uplevel" body line 2)
invoked from within
"uplevel $body "
[06/Jun/2006:14:44:41][19478.98311][-conn:acsserver::3] Error: Error invoking CanResetPassword operation for authority_id 9:
wrong # args: should be "AcsSc.auth_password.canresetpassword.local parameters parameters"
while executing
"AcsSc.auth_password.canresetpassword.local {}"
("uplevel" body line 1)
invoked from within
"uplevel $func_and_args"
(procedure "apply" line 3)
invoked from within
"apply $proc_name $arguments"
(procedure "acs_sc_call" line 6)
invoked from within
"acs_sc_call -error=$error_p $contract $operation $call_args $impl"
(procedure "acs_sc::invoke" line 17)
invoked from within
"acs_sc::invoke -error -contract "auth_password" -impl_id $impl_id -operation CanResetPassword -call_args [list $parameters]"
(procedure "auth::password::CanResetPassword" line 11)
invoked from within
"auth::password::CanResetPassword -authority_id $authority_id"
invoked from within
"set result_p [auth::password::CanResetPassword -authority_id $authority_id]"
("uplevel" body line 2)
invoked from within
"uplevel $body "
[06/Jun/2006:14:44:41][19478.98311][-conn:acsserver::3] Error: auth::authenticate: error invoking authentication driver for authority_id = 9: wrong # args: should be "auth::local::authentication::Authenticate username password ?parameters? ?authority_id?"
while executing
"auth::local::authentication::Authenticate $username $username $password $password $parameters $parameters $authority_id $authority_id"
(procedure "AcsSc.auth_authentication.authenticate.local" line 1)
invoked from within
"AcsSc.auth_authentication.authenticate.local username testuser password *****1 parameters {} authority_id 9"
("uplevel" body line 1)
invoked from within
"uplevel $func_and_args"
(procedure "apply" line 3)
invoked from within
"apply $proc_name $arguments"
(procedure "acs_sc_call" line 6)
invoked from within
"acs_sc_call -error=$error_p $contract $operation $call_args $impl"
(procedure "acs_sc::invoke" line 17)
invoked from within
"acs_sc::invoke -error -impl_id $impl_id -operation Authenticate -call_args [list username $username password $password parameters $parameters auth..."
(procedure "auth::authentication::Authenticate" line 13)
invoked from within
"auth::authentication::Authenticate -username $username -authority_id $authority_id -password $password"
invoked from within
"array set result [auth::authentication::Authenticate -username $username -authority_id $authority_id -password $password]"
("uplevel" body line 2)
invoked from within
"uplevel $body "
Thomas, did you upgrade and restore? If so, try just doing one at a time, starting with restoring to the exact same code base before initiating an upgrade process to minimize complications.

If/when upgrading, check to see if all the upgrade scripts ran successfully, or if any were not executed. iirc, there's some discrepency betwen the naming of one of the core upgrade filenames and the upgrade-script file names that the system searches for on startup. maybe zzz-postload.tcl

The error.log file indicates when an upgrade script is loaded/executed, so you can grep for the filename.

See also this thread: http://openacs.org/forums/message-view?message%5fid=182098#182098

and the part of http://openacs.org/doc/openacs-5-1/upgrade-4.6.3-to-5.html that deals with zzz-postload.tcl

Maybe there is something there for you to work with.

Good luck.

Torben