Polestar-manual Support Thread

Hier ein Support-Thread für das polestar-manual Projekt, um den „Bedienungsanleitung“ Thread zu entlasten.

Falls ihr einen Fehlerbericht zu dem Tool hier platzieren wollt, könnt ihr euch gern an das übliche Schema halten:

Zusammenfassung

(Kurze Beschreibung hier einfügen)

  • Wie kann der Fehler reproduziert werden?
  1. Schritt
  2. Schritt…
  • Was passiert, was hätte passieren sollen?

Technische Details

(Plattform, Browser, Smartphone, Hardware…)


Weitere Details

(Screenshots o.ä.)


rosboda18

leider immer noch im Prinzip der gleiche Fehler. Hab den LXC nochmals neu gebaut und alles neu eingerichtet. Sollen wir das evtl. außerhalb dieses Forums weiter „debuggen“?

LXC, sagst du? Da fehlt dann wohl die libnss, die von Chromium gebraucht wird. In deinem Fall sollte sudo apt install libnss3 helfen. Hab’s gerade auf einem meiner LXC Container probiert, läuft.

Ja, ein LXC unter Proxmox, Ubuntu 22 Server Template.
Habe erneut den Container frisch gemacht, libnss3 installiert und es erneut versucht, wieder ein anderer Fehler.
Christian, ich will dich nicht dauer-beschäftigen. Im Grunde ist das PDF aus deiner Dropbox für mich ausreichend. Es ist mehr der Trieb der Neugier, dass ich nun gerne wüsste, woran es liegt… Ich hätte also Verständnis dafür, wenn du sagst, dass dir das im Moment zuviel ist.

Jetzt der Fehler aus der Konsole:

(.venv) root@ubuntu22:~/polestar-manual# python main.py --chromium-binary 982481/chrome-linux/chrome

[WDM] - ====== WebDriver manager ======
[WDM] - There is no [linux64] chromedriver for browser  in cache
[WDM] - About to download new driver from https://chromedriver.storage.googleapis.com/101.0.4951.41/chromedriver_linux64.zip
[WDM] - Driver has been saved in cache [/root/.wdm/drivers/chromedriver/linux64/101.0.4951.41]
Traceback (most recent call last):
  File "/root/polestar-manual/main.py", line 37, in <module>
    pshtml2pdf.fetch_manual(args.url, workdir, args.chromium_binary)
  File "/root/polestar-manual/pshtml2pdf.py", line 254, in fetch_manual
    driver = setup_driver(tocurl, chrome_binary=chrome_binary)
  File "/root/polestar-manual/pshtml2pdf.py", line 40, in setup_driver
    driver = webdriver.Chrome(service=driver_service, options=driver_options)
  File "/root/polestar-manual/.venv/lib/python3.10/site-packages/selenium/webdriver/chrome/webdriver.py", line 70, in __init__
    super(WebDriver, self).__init__(DesiredCapabilities.CHROME['browserName'], "goog",
  File "/root/polestar-manual/.venv/lib/python3.10/site-packages/selenium/webdriver/chromium/webdriver.py", line 92, in __init__
    RemoteWebDriver.__init__(
  File "/root/polestar-manual/.venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py", line 275, in __init__
    self.start_session(capabilities, browser_profile)
  File "/root/polestar-manual/.venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py", line 365, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/root/polestar-manual/.venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py", line 430, in execute
    self.error_handler.check_response(response)
  File "/root/polestar-manual/.venv/lib/python3.10/site-packages/selenium/webdriver/remote/errorhandler.py", line 247, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally.
  (unknown error: DevToolsActivePort file doesn't exist)
  (The process started from chrome location 982481/chrome-linux/chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
Stacktrace:
#0 0x55d8b4576533 <unknown>
#1 0x55d8b42d51e8 <unknown>
#2 0x55d8b42f854a <unknown>
#3 0x55d8b42f3c4a <unknown>
#4 0x55d8b432ed0a <unknown>
#5 0x55d8b4328e33 <unknown>
#6 0x55d8b42fe71a <unknown>
#7 0x55d8b42ff875 <unknown>
#8 0x55d8b45bae1d <unknown>
#9 0x55d8b45be751 <unknown>
#10 0x55d8b45a507e <unknown>
#11 0x55d8b45bf388 <unknown>
#12 0x55d8b4599fe0 <unknown>
#13 0x55d8b45db748 <unknown>
#14 0x55d8b45db8c8 <unknown>
#15 0x55d8b45f570d <unknown>
#16 0x7ff888b98b43 <unknown>

Vielleicht sind es aber Settings des Containers selber. Es ist ein unprivilegierter LXC, nesting und keyctl=1

Mit dem basis ubuntu template hatte ich danach erst mal ein apt update && apt dist-upgrade gemacht, anschließend noch

apt install curl
apt install git
apt install unzip
apt install python3.10-venv
apt install libnss3

Ab dann gehe ich deine Steps einzeln durch und lande am Ende bei obigem Output…

Ach, das macht schon irgendwie Spaß. Sind ja noch nicht viele Supportanfragen bisher, da mache ich das gern.

Lässt du das Script mit root-Rechten laufen? Dann könnte es sich um dieses Problem hier handeln:

Schau mal ob du damit weiterkommst. Ich kann voraussichtlich erst morgen Nachmittag wieder reinschauen.

Ergänzung: Anhand deiner Liste oben sehe ich gerade, dass du in der Tat mit root-Rechten arbeitest. Die einfachste Lösung wäre daher vermutlich, dass du dir im Container einen neuen User anlegst. Dazu führst du nach deiner Liste (also nach dem Installieren von libnss3) das Folgende aus:

adduser rosboda18

Bei den Nachfragen nur das Passwort vergeben, den Rest einfach leer lassen. Anschließend mittels

su rosboda18

zu dem neuen User wechseln oder ausloggen und mit dem neuen User wieder einloggen.

Dann das Repo klonen usw.

Ja genau. Ist alles mit root. Ist nicht exponiert und würde eh nur laufen wenn ich grad mal ein neues manual ziehen wollte :grin:
Ja, bin noch nicht dazu gekommen, aber genau so werde ich es ausprobieren…
Danke dir
Melde mich dann wieder…

Tja, hat leider nicht geholfen:

(.venv) ps2@ubuntu22:~/polestar-manual$ python main.py --chromium-binary 982481/chrome-linux/chrome

[WDM] - ====== WebDriver manager ======
[WDM] - There is no [linux64] chromedriver for browser  in cache
[WDM] - About to download new driver from https://chromedriver.storage.googleapis.com/101.0.4951.41/chromedriver_linux64.zip
[WDM] - Driver has been saved in cache [/home/ps2/.wdm/drivers/chromedriver/linux64/101.0.4951.41]
Traceback (most recent call last):
  File "/home/ps2/polestar-manual/main.py", line 37, in <module>
    pshtml2pdf.fetch_manual(args.url, workdir, args.chromium_binary)
  File "/home/ps2/polestar-manual/pshtml2pdf.py", line 254, in fetch_manual
    driver = setup_driver(tocurl, chrome_binary=chrome_binary)
  File "/home/ps2/polestar-manual/pshtml2pdf.py", line 40, in setup_driver
    driver = webdriver.Chrome(service=driver_service, options=driver_options)
  File "/home/ps2/polestar-manual/.venv/lib/python3.10/site-packages/selenium/webdriver/chrome/webdriver.py", line 70, in __init__
    super(WebDriver, self).__init__(DesiredCapabilities.CHROME['browserName'], "goog",
  File "/home/ps2/polestar-manual/.venv/lib/python3.10/site-packages/selenium/webdriver/chromium/webdriver.py", line 92, in __init__
    RemoteWebDriver.__init__(
  File "/home/ps2/polestar-manual/.venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py", line 275, in __init__
    self.start_session(capabilities, browser_profile)
  File "/home/ps2/polestar-manual/.venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py", line 365, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/home/ps2/polestar-manual/.venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py", line 430, in execute
    self.error_handler.check_response(response)
  File "/home/ps2/polestar-manual/.venv/lib/python3.10/site-packages/selenium/webdriver/remote/errorhandler.py", line 247, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally.
  (unknown error: DevToolsActivePort file doesn't exist)
  (The process started from chrome location 982481/chrome-linux/chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
Stacktrace:
#0 0x55b75e561533 <unknown>
#1 0x55b75e2c01e8 <unknown>
#2 0x55b75e2e354a <unknown>
#3 0x55b75e2dec4a <unknown>
#4 0x55b75e319d0a <unknown>
#5 0x55b75e313e33 <unknown>
#6 0x55b75e2e971a <unknown>
#7 0x55b75e2ea875 <unknown>
#8 0x55b75e5a5e1d <unknown>
#9 0x55b75e5a9751 <unknown>
#10 0x55b75e59007e <unknown>
#11 0x55b75e5aa388 <unknown>
#12 0x55b75e584fe0 <unknown>
#13 0x55b75e5c6748 <unknown>
#14 0x55b75e5c68c8 <unknown>
#15 0x55b75e5e070d <unknown>
#16 0x7f09ff97ab43 <unknown>

Ich habe danach

 (unknown error: DevToolsActivePort file doesn't exist)

auch schon gesucht, aber noch nix gefunden, was mich weiterbringen würde. Irgendwo war auch was mit chromium default flags, aber das wäre jetzt nur ein wildes ausprobieren meinerseits.
Komischerweise gehts bei dir, bei mir aber nicht. Liegt es vielleicht doch am Unterbau, also am Server, der im Container läuft? Was verwendest du denn im LXC?

Im hab sowohl unter WSL als auch im LXC Ubuntu 20.04.4 LTS laufen. Bei beiden waren schon ein paar Pakete von anderen Projekte vorinstalliert, daher nicht ganz so roh wie dein neuer LXC.

Hab das nun mal selbst ausprobiert und mir einen 22er LXC frisch erstellt. In der Tat müssen ein paar Abhängigkeiten nachinstalliert werden, die auch eine normale Chromium Installation mit sich gezogen hätte:

sudo apt install libasound2 libatk-bridge2.0-0 libatk1.0-0 libatspi2.0-0 libcairo2 libcups2 libdbus-1-3 libdrm2 libexpat1 libgbm1 libgcc1 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libnss3 libpango-1.0-0 libpangocairo-1.0-0

Vermutlich könnte man das eine oder andere auch irgendwie einsparen. Ein paar von den X-libs habe ich schon weggelassen (weil headless…), mit dem Rest müsste man noch rumprobieren, um ggf. noch etwas einzusparen wenn man will. Aber so läuft es jedenfalls. Bin gespannt auf deine Rückmeldung!

Hallo Christian, sorry, war etwas beschäftigt und bin nicht gleich dazu gekommen.
Aber, ich kann Erfolg vermelden. So, wie du es jetzt in GitHub beschreibst, so funktioniert es nun bei mir, PDF wurde erzeugt.

Ich habe das übrigens unter Ubuntu Server 22.04 getestet.
Danke dir für deinen Support.

1 „Gefällt mir“