clawsoftware / clawPDF

Open Source Virtual (Network) Printer for Windows that allows you to create PDFs, OCR text, and print images, with advanced features usually available only in enterprise solutions.
https://github.com/clawsoftware/clawPDF
GNU Affero General Public License v3.0
731 stars 156 forks source link

clawPDF cannot add printer and therefore installation cannot be finished successfully #94

Open ChristophSchmid10 opened 1 year ago

ChristophSchmid10 commented 1 year ago

Hi there,

we have a problem during the installation of clawPDF. Each time the installation stops at a certain point and does not furhter continue.

This is the error message in the event viewer (in german):

Produkt: clawPDF 0.9.2 -- Fehler 1722. Es liegt ein dieses Windows Installer-Paket betreffendes Problem vor. Ein Programm, das im Rahmen der Installation ausgeführt wurde, wurde nicht erfolgreich abgeschlossen. Wenden Sie sich an das Supportpersonal oder den Hersteller des Pakets. Aktion: _AE9DE45B_B3A6_4FDE_A590_6C00DCB0598B, Pfad: C:\Program Files (x86)\clawpdf\SetupHelper.exe, Befehl: /Driver=Remove

Attached is the log from the installer. After killing the installing process the whole clawPDF directory get's deleted.

I'm using Windows 11; Claw 0.9.2 Can someone help us? Best regards.

log (1).txt

luca-sonntag commented 1 year ago

I have the same problem. The installation of clawPDF seems to hang at SetupHelper.exe /Driver=Remove and after about 1-2 minutes the setup crashes with the same error. It would be good if there was a solution.

ChristophSchmid10 commented 1 year ago

We can now narrow down the problem a bit. The installation of clawPDF 0.9.3 cannot be completed on said device.

After some investigation and debugging we could find out that the problem is probably the termination of the spooler service (see clawPDF/src/SetupHelper/Helper/Spooler.cs Line 17). Stopping (and starting) the spooler service can take longer than the assumed timeout of 60 seconds in some cases, as we have found out. At clawPDF/src/SetupHelper/Driver/Actions.cs Line 40-41 the service is stopped and restarted one after the other. The return value of Process.Start(...).WaitForExit(...) (Spooler.stop()) is not considered here. If the termination here takes longer than 60 seconds, an attempt is made to start the service, although it has not yet finished. Error handling could possibly be improved here. A simple solution for us would be to increase the timeouts in Spooler.cs to e.g. 5 minutes.

 

If our assumptions on the code and our problem are not correct, we are sorry, we just skimmed the source code.

 

We look forward to a reply and hopefully a solution to our problem.

Marcel2508 commented 1 year ago

I seem to have the same problem. Any update on this already?