INDEX verschluckt sich nicht mehr

Bernhard Eversberg EV at buch.biblio.etc.tu-bs.de
Mo Apr 6 08:09:30 CEST 1998


Zuerst die gute Nachricht: der INDEX-Fehler fuehrt nicht zu Datenverlusten
oder -schaeden. Erneuerung der .TBL behebt das Problem. Mit Sniffer findet
man heraus, ob solche Faelle vorliegen.

Und nun die noch bessere Nachricht:
Der Fehler ist behoben.

Dank exzellenter Herausarbeitung des Problems durch Kollegen Berger
(mit eigens geschriebenen Perl-Programmen und allem) war es denn doch
nicht so schwer, die Loesung zu finden. Man musste nur darauf kommen,
dass eine Ungenauigkeit des Compilers vorliegt. In den fraglichen Faellen
wurde eine Datei, die schon etwas enthielt, mit dem Modus "append" 
geoeffnet. Dann setzt der Compiler den Dateizeiger noch nicht gleich ans
Ende, sondern erst dann, wenn ein Schreibbefehl kommt. Wenn man daher
die Schreibposition ermittelt (um sie in die .TBL einzutragen) dann erhaelt
man 0. Und so kam es zu dem Fehler.
Jetzt wird nach dem Oeffnen der Zeiger per Befehl ans Ende gesetzt, dann
ist alles ok. Das war die einzige Stelle, wo dieses noch nicht 
beruecksichtigt war. Es wurde halt davon ausgegangen, dass im Fall -n0
die Dateien wirklich inhaltlich erhalten bleiben. Das duerfte auch fast
immer der Fall sein, ausser man gibt zusaetzlich  -z  mit einer kleineren
Dateigroesse, oder man definiert in der CFG eine groessere Zahl von
Fuellzeichen:

> 
> > > Das Problem betrifft nicht nur -z, sondern auch, etwa wegen
> > > Fuellzeichenzahlen etwa, einzelne Datendateien groesser als
> > > 16.000.000 Bytes werden.
> > >

Ab sofort darf man sowas alles machen. INDEX.LZH ist erneuert.

MfG B.E.
Bernhard Eversberg
Universitaetsbibliothek, Postf. 3329, 
D-38023 Braunschweig, Germany
Tel.  +49 531 391-5026 , -5011 , FAX  -5836
e-mail  B.Eversberg at tu-bs.de  




Mehr Informationen über die Mailingliste Allegro