You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The way I understand it the current approach to tracking GOOGLE_CHROME_CHANNEL fails to guarantee repeatability in deployments and violates the 12 Factor App approach. If Google updates the stable version then the same code deployed to the same heroku environment at a later time could break purely due to the time-based dependency. As far as I can tell the previous configuration would not be recoverable with a rollback either.
Example:
Headless rendering via this build pack was working fine for us on Cedar-14, then on a subsequent deploy it was broken.
Chromedriver would fall over with the following error:
I tried running chrome from the command line, but it also failed as follows.
~ $ /app/.apt/usr/bin/google-chrome-stable
/app/.apt/opt/google/chrome/chrome: /lib/x86_64-linux-gnu/libdbus-1.so.3: no version information available (required by /app/.apt/usr/lib/x86_64-linux-gnu/libatk-bridge-2.0.so.0)
/app/.apt/opt/google/chrome/chrome: /lib/x86_64-linux-gnu/libdbus-1.so.3: no version information available (required by /app/.apt/usr/lib/x86_64-linux-gnu/libatspi.so.0)
/app/.apt/opt/google/chrome/chrome: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /app/.apt/usr/lib/x86_64-linux-gnu/libmirclient.so.9)
/app/.apt/opt/google/chrome/chrome: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /app/.apt/usr/lib/x86_64-linux-gnu/libmirclient.so.9)
/app/.apt/opt/google/chrome/chrome: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /app/.apt/usr/lib/x86_64-linux-gnu/libmirclient.so.9)
/app/.apt/opt/google/chrome/chrome: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /app/.apt/usr/lib/x86_64-linux-gnu/libmircommon.so.7)
/app/.apt/opt/google/chrome/chrome: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /app/.apt/usr/lib/x86_64-linux-gnu/libmircommon.so.7)
/app/.apt/opt/google/chrome/chrome: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /app/.apt/usr/lib/x86_64-linux-gnu/libmircommon.so.7)
/app/.apt/opt/google/chrome/chrome: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /app/.apt/usr/lib/x86_64-linux-gnu/libmirprotobuf.so.3)
/app/.apt/opt/google/chrome/chrome: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /app/.apt/usr/lib/x86_64-linux-gnu/libmirprotobuf.so.3)
/app/.apt/opt/google/chrome/chrome: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /app/.apt/usr/lib/x86_64-linux-gnu/libmircore.so.1)
/app/.apt/opt/google/chrome/chrome: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /app/.apt/usr/lib/x86_64-linux-gnu/libmircore.so.1)
/app/.apt/opt/google/chrome/chrome: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /app/.apt/usr/lib/x86_64-linux-gnu/libboost_system.so.1.58.0)
/app/.apt/opt/google/chrome/chrome: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /app/.apt/usr/lib/x86_64-linux-gnu/libprotobuf-lite.so.9)
/app/.apt/opt/google/chrome/chrome: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /app/.apt/usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.58.0)
/app/.apt/opt/google/chrome/chrome: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /app/.apt/usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.58.0)
On a whim I decided to upgrade our dated stack Cedar-14 to Heroku-16 and everything seemed to work again. I'm assuming a new version of chrome stopped working on Cedar-14.
I don't see how I could possibly go back to the previous working version of our application with the way this buildpack currently handles version configuration.
The text was updated successfully, but these errors were encountered:
laverick
changed the title
Explicitly set Version
Explicitly set Version to ensure Deployment Repeatability
Jun 26, 2018
The way I understand it the current approach to tracking GOOGLE_CHROME_CHANNEL fails to guarantee repeatability in deployments and violates the 12 Factor App approach.
Yes, I tend to agree here. Unfortunately, Google only provides packages for their 3 release channels. They don't provide a way to download pre-built binaries of specific versions, which would be ideal to solve this problem. It is possible to download and build binaries for specific versions, but it's very resource intensive. So, at least for right now, we can't support version pinning.
Chromium does provide some version pinned packages which might make more sense to target repeatability. However, this buildpack targets Chrome, so maybe that's an idea for another buildpack.
On a whim I decided to upgrade our dated stack Cedar-14 to Heroku-16 and everything seemed to work again. I'm assuming a new version of chrome stopped working on Cedar-14.
I'm glad to hear it's working for you again. It's a good call to upgrade your stack anyway, Cedar-14 won't be around too much longer.
The way I understand it the current approach to tracking
GOOGLE_CHROME_CHANNEL
fails to guarantee repeatability in deployments and violates the 12 Factor App approach. If Google updates the stable version then the same code deployed to the same heroku environment at a later time could break purely due to the time-based dependency. As far as I can tell the previous configuration would not be recoverable with a rollback either.Example:
Headless rendering via this build pack was working fine for us on
Cedar-14
, then on a subsequent deploy it was broken.Chromedriver would fall over with the following error:
I tried running chrome from the command line, but it also failed as follows.
On a whim I decided to upgrade our dated stack
Cedar-14
toHeroku-16
and everything seemed to work again. I'm assuming a new version of chrome stopped working onCedar-14
.I don't see how I could possibly go back to the previous working version of our application with the way this buildpack currently handles version configuration.
The text was updated successfully, but these errors were encountered: