Hi Keith,
the issue should be sorted out by now. The dependency on xotcl-core was subtle and not easy to spot: it was a setting that redefinition of classes should not perform a full cleanup. Such a redefinition happens during upgrade and caused to issue. This is now fixed in the oacs-5-10 branch.
Here is, what I used for testing.
#
# Get a fresh installation of OpenACS 5.10.0 from cvs:
#
mkdir /local/usr/local/src/openacs-core-5.10.0/
cd /local/usr/local/src/openacs-core-5.10.0
cvs -d:pserver:mailto:anonymous@cvs.openacs.org:/cvsroot checkout -r openacs-5-10-0-final acs-core
mv openacs-4/* .
mkdir log
sudo chgrp -R nsadmin .
sudo chmod -R g+w .#
# create/recreate the database
#
sudo -u postgres $PGBIN/dropdb -U nsadmin $DB
sudo -u postgres $PGBIN/createdb -U nsadmin $DB
#
# Start the server and create instance.
# Restart the server and log in.
# Make upgrade on file system to the newest version of oacs-5-10.
cvs -q up -r oacs-5-10 -Pd
#
# In OpenACS, navigate to /acs-admin/install/ and upgrade from local file system
# Mark all, click "install packages".
# Restart finally the server
Maybe someone else can use this to reduce typing on upgrade attempts.