Ruby / Watir / Selenium probléma

Sziasztok.

Van egy Sinatrában megírt webalkalmazás, aminek időnként más oldalakról kell pdf doksikat letölteni.
Ehhez a Watir gem-et használom az alábbi módon:

    profile = Selenium::WebDriver::Firefox::Profile.new
    profile['browser.download.dir'] = workdir
    profile['browser.download.folderList'] = 2
    profile['browser.helperApps.neverAsk.saveToDisk'] = 'application/pdf'
    profile["pdfjs.disabled"] = true
    profile["pdfjs.firstRun"] = false

    browser = Watir::Browser.new :firefox, headless: true, options: {profile: profile}

    url_list.each do |url|
      browser.goto url
      browser.execute_script 'AdatBetolto()'
      browser.button(id: 'PDFLetoltes').wait_until(&:enabled?).click
    end
    while ( Dir["#{workdir}/*.crdownload"].count>0 || Dir["#{workdir}/*.pdf"].count<documents.count) do
      sleep 0.3
    end
    browser.close

Az egész egy Alpine Linuxból összerakott docker konténerben fut.
Mivel a chromium + chromium-chromedriver gyakran kifagyott, ezért firefox + geckodriver párost tettem fel.

Ahol fejlesztettem, (natív vason futó Debian 10.13, docker-ce 20.10.18, zfs) minden rendben ment.
Az éles rendszerben (xen-ben futó Debian 11.5, docker.io 20.10.5, overlayfs) viszont sajnos százával gyűlnek fel WebExtension és Web Content nevű zombi  processzek, ami miatt kénytelen vagyok rendszeresen újraindítani a konténert.

/ # ps aux
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.2  1.4 197768 119968 ?       Ssl  21:06   0:04 /usr/local/bin/ruby /www/main.rb
root          76  0.2  0.0      0     0 ?        Z    21:36   0:01 [Web Content] <defunct>
root          96  0.1  0.0      0     0 ?        Z    21:36   0:00 [WebExtensions] <defunct>
root         164  0.0  0.0      0     0 ?        Z    21:36   0:00 [Web Content] <defunct>
root         254  0.3  0.0      0     0 ?        Z    21:38   0:01 [Web Content] <defunct>
root         277  0.1  0.0      0     0 ?        Z    21:38   0:00 [WebExtensions] <defunct>
root         337  0.0  0.0      0     0 ?        Z    21:38   0:00 [Web Content] <defunct>
root         369  0.0  0.0   1664  1056 pts/0    Ss   21:41   0:00 /bin/sh
root         383  0.0  0.0   1708   828 pts/0    R+   21:44   0:00 ps aux


/ # pstree -p
ruby(1)-+-Web Content(76)
        |-Web Content(164)
        |-Web Content(254)
        |-Web Content(337)
        |-WebExtensions(96)
        |-WebExtensions(277)
        |-{background_thr*}(7)
        |-{background_thr*}(8)
        |-{background_thr*}(10)
        `-{utils.rb:158}(12)

Az éles rendszer kialakítására sajnos nincs ráhatásom, én csak a docker image-et adom.
Ettől függetlenül meglepne, ha a két hosting rendszer közötti különbség ilyen szinten beleszólna a konténer működésébe.
Mit lehetne még szoftver oldalról tenni, hogy ne szaporodjanak a zombik?

Hozzászólások

Egy szimpla http letöltéshez miért kell böngésző?

Szerkesztve: 2022. 10. 18., k – 12:55

-- Törölve. Dupla.