Fontconfig error on node:10-browsers


#1

Hi,

My ember.js app’s tests do not run at all with the image node:10-browsers.
Fontconfig warning: “/etc/fonts/fonts.conf”, line 100: unknown element “blank”

Here’s the error log

message: >
            Error: Browser exited unexpectedly
            Non-zero exit code: null
            Stderr: 
             Fontconfig warning: "/etc/fonts/fonts.conf", line 100: unknown element "blank"
            
            DevTools listening on ws://127.0.0.1:34662/devtools/browser/60da2d32-5fb9-40f5-a9af-ebaa3db48eca
            [0315/160159.843107:FATAL:gpu_data_manager_impl_private.cc(892)] The display compositor is frequently crashing. Goodbye.
            Failed to generate minidump.
            
        Log: |
            { type: 'error', text: 'Error: Browser exited unexpectedly' }
            { type: 'error', text: 'Non-zero exit code: null' }
            { type: 'error',
              text:
               'Fontconfig warning: "/etc/fonts/fonts.conf", line 100: unknown element "blank"\n\nDevTools listening on ws://127.0.0.1:34662/devtools/browser/60da2d32-5fb9-40f5-a9af-ebaa3db48eca\n[0315/160159.843107:FATAL:gpu_data_manager_impl_private.cc(892)] The display compositor is frequently crashing. Goodbye.\nFailed to generate minidump.' }

Everything works great with node:10.14-browers

Could this be the docker image is broken?


#2

I’m getting this too. It looks like the image changed some time in the last few days. Builds worked fine on Wednesday but are broken today with this error.


#3

Hi @bartocc,

The circleci/node:10-browsers image isn’t the same thing as circleci/node:10.14-browsers. Currently it points to circleci/node:10.15.3-browsers.

Does your app work with that image? If it does, then something might be wrong with the 10-browsers tag. If it doesn’t, a change in Node or the upstream Docker image is what’s causing this.


#4

Here are the Dockerfiles for our Node images:

Most of the 10.x.y images have not changed in months. It’s possible the error is the result of a change in an upstream dependency included in the image, but it’s hard to say.

@FelicianoTech’s question is a good one. You can also find old jobs that were successful and pin the sha256 of the image that was used in those jobs in your config.yml file.

If you can definitively point this issue to something in our images code, please open an issue here:

Thank you!


#5

I am experiencing the same with the image circleci/node:8-browsers. as well as with circleci/node:10-browsers. Everything worked fine on Friday.


#6

Would this do anything for you? Trying it, right now. https://github.com/GoogleChrome/puppeteer/issues/3774#issuecomment-473423882

This worked for my build.

  docker:
-    - image: circleci/node:10-browsers
+    - image: circleci/node:10.14-browsers

Update: If you can use the below testem.js change instead of this, do that!


#7

Hmm, I played around with this a bit (since another project using the same image did build just fine), and apparently the reason was a different testem config.

The non-working config was:

module.exports = {
  test_page: 'tests/index.html?hidepassed',
  disable_watching: true,
  launch_in_ci: ['Chrome'],
  launch_in_dev: ['Chrome'],
  browser_args: {
    Chrome: {
      ci: [
        // --no-sandbox is needed when running Chrome inside a container
        process.env.CI ? '--no-sandbox' : null,
        '--headless',
        '--disable-gpu',
        '--disable-dev-shm-usage',
        '--disable-software-rasterizer',
        '--mute-audio',
        '--remote-debugging-port=0',
        '--window-size=1440,900'
      ].filter(Boolean)
    }
  }
};

I’ve changed it to the one from the working project:

module.exports = {
  test_page: 'tests/index.html?hidepassed',
  disable_watching: true,
  launch_in_ci: ['Chrome'],
  launch_in_dev: ['Chrome'],
  browser_args: {
    Chrome: {
      mode: 'ci',
      args: [
        // --no-sandbox is needed when running Chrome inside a container
        process.env.CI ? '--no-sandbox' : null,

        '--disable-gpu',
        '--headless',
        '--remote-debugging-port=0',
        '--window-size=1440,900'
      ].filter(Boolean)
    }
  }
};

Now, it is building again. I guess the newer Chrome version does not like that anymore, for whatever reason…


#8

Seems like for us removing simply '--disable-dev-shm-usage' did the job.

Your reply was very helpful nonetheless, thanks a lot. :slight_smile:


#9

Great to see folks sharing suggestions and being helped!

@bartocc can you reply if any of the suggestions above helped?


#10

Haven’t had the time to test yet, but I’ll report back as soon as possible


#11

I can confirm that removing '--disable-dev-shm-usage' from the Chrome ci config in testem.js fixed the Fontconfig error for my app.

Just to note that I was experiencing this issue with the node:8-browsers image.