gaffneyc / heroku-buildpack-jemalloc

Heroku buildpack that installs the Jemalloc memory allocator
BSD 3-Clause "New" or "Revised" License
248 stars 75 forks source link

Request: add support for heroku-buildpack-chrome-for-testing #36

Open naoyanickf opened 3 months ago

naoyanickf commented 3 months ago

Latest version of jemalloc doesn't work with heroku-buildpack-chrome-for-testing

Please refer this thread

Chromedriver Segmentation fault when used with jemalloc buildpack https://github.com/heroku/heroku-buildpack-chrome-for-testing/issues/18

gaffneyc commented 3 months ago

What change do you think needs to be made to the buildpack to support the chrome-for-testing buildpack? Is this only an issue with the heroku-20 stack which was recently deprecated or are you also seeing it on heroku-22 and heroku-24?

A work around would be not to set the JEMALLOC_ENABLED environment variable and instead us jemalloc.sh to run only the processes you want using jemalloc.

lucafrollo commented 1 month ago

Hi. I tested the buildpack above with heroku-22 and I am getting the same errors we get in heroku-20. We are getting intermittent errors launching Chrome via Puppeteer.

If we use the old deprecated heroku Chrome buildpack, then we do not get any errors in either heroku-20 or heroku-22.

The only visible difference (excluding the shims which I replicated with the new buildpack) I can see in the old buildpack code is at this line where the old buildpack does

unset LD_PRELOAD

I would not know how to do that though without forking the new buildpack. We are already using jmalloc.sh but Chrome/Puppeteer are invoked within both our dynos so no workaround there.

It is an unfortunate situation as we cannot currently upgrade to heroku-24 because of this issue as the old buildpack is not supported there.