[Qa-jenkins-scm] Build failed in Jenkins: reproducible_diffoscope_from_git_master #451

jenkins at jenkins.debian.net jenkins at jenkins.debian.net
Thu Mar 8 13:03:10 UTC 2018


See <https://jenkins.debian.net/job/reproducible_diffoscope_from_git_master/451/display/redirect?page=changes>

Changes:

[Mattia Rizzolo] comparators.utils.file: don't try to decode a string

------------------------------------------
[...truncated 381.42 KB...]
SKIP [1] .pybuild/pythonX.Y_3.6/build/tests/comparators/test_cbfs.py:118: requires cbfstool
SKIP [1] .pybuild/pythonX.Y_3.6/build/tests/comparators/test_cbfs.py:129: requires cbfstool
SKIP [1] .pybuild/pythonX.Y_3.6/build/tests/comparators/test_cbfs.py:137: requires cbfstool
SKIP [3] /tmp/testrun/.pybuild/pythonX.Y_3.6/build/tests/comparators/test_fsimage.py:52: guestfs not working on the system: RuntimeError("/usr/bin/supermin exited with error status 1.\nTo see full error messages you may need to enable debugging.\nDo:\n  export LIBGUESTFS_DEBUG=1 LIBGUESTFS_TRACE=1\nand run the command again.  For further information, read:\n  http://libguestfs.org/guestfs-faq.1.html#debugging-libguestfs\nYou can also run 'libguestfs-test-tool' and post the *complete* output\ninto a bug report or message to the libguestfs mailing list.",)
SKIP [1] /tmp/testrun/.pybuild/pythonX.Y_3.6/build/tests/comparators/test_haskell.py:37: mismatch between system ghc and fixture
SKIP [1] /tmp/testrun/.pybuild/pythonX.Y_3.6/build/tests/comparators/test_haskell.py:54: mismatch between system ghc and fixture
SKIP [1] .pybuild/pythonX.Y_3.6/build/tests/comparators/test_java.py:77: requires procyon-decompiler
SKIP [1] .pybuild/pythonX.Y_3.6/build/tests/comparators/test_java.py:87: requires procyon-decompiler
SKIP [1] .pybuild/pythonX.Y_3.6/build/tests/comparators/test_macho.py:50: requires otool and lipo
SKIP [1] .pybuild/pythonX.Y_3.6/build/tests/comparators/test_macho.py:58: requires otool and lipo
SKIP [1] .pybuild/pythonX.Y_3.6/build/tests/comparators/test_ps.py:58: requires ps2ascii <= 9.21 (9.22
 detected)
SKIP [1] .pybuild/pythonX.Y_3.6/build/tests/comparators/test_utils.py:46: requires
SKIP [1] .pybuild/pythonX.Y_3.6/build/tests/comparators/test_utils.py:51: requires /missing
=================================== FAILURES ===================================
_________________ test_with_compare_details_and_failed_process _________________

self = <<class 'tests.comparators.test_binary.test_with_compare_details_and_failed_process.<locals>.MockFile'> /tmp/testrun/.pybuild/pythonX.Y_3.6/build/tests/data/binary1>
other = <<class 'tests.comparators.test_binary.test_with_compare_details_and_failed_process.<locals>.MockFile'> /tmp/testrun/.pybuild/pythonX.Y_3.6/build/tests/data/binary2>
source = None

    def compare(self, other, source=None):
        if hasattr(self, 'compare_details') or self.as_container:
            try:
>               difference = self._compare_using_details(other, source)

difference = <Difference /tmp/testrun/.pybuild/pythonX.Y_3.6/build/tests/data/binary1 -- /tmp/testrun/.pybuild/pythonX.Y_3.6/build/tests/data/binary2 []>
other      = <<class 'tests.comparators.test_binary.test_with_compare_details_and_failed_process.<locals>.MockFile'> /tmp/testrun/.pybuild/pythonX.Y_3.6/build/tests/data/binary2>
self       = <<class 'tests.comparators.test_binary.test_with_compare_details_and_failed_process.<locals>.MockFile'> /tmp/testrun/.pybuild/pythonX.Y_3.6/build/tests/data/binary1>
source     = None

diffoscope/comparators/utils/file.py:362: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <<class 'tests.comparators.test_binary.test_with_compare_details_and_failed_process.<locals>.MockFile'> /tmp/testrun/.pybuild/pythonX.Y_3.6/build/tests/data/binary1>
other = <<class 'tests.comparators.test_binary.test_with_compare_details_and_failed_process.<locals>.MockFile'> /tmp/testrun/.pybuild/pythonX.Y_3.6/build/tests/data/binary2>
source = None

    def _compare_using_details(self, other, source):
        details = []
        difference = Difference(None, self.name, other.name, source=source)
    
        if hasattr(self, 'compare_details'):
>           details.extend(self.compare_details(other, source))

details    = []
difference = <Difference /tmp/testrun/.pybuild/pythonX.Y_3.6/build/tests/data/binary1 -- /tmp/testrun/.pybuild/pythonX.Y_3.6/build/tests/data/binary2 []>
other      = <<class 'tests.comparators.test_binary.test_with_compare_details_and_failed_process.<locals>.MockFile'> /tmp/testrun/.pybuild/pythonX.Y_3.6/build/tests/data/binary2>
self       = <<class 'tests.comparators.test_binary.test_with_compare_details_and_failed_process.<locals>.MockFile'> /tmp/testrun/.pybuild/pythonX.Y_3.6/build/tests/data/binary1>
source     = None

diffoscope/comparators/utils/file.py:301: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <<class 'tests.comparators.test_binary.test_with_compare_details_and_failed_process.<locals>.MockFile'> /tmp/testrun/.pybuild/pythonX.Y_3.6/build/tests/data/binary1>
other = <<class 'tests.comparators.test_binary.test_with_compare_details_and_failed_process.<locals>.MockFile'> /tmp/testrun/.pybuild/pythonX.Y_3.6/build/tests/data/binary2>
source = None

    def compare_details(self, other, source=None):
>       subprocess.check_output(['sh', '-c', 'echo "%s"; exit 42' % output], shell=False)

other      = <<class 'tests.comparators.test_binary.test_with_compare_details_and_failed_process.<locals>.MockFile'> /tmp/testrun/.pybuild/pythonX.Y_3.6/build/tests/data/binary2>
output     = 'Free Jeremy Hammond'
self       = <<class 'tests.comparators.test_binary.test_with_compare_details_and_failed_process.<locals>.MockFile'> /tmp/testrun/.pybuild/pythonX.Y_3.6/build/tests/data/binary1>
source     = None

tests/comparators/test_binary.py:148: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

timeout = None
popenargs = (['sh', '-c', 'echo "Free Jeremy Hammond"; exit 42'],)
kwargs = {'shell': False}

    def check_output(*popenargs, timeout=None, **kwargs):
        r"""Run command with arguments and return its output.
    
        If the exit code was non-zero it raises a CalledProcessError.  The
        CalledProcessError object will have the return code in the returncode
        attribute and output in the output attribute.
    
        The arguments are the same as for the Popen constructor.  Example:
    
        >>> check_output(["ls", "-l", "/dev/null"])
        b'crw-rw-rw- 1 root root 1, 3 Oct 18  2007 /dev/null\n'
    
        The stdout argument is not allowed as it is used internally.
        To capture standard error in the result, use stderr=STDOUT.
    
        >>> check_output(["/bin/sh", "-c",
        ...               "ls -l non_existent_file ; exit 0"],
        ...              stderr=STDOUT)
        b'ls: non_existent_file: No such file or directory\n'
    
        There is an additional optional argument, "input", allowing you to
        pass a string to the subprocess's stdin.  If you use this argument
        you may not also use the Popen constructor's "stdin" argument, as
        it too will be used internally.  Example:
    
        >>> check_output(["sed", "-e", "s/foo/bar/"],
        ...              input=b"when in the course of fooman events\n")
        b'when in the course of barman events\n'
    
        If universal_newlines=True is passed, the "input" argument must be a
        string and the return value will be a string rather than bytes.
        """
        if 'stdout' in kwargs:
            raise ValueError('stdout argument not allowed, it will be overridden.')
    
        if 'input' in kwargs and kwargs['input'] is None:
            # Explicitly passing input=None was previously equivalent to passing an
            # empty string. That is maintained here for backwards compatibility.
            kwargs['input'] = '' if kwargs.get('universal_newlines', False) else b''
    
        return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
>                  **kwargs).stdout

kwargs     = {'shell': False}
popenargs  = (['sh', '-c', 'echo "Free Jeremy Hammond"; exit 42'],)
timeout    = None

/usr/lib/python3.6/subprocess.py:336: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

input = None, timeout = None, check = True
popenargs = (['sh', '-c', 'echo "Free Jeremy Hammond"; exit 42'],)
kwargs = {'shell': False, 'stdout': -1}
process = <subprocess.Popen object at 0x7f204ad30d68>
stdout = b'Free Jeremy Hammond\n', stderr = None, retcode = 42

    def run(*popenargs, input=None, timeout=None, check=False, **kwargs):
        """Run command with arguments and return a CompletedProcess instance.
    
        The returned instance will have attributes args, returncode, stdout and
        stderr. By default, stdout and stderr are not captured, and those attributes
        will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them.
    
        If check is True and the exit code was non-zero, it raises a
        CalledProcessError. The CalledProcessError object will have the return code
        in the returncode attribute, and output & stderr attributes if those streams
        were captured.
    
        If timeout is given, and the process takes too long, a TimeoutExpired
        exception will be raised.
    
        There is an optional argument "input", allowing you to
        pass a string to the subprocess's stdin.  If you use this argument
        you may not also use the Popen constructor's "stdin" argument, as
        it will be used internally.
    
        The other arguments are the same as for the Popen constructor.
    
        If universal_newlines=True is passed, the "input" argument must be a
        string and stdout/stderr in the returned object will be strings rather than
        bytes.
        """
        if input is not None:
            if 'stdin' in kwargs:
                raise ValueError('stdin and input arguments may not both be used.')
            kwargs['stdin'] = PIPE
    
        with Popen(*popenargs, **kwargs) as process:
            try:
                stdout, stderr = process.communicate(input, timeout=timeout)
            except TimeoutExpired:
                process.kill()
                stdout, stderr = process.communicate()
                raise TimeoutExpired(process.args, timeout, output=stdout,
                                     stderr=stderr)
            except:
                process.kill()
                process.wait()
                raise
            retcode = process.poll()
            if check and retcode:
                raise CalledProcessError(retcode, process.args,
>                                        output=stdout, stderr=stderr)
E               subprocess.CalledProcessError: Command '['sh', '-c', 'echo "Free Jeremy Hammond"; exit 42']' returned non-zero exit status 42.

check      = True
input      = None
kwargs     = {'shell': False, 'stdout': -1}
popenargs  = (['sh', '-c', 'echo "Free Jeremy Hammond"; exit 42'],)
process    = <subprocess.Popen object at 0x7f204ad30d68>
retcode    = 42
stderr     = None
stdout     = b'Free Jeremy Hammond\n'
timeout    = None

/usr/lib/python3.6/subprocess.py:418: CalledProcessError

During handling of the above exception, another exception occurred:

    @skip_unless_tools_exist('xxd')
    def test_with_compare_details_and_failed_process():
        output = 'Free Jeremy Hammond'
    
        class MockFile(FilesystemFile):
            def compare_details(self, other, source=None):
                subprocess.check_output(['sh', '-c', 'echo "%s"; exit 42' % output], shell=False)
                raise Exception('should not be run')
>       difference = MockFile(TEST_FILE1_PATH).compare(MockFile(TEST_FILE2_PATH))

MockFile   = <class 'tests.comparators.test_binary.test_with_compare_details_and_failed_process.<locals>.MockFile'>
output     = 'Free Jeremy Hammond'

tests/comparators/test_binary.py:150: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
diffoscope/comparators/utils/file.py:375: in compare
    output = re.sub(r'^', '    ', e.output, flags=re.MULTILINE)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

pattern = '^', repl = '    ', string = b'Free Jeremy Hammond\n', count = 0
flags = <RegexFlag.MULTILINE: 8>

    def sub(pattern, repl, string, count=0, flags=0):
        """Return the string obtained by replacing the leftmost
        non-overlapping occurrences of the pattern in string by the
        replacement repl.  repl can be either a string or a callable;
        if a string, backslash escapes in it are processed.  If it is
        a callable, it's passed the match object and must return
        a replacement string to be used."""
>       return _compile(pattern, flags).sub(repl, string, count)
E       TypeError: cannot use a string pattern on a bytes-like object

count      = 0
flags      = <RegexFlag.MULTILINE: 8>
pattern    = '^'
repl       = '    '
string     = b'Free Jeremy Hammond\n'

/usr/lib/python3.6/re.py:191: TypeError
------------------------------ Captured log setup ------------------------------
__init__.py                127 DEBUG    Loaded 65 comparator classes
------------------------------ Captured log call -------------------------------
command.py                  35 DEBUG    Executing xxd /tmp/testrun/.pybuild/pythonX.Y_3.6/build/tests/data/binary1
command.py                  35 DEBUG    Executing xxd /tmp/testrun/.pybuild/pythonX.Y_3.6/build/tests/data/binary2
diff.py                    177 DEBUG    Running diff -aU7 /tmp/tmpae_x662o_diffoscope/fifo1 /tmp/tmpae_x662o_diffoscope/fifo2
diff.py                    193 DEBUG    diff -aU7 /tmp/tmpae_x662o_diffoscope/fifo1 /tmp/tmpae_x662o_diffoscope/fifo2: returncode 1, parsed True
============= 1 failed, 366 passed, 18 skipped in 3744.30 seconds ==============
E: pybuild pybuild:283: test: plugin distutils failed with: exit code=1: cd /tmp/testrun/.pybuild/pythonX.Y_3.6/build; python3.6 -m pytest -vv -r sxX -l --cov=diffoscope --cov-report=term-missing --cov-report=html --junit-xml=/tmp/job-exports/test-results/tests.xml
dh_auto_test: pybuild --test --test-pytest -i python{version} -p 3.6 returned exit code 13
make: *** [debian/rules:35: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
debuild: fatal error at line 1152:
dpkg-buildpackage -rfakeroot -us -uc -ui failed
'/chroots/chroot-run-sid.PnrPP9KGg//tmp/job-exports/test-results' -> '<https://jenkins.debian.net/job/reproducible_diffoscope_from_git_master/ws/job-exports/test-results'>
'/chroots/chroot-run-sid.PnrPP9KGg//tmp/job-exports/test-results/tests.xml' -> '<https://jenkins.debian.net/job/reproducible_diffoscope_from_git_master/ws/job-exports/test-results/tests.xml'>
Thu  8 Mar 13:02:57 UTC 2018 - /srv/jenkins/bin/chroot-run.sh stopped running as /tmp/jenkins-script-cjKXJZB8, which will now be removed.
Build step 'Execute shell' marked build as failure



More information about the Qa-jenkins-scm mailing list