Page MenuHomePhabricator

thumbor-plugins offline tests don't work on Debian Stretch
Closed, ResolvedPublic

Description

I've been trying to run the offline tests for thumbor-plugins to finish adding tests for MPEG-1/MPEG-2 video passthrough support for T166024, with no luck.

Fresh Debian Stretch installation in a Parallels VM; attempted to run python setup.py install and did some manual package installs with apt where necessary.

More than half the tests with ./offline_tests.sh fail with an error like this:

thumbor: ERROR: ERROR: Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/thumbor-6.7.1-py2.7-linux-x86_64.egg/thumbor/handlers/__init__.py", line 153, in get_image
    self.context.request.image_url
  File "/usr/local/lib/python2.7/dist-packages/tornado-5.1.1-py2.7-linux-x86_64.egg/tornado/gen.py", line 1133, in run
    value = future.result()
  File "/usr/local/lib/python2.7/dist-packages/tornado-5.1.1-py2.7-linux-x86_64.egg/tornado/concurrent.py", line 261, in result
    raise_exc_info(self._exc_info)
  File "/usr/local/lib/python2.7/dist-packages/tornado-5.1.1-py2.7-linux-x86_64.egg/tornado/gen.py", line 1147, in run
    yielded = self.gen.send(value)
  File "/usr/local/lib/python2.7/dist-packages/thumbor-6.7.1-py2.7-linux-x86_64.egg/thumbor/handlers/__init__.py", line 629, in _fetch
    self.context.request.engine.load(fetch_result.buffer, extension)
  File "/home/parallels/src/wiki/thumbor-plugins/wikimedia_thumbor/engine/proxy/proxy.py", line 119, in load
    self.lcl[enginename].load(buffer, extension)
  File "/usr/local/lib/python2.7/dist-packages/thumbor-6.7.1-py2.7-linux-x86_64.egg/thumbor/engines/__init__.py", line 167, in load
    image_or_frames = self.create_image(buffer)
  File "/home/parallels/src/wiki/thumbor-plugins/wikimedia_thumbor/engine/imagemagick/imagemagick.py", line 77, in create_image
    self.read_exif(temp_file)
  File "/home/parallels/src/wiki/thumbor-plugins/wikimedia_thumbor/engine/imagemagick/imagemagick.py", line 151, in read_exif
    input_temp_file=input_temp_file
  File "/home/parallels/src/wiki/thumbor-plugins/wikimedia_thumbor/exiftool_runner/__init__.py", line 52, in command
    code, stderr, stdout = ShellRunner.command(command, context)
  File "/home/parallels/src/wiki/thumbor-plugins/wikimedia_thumbor/shell_runner/__init__.py", line 81, in command
    proc = cls.popen(command, context, env)
  File "/home/parallels/src/wiki/thumbor-plugins/wikimedia_thumbor/shell_runner/__init__.py", line 72, in popen
    preexec_fn=partial(cls.preexec, context)
  File "/usr/lib/python2.7/subprocess.py", line 390, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1024, in _execute_child
    raise child_exception
TypeError: coercing to Unicode: need string or buffer, NoneType found

thumbor: ERROR: [BaseHandler] get_image failed for url `/home/parallels/src/wiki/thumbor-plugins/tests/integration/originals/2010-07-14-Blitze-Zeitlupe-1-08.ogg`. error: `coercing to Unicode: need string or buffer, NoneType found`
tornado.access: ERROR: 500 GET /thumbor/unsafe/640x//home/parallels/src/wiki/thumbor-plugins/tests/integration/originals/2010-07-14-Blitze-Zeitlupe-1-08.ogg (127.0.0.1) 139.21ms

Full output:

Event Timeline

With all the dependencies it's really hard to know what's going wrong. I've put together this docker image that should help: https://wikitech.wikimedia.org/wiki/Thumbor#Local_development

It's basically the base Debian Stretch docker image pointed at Wikimedia APT repo according to the instructions on https://wikitech.wikimedia.org/wiki/APT_repository and then installing python-thumbor-wikimedia, git, python-pyssim, python-nose with APT + checking out the plugins master into /srv/thumbor-plugins

Gilles claimed this task.

Contributors and reviewers seem to have been happy with the Docker image lately.