[Buildbot-devel] error upgrading to 0.8.0rc2

Bill Deegan bill at baddogconsulting.com
Mon May 3 18:16:34 UTC 2010


More info.
Looks like at least one of the comments for the perforce checkin's had
unicode characters.
I hacked this as follows

    def _addChangeToDatabase(self, change, cursor):
        # strip None from any of these values, just in case
        def remove_none(x):
            if x is None: return ""
            return x

        # Hack - de-unicode the comments
        try:
            values = tuple(remove_none(x) for x in
                           (change.number, change.who,
                            change.comments, change.isdir,
                            change.branch, change.revision, change.revlink,
                            change.when, change.category))
            q = util.sql_insert(self.dbapi, 'changes',
                                """changeid author comments is_dir
branch revision
                                revlink when_timestamp category""".split())

#            print "Values :%s"%(" ".join([str(a) for a in values]))
            cursor.execute(q, values)
        except pysqlite2.dbapi2.ProgrammingError:
            values = tuple(remove_none(x) for x in
                           (change.number, change.who,
                            "dropped comments due to unicode", change.isdir,
                            change.branch, change.revision, change.revlink,
                            change.when, change.category))
            q = util.sql_insert(self.dbapi, 'changes',
                                """changeid author comments is_dir
branch revision
                                revlink when_timestamp category""".split())
            cursor.execute(q, values)

Note that after upgrade, buildbot seems to pound on the CPU more.

-Bill

On Mon, May 3, 2010 at 10:46 AM, Bill Deegan <bill at baddogconsulting.com> wrote:
> Any sugguesions how to proceed?
> -Bill
>
> [builds at lzeno buildbot]$ buildbot upgrade-master .
> /opt/local/buildbot/public_html/robots.txt has old/modified contents
>  writing new contents to /opt/local/buildbot/public_html/robots.txt.new
> /opt/local/buildbot/public_html/bg_gradient.jpg has old/modified contents
>  writing new contents to /opt/local/buildbot/public_html/bg_gradient.jpg.new
> migrating changes.pck to database
>  (12255 Change objects)
> Traceback (most recent call last):
>  File "/tools/linux-ia32/python/python/2.5.4/bin/buildbot", line 5, in <module>
>    pkg_resources.run_script('buildbot==0.8.0rc2', 'buildbot')
>  File "/tools/linux-ia32/python/python/2.5.4/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg/pkg_resources.py",
> line 489, in run_script
>  File "/tools/linux-ia32/python/python/2.5.4/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg/pkg_resources.py",
> line 1207, in run_script
>  File "/tools/linux-ia32/python/python/2.5.4/lib/python2.5/site-packages/buildbot-0.8.0rc2-py2.5.egg/EGG-INFO/scripts/buildbot",
> line 4, in <module>
>    runner.run()
>  File "/tools/linux-ia32/python/python/2.5.4/lib/python2.5/site-packages/buildbot-0.8.0rc2-py2.5.egg/buildbot/scripts/runner.py",
> line 1193, in run
>    upgradeMaster(so)
>  File "/tools/linux-ia32/python/python/2.5.4/lib/python2.5/site-packages/buildbot-0.8.0rc2-py2.5.egg/buildbot/scripts/runner.py",
> line 453, in upgradeMaster
>    sm.upgrade()
>  File "/tools/linux-ia32/python/python/2.5.4/lib/python2.5/site-packages/buildbot-0.8.0rc2-py2.5.egg/buildbot/db/schema/manager.py",
> line 56, in upgrade
>    upg.upgrade()
>  File "/tools/linux-ia32/python/python/2.5.4/lib/python2.5/site-packages/buildbot-0.8.0rc2-py2.5.egg/buildbot/db/schema/v1.py",
> line 245, in upgrade
>    self.migrate_changes()
>  File "/tools/linux-ia32/python/python/2.5.4/lib/python2.5/site-packages/buildbot-0.8.0rc2-py2.5.egg/buildbot/db/schema/v1.py",
> line 317, in migrate_changes
>    self._addChangeToDatabase(c, cursor)
>  File "/tools/linux-ia32/python/python/2.5.4/lib/python2.5/site-packages/buildbot-0.8.0rc2-py2.5.egg/buildbot/db/schema/v1.py",
> line 271, in _addChangeToDatabase
>    cursor.execute(q, values)
> pysqlite2.dbapi2.ProgrammingError: You must not use 8-bit bytestrings
> unless you use a text_factory that can interpret 8-bit bytestrings
> (like text_factory = str). I t is highly recommended that you instead
> just switch your application to Unicode strings.
>




More information about the devel mailing list