question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

map gets flipped on x-axis running on Alpine with Chromium 80 using Xvfb

See original GitHub issue

Description

For a project of mine I use some automated headless test-setup, where a build-server does end-to-end testing. After an upgrade to the latest chromium-version provided by Alpine-Linux edge a lot of tests broke, because the integrated deck.gl based map now is mirrored/flipped on x-axis.

Repro Steps

  • you need to have a working Docker-setup locally/remote
  • use the following as Dockerfile_311 content
FROM alpine:3.11
RUN apk add --no-cache \
    bash \
    nss \
    ttf-freefont \
    udev \
    mesa-gles \
    mesa-dev \
    mesa-osmesa \
    mesa-dri-swrast \
    xvfb \
    chromium \
    chromium-chromedriver

RUN mkdir -p /usr/lib/chromium/swiftshader/
RUN ln -s /usr/lib/libEGL.so /usr/lib/chromium/swiftshader/libEGL.so
RUN ln -s /usr/lib/libGLESv2.so.2 /usr/lib/chromium/swiftshader/libGLESv2.so
RUN ln -s /usr/lib/libOSMesa.so.8 /usr/lib/chromium/libosmesa.so

VOLUME /opt/export

WORKDIR /opt/export
  • create a docker-image docker build -f ./Dockerfile_311 -t deckglbug:alpine311
  • use the following as Dockerfile_edge content
FROM alpine:edge
RUN apk add --no-cache \
    bash \
    nss \
    ttf-freefont \
    udev \
    mesa-gles \
    mesa-dev \
    mesa-osmesa \
    mesa-dri-swrast \
    xvfb \
    chromium \
    chromium-chromedriver

RUN mkdir -p /usr/lib/chromium/swiftshader/
RUN ln -s /usr/lib/libEGL.so /usr/lib/chromium/swiftshader/libEGL.so
RUN ln -s /usr/lib/libGLESv2.so.2 /usr/lib/chromium/swiftshader/libGLESv2.so
RUN ln -s /usr/lib/libOSMesa.so.8 /usr/lib/chromium/libosmesa.so

VOLUME /opt/export

WORKDIR /opt/export
  • create a docker-image docker build -f ./Dockerfile_edge -t deckglbug:alpineedge
  • after all images were build, please create some export-folder to mount into the docker-containers later
  • to verify it is working, create a temporary docker-container: docker run --rm -ti -v $(pwd)/export:/opt/export deckglbug:alpine311 /bin/bash
  • (inside the container) please start a virtual framebuffer with WebGL-extension: Xvfb :1 -screen 0 1024x768x24 -ac +extension GLX +render -noreset &
  • (inside the container)just to make sure, export the display export DISPLAY=":1"
  • (inside the container) to (finally) create the first screenshot, please execute this command (the parameters are part of our test-setup): chromium-browser --no-sandbox --use-gl=swiftshader --ignore-gpu-blacklist --disable-extensions --ignore-certificate-errors --disable-dev-shm-usage --force-device-scale-factor=1 --headless --window-size=1920,1080 --disable-gpu --screenshot https://deck.gl/
  • (inside the container) to access the screenshot, you need to give permissions (danger: unsecure permissions here): chmod 0666 screenshot.png
  • (inside the container) now quit/stop the docker-container (should cleanup itself): exit
  • check the created screenshot, it should look okay (please ignore the CSS-stuff, look at the map, it should be “normal”)
  • to now see the bug appearing, create a different temporary docker-container: docker run --rm -ti -v $(pwd)/export:/opt/export deckglbug:alpineedge /bin/bash
  • (inside the alpineedge container) please start a virtual framebuffer with WebGL-extension: Xvfb :1 -screen 0 1024x768x24 -ac +extension GLX +render -noreset &
  • (inside the alpineedge container)just to make sure, export the display export DISPLAY=":1"
  • (inside the alpineedge container) to (finally) create the second screenshot, please execute this command (the parameters are part of our test-setup): chromium-browser --no-sandbox --use-gl=swiftshader --ignore-gpu-blacklist --disable-extensions --ignore-certificate-errors --disable-dev-shm-usage --force-device-scale-factor=1 --headless --window-size=1920,1080 --disable-gpu --screenshot https://deck.gl/
  • (inside the alpineedge container) to access the screenshot, you need to give permissions (danger: unsecure permissions here): chmod 0666 screenshot.png
  • (inside the alpineedge container) now quit/stop the docker-container (should cleanup itself): exit
  • check the created screenshot, it should look broken, the city is “upside down”

Environment:

  • Framework: deck.gl 8.1.1 (the deck.gl website currently resolves to that)
  • Browser Version (not working): Chromium 80.0.3987.132-r2
  • Browser Version (working): Chromium 79.0.3945.130-r0
  • OS (working): Alpine Linux 3.11
  • OS (not working): Alpine Linux Edge

Logs

no relevant logs could be gathered

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Reactions:1
  • Comments:8 (1 by maintainers)

github_iconTop GitHub Comments

1reaction
1chanducommented, Apr 1, 2020

Can you verify if actual rendering of deck.gl is fine (without your automated test setup), if so this could be an issue with how the test result is captured and compared?

0reactions
FibreFoXcommented, May 11, 2020

Short Update from my side: this seems to be “fixed” with Chromium 81 on Alpine … no idea why this happened, but are happy that this is working with swiftshader again.

Read more comments on GitHub >

github_iconTop Results From Across the Web

map gets flipped on x-axis running on Alpine with Chromium ...
Description For a project of mine I use some automated headless test-setup, where a build-server does end-to-end testing.
Read more >
Untitled
Addlestone surrey map, Veni vidi vici menu, Rozpravka o kozliatkach youtube, ... Occupations for kids, Breathe carolina hit and run mp3 zippy, Women's...
Read more >
changelog.txt - X.Org
Jeremy Huddleston (7): darwin: Don't use poll() when expected to run on darwin10 and prior configure: Bump version to 1.1.0 for release LP64...
Read more >
DSp - ALBA.Net
937 reinli st austin tx, Macon whoopee baseball, Monate auf englisch in excel, ... 80s hit news more greatest hits, Zandu vigorex price...
Read more >
man.txt - XFree86
DESCRIPTION XFree86 is a full featured X server that was originally designed for UNIX and UNIX-like operating systems running on Intel x86 hardware....
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found