Seite 1 von 1

XbZLib funktioniert nicht mehr [Problem erkannt]

Verfasst: Mo, 10. Dez 2018 16:08
von ramses
Hallo

neuderdings funktioniert die UnCompress Funktion von der XbZlib nicht mehr.
Wenn ich z.B. versuche eine ZIP Datei auszupacken die eine einzige .txt Datei enthält erscheint im Log der Fehler:

Error Code: -5 -- Output Buffer too small (ZLib Error Code)!

Und eine Datei mit 0 Bytes ist erstellt.
Dateigrösse der ZIP Datei ist 70 kBytes die Originalgrösse der enthaltenen Datei 800 kBytes.
Mit Windows kann die Datei problemlos "entpackt" werden.

Kennt dieses Problem schon jemand?

Gruss Carlo

Re: XbZLib funktioniert nicht mehr

Verfasst: Di, 11. Dez 2018 11:00
von ramses
Hallo

vielleicht hilft es ja mal jemandem sich einige Stunden "Problemsuche" zu ersparen....

Ich konnte das Problem eingrenzen und auch lösen.

Der Fehler tritt auf:
- mit ZIP Dateien von externer Stelle (Rechencenter) erstellt
- XbZlib läuft mit der ZLib1.dll 1.2.11.0

Selbst mit Windows oder XbZlib gepackte Dateien zeigen keine Fehler.

Lösung:

Anstelle der aktuellen die ältere zlib1.dll 1.2.8.0 oder früher verwenden. Dann tritt das Problem nicht auf.


Gruss Carlo

Re: XbZLib funktioniert nicht mehr [Problem erkannt]

Verfasst: Di, 11. Dez 2018 11:35
von Tom
Wir hatten kürzlich ein Dekompressionsproblem in/mit unseren Mobilapps (Cordova/React, JS/HTML/CSS), und das Problem - ein Pufferüberlauf mit nachfolgend nur teilweise extrahierten Daten - lag daran, dass die Originaldatei extrem redundant war, dass also ein sehr großer Teilbereich sehr stark verdichtet wurde. Beim Entpacken lief da ein offensichtlich 8-bittiger Puffer(zeiger?) über. Als das Verfahren bzw. der Dekompressionsalgorithmus auf 16 Bit umgestellt wurde, war der Fehler weg. Er war aber vorher bei vielen tausend Dekompressionsvorgängen nie aufgetreten, weil diese besonders hohe Redundanz einfach vorher nie vorhanden war.

Re: XbZLib funktioniert nicht mehr [Problem erkannt]

Verfasst: Di, 11. Dez 2018 12:21
von brandelh
ich hab hier die 1.2.5 ... zum Glück nie über Updates nachgedacht ;-)

Re: XbZLib funktioniert nicht mehr [Problem erkannt]

Verfasst: Di, 11. Dez 2018 12:45
von mini990
Gab es bei diesen alten Versionen nicht ein Problem mit großen Dateien?
Ich glaube mich zu erinnern dass da was mit 2GB war...

Ich setze die Version 2.3 ein. Funktioniert bei mir ohne Probleme.

Gruß Stefan

Re: XbZLib funktioniert nicht mehr [Problem erkannt]

Verfasst: Di, 11. Dez 2018 13:20
von ramses
@Tom
Irgend so etwas wird es sein. In der ZLib 1.2.9.0 wurden die un- / compress Funktionen optimiert. Es wird aber empfohlen diese und die nächste wegen Fehlern nicht zu verwenden und gleich auf die 1.2.11.0 zu wechseln. Das merkwürdige ist dass die uncompress Funktion eigenlich die korrekt ausgepackte Datei zurückgibt in richtiger Länge aber zusätzlich auch noch eine Fehlermeldung .... Die betroffenen ZIP Dateien konnte ich selbst nicht so klein erstellen. Wenn ich die enthaltene Datei packe war das selbst erstellt ZIP File immer wesentlich grösser.

@Stefan
Die Version bezieht sich nicht auf XbZLib sondern auf die zLib1.dll die durch die XbZLib 2.3 und einige andere Tools / Funktionen verwendet wird.
Die aktuelle zLib1.dll ist 1.2.11.0. höhere/neuere gibt es nicht. siehe zlib.net
Es sind 2 verschiedene Programme/Versionen. Das 2GB Problem hat XbZLib (AGP) in der Version 2.0 behoben.

Gruss Carlo

Re: XbZLib funktioniert nicht mehr [Problem erkannt]

Verfasst: Di, 11. Dez 2018 13:23
von AUGE_OHR
ramses hat geschrieben: Mo, 10. Dez 2018 16:08 Mit Windows kann die Datei problemlos "entpackt" werden.
dann nimm doch die Windows API Function ;)

Code: Alles auswählen

FUNCTION Unzip(cZipFile, cDestFolder)
LOCAL oShell, oZIP, oNameDest
   oShell    := CreateObject("Shell.Application")
   oZIP  := oShell:NameSpace(cZipFile)
   oNameDest := oShell:NameSpace(cDestFolder)
   oNameDest:CopyHere(oZIP:items(), 0x10)
   // besser cDestFolder Anzahl Files gegen oZIP:items():Count() prüfen
   SLEEP(100)  
   oShell:destroy()
   oShell := NIL
RETURN NIL
p.s. auch in einer der Windows 10 Versionen gab es doch letztens ein ZIP Problem ...

Re: XbZLib funktioniert nicht mehr [Problem erkannt]

Verfasst: Di, 11. Dez 2018 13:28
von brandelh
hier sind die Infos zur zlib1.dll (Version 1.x):

http://www.winimage.com/zLibDll/
http://www.zlib.net/

Re: XbZLib funktioniert nicht mehr [Problem erkannt]

Verfasst: Di, 11. Dez 2018 13:33
von ramses
Hallo Jimmy
dann nimm doch die Windows API Function ;)
Davor fürchte ich mich!

Vor

Code: Alles auswählen

CreateObject("Shell.Application")
um es genau zu bezeichnen.

Gruss Carlo

Re: XbZLib funktioniert nicht mehr [Problem erkannt]

Verfasst: Mi, 12. Dez 2018 4:52
von AUGE_OHR
hi,
ramses hat geschrieben: Di, 11. Dez 2018 13:33 Davor fürchte ich mich!
Vor

Code: Alles auswählen

CreateObject("Shell.Application")
um es genau zu bezeichnen.
benutzt du unter Windows nicht den Explorer :?:

mit "Shell.Application" kommt man an all das was der Explorer kann inklusive ZIP.

Re: XbZLib funktioniert nicht mehr [Problem erkannt]

Verfasst: Mi, 12. Dez 2018 6:08
von ramses
Hi JImmy
benutzt du unter Windows nicht den Explorer
Sicher doch. Aber nicht nur ....

Zur Sache: die ZIP Unpack Funktion läuft in einem XBase-Programm das als Dienst gestartet die Server Aufgaben für eine Web-App bereitstellt. Es ist durchausmöglich dass auch mehrere zip und unzip-Aufrufe gleichzeitig erfolgen. Ich fürchte mich vor möglichen Problemen und Sorgen die kommen könnten wenn ich in diesem Umfeld das ganze geZIPe auf Shell.App Aufrufe umstelle. Das aktuelle Konstrukt ist nun lange im Einsatz und läuft ..... eine bestimmte hatte gestern 4891 Seitenaufrufe mit 2.170 GB Datentransfer (RX+TX)....

Gruss Carlo

Re: XbZLib funktioniert nicht mehr [Problem erkannt]

Verfasst: Mi, 12. Dez 2018 8:23
von brandelh
Läuft das shell.app... nicht über ActiveX ?

Lahm und fehleranfällig, hinzu kommt, dass man nie weiß ob M$ grad mal wieder was anders haben will ;-)