I would speculate that Python may run on savannah with the locale set such that it expects gecos to be in ascii. You would think that LANG= whatever gets passed across ssh, but perhaps not. If you can get the server-side traceback, which should be in .bzr.log there, that could help.
It's also a bit questionable whether we actually need to read the gecos field on the server. This may be related to bzr trying to use your server-side name as information in the lock file.
Thanks for the clear bug report.
I would speculate that Python may run on savannah with the locale set such that it expects gecos to be in ascii. You would think that LANG= whatever gets passed across ssh, but perhaps not. If you can get the server-side traceback, which should be in .bzr.log there, that could help.
It's also a bit questionable whether we actually need to read the gecos field on the server. This may be related to bzr trying to use your server-side name as information in the lock file.