← Back to team overview

yellow team mailing list archive

handoff etc.

 

- Clint agreed to take over packaging of our charm helpers stuff, so gmb is off the hook.

- Benji is pretty confident that he's reduced our failing bug count from ~2800 to ~200, with https://code.launchpad.net/~benji/launchpad/bug-954319 <https://code.launchpad.net/%7Ebenji/launchpad/bug-954319> . Yay! I started an ec2 instance to land this. It should have landed by 0800 UTC Thursday, or failed.

- When trying to verify Benji's fix and frankban's testr fix, I went down an unpleasantly long rabbit hole that I eventually discovered was because testr in precise and testr in head are significantly different. You can still apply his basic idea, but copying over cli.py from his branch is not advised.

It looks like the idea needs some tweaking. I got this traceback when I ran the tests.

Warning: Permanently added '10.0.3.224' (RSA) to the list of known hosts.
Exception in thread Thread-1:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 551, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 504, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/lib/python2.7/dist-packages/testtools/testsuite.py", line 85, in _run_test
    test.run(process_result)
  File "/usr/lib/python2.7/dist-packages/subunit/__init__.py", line 1149, in run
    protocol.lineReceived(line)
  File "/usr/lib/python2.7/dist-packages/subunit/__init__.py", line 548, in lineReceived
    self._state.lineReceived(line)
  File "/usr/lib/python2.7/dist-packages/subunit/__init__.py", line 385, in lineReceived
    self.details_parser.lineReceived(line)
  File "/usr/lib/python2.7/dist-packages/subunit/details.py", line 119, in lineReceived
    self._parse_state(line)
  File "/usr/lib/python2.7/dist-packages/subunit/details.py", line 84, in _look_for_content
    self._state.endDetails()
  File "/usr/lib/python2.7/dist-packages/subunit/__init__.py", line 380, in endDetails
    self._report_outcome()
  File "/usr/lib/python2.7/dist-packages/subunit/__init__.py", line 411, in _report_outcome
    details=self.details_parser.get_details())
  File "/usr/lib/python2.7/dist-packages/testtools/testresult/real.py", line 517, in addFailure
    return self.decorated.addFailure(test, err)
  File "/usr/lib/python2.7/dist-packages/testtools/testresult/real.py", line 405, in addFailure
    test, err, details=details)
  File "/usr/lib/python2.7/dist-packages/testtools/testresult/real.py", line 387, in _add_result_with_semaphore
    self.result.stopTest(test)
  File "/usr/lib/python2.7/dist-packages/testtools/testresult/real.py", line 603, in stopTest
    return self.decorated.stopTest(test)
  File "/usr/lib/python2.7/dist-packages/testtools/testresult/real.py", line 237, in stopTest
    return self._dispatch('stopTest', test)
  File "/usr/lib/python2.7/dist-packages/testtools/testresult/real.py", line 231, in _dispatch
    for result in self._results)
  File "/usr/lib/python2.7/dist-packages/testtools/testresult/real.py", line 231, in<genexpr>
    for result in self._results)
  File "/usr/lib/python2.7/dist-packages/testtools/testresult/real.py", line 603, in stopTest
    return self.decorated.stopTest(test)
  File "/usr/lib/python2.7/dist-packages/subunit/test_results.py", line 417, in stopTest
    getattr(self.decorated, method)(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/subunit/test_results.py", line 125, in addFailure
    return self.super.addFailure(test, err, details=details)
  File "/usr/lib/python2.7/dist-packages/subunit/test_results.py", line 58, in addFailure
    return self.decorated.addFailure(test, err, details=details)
  File "/usr/lib/python2.7/dist-packages/testtools/testresult/real.py", line 517, in addFailure
    return self.decorated.addFailure(test, err)
  File "/usr/lib/python2.7/dist-packages/subunit/test_results.py", line 58, in addFailure
    return self.decorated.addFailure(test, err, details=details)
  File "/usr/lib/python2.7/dist-packages/testtools/testresult/real.py", line 517, in addFailure
    return self.decorated.addFailure(test, err)
  File "/usr/lib/python2.7/dist-packages/testtools/testresult/real.py", line 517, in addFailure
    return self.decorated.addFailure(test, err)
  File "/usr/lib/python2.7/dist-packages/testrepository/ui/cli.py", line 50, in addFailure
    self.stream.write(self._format_error(u'FAIL', *(self.failures[-1])))
  File "/usr/lib/python2.7/dist-packages/testrepository/ui/cli.py", line 42, in _format_error
    ]).encode(encoding, 'replace')
TypeError: encode() argument 1 must be string, not None

String or Integer object expected for key, unicode found

That suggests I got the patch wrong...here's what _format_error looks like in the version I ran:

    def _format_error(self, label, test, error_text):
        encoding = getattr(self.stream, 'encoding', 'utf-8')
        return u''.join([
            self.sep1,
            u'%s: %s\n' % (label, test.id()),
            self.sep2,
            error_text,
            ]).encode(encoding, 'replace')

So...I guess encoding was explicitly None, and the code needs to be on the order of "getattr(self.stream, 'encoding', None) or 'utf-8'"?

I don't know what that "String or Integer object expected for key, unicode found" means--or, more accurately, what raised it. Probably unrelated.

After that stderr, I found this stdout text, which appeared well after the tests started:

running=sudo /usr/local/bin/launchpad-lxc-test
Setting up ephemeral container...
Starting up the container...
No handlers could be found for logger "bzr"
No handlers could be found for logger "amqplib"
No handlers could be found for logger "amqplib"

Did something restart? :-/ Not sure what that means. When I looked at ps, there was only one test process running.

- All of the above means we *still* need to get a buildbot running again, ideally with a fix for that unicode issue. (OTOH, the unicode issue may no longer be triggered, once we have Benji's branch? The odds are good....)

- I suspect this is entirely in line with what Francesco told us about the resolv.conf issues, but in case it helps, locally I got this warning when I started an lxc container (as set up by setuplxc):

/etc/resolvconf/update.d/libc: Warning: /etc/resolv.conf is not a symbolic link to /etc/resolvconf/run/resolv.conf

- I added a new card for missing tests--the Javascript layer tests. They failed for me when I ran tests using --load-list. Layer problems don't show up in testr's output for this, but I don't yet have confidence in testr as a tool in this regard. I worry that in fact the tests are not being run.

OK, I need to stop.  Talk to you all tomorrow

Gary

Follow ups