Das Forentreffen 2018 findet am 20./21. April in Dresden statt. Weitere Infos hier
Anmeldungen zum Forentreffen 2018 sind auf der Anmeldeseite möglich
Zur Homepage des Deutschsprachige Xbase-Entwickler e. V.
Xbase++-Wiki des Deutschsprachige Xbase-Entwickler e. V.

Fatal Error bei dbskip

Zugriff, Engines, Konvertierung. Von ADS über DBF bis zu SQL.

Moderator: Moderatoren

Antworten
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2307
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Kontaktdaten:

Fatal Error bei dbskip

Beitrag von Wolfgang Ciriack » Di, 04. Okt 2016 12:29

Hallo,
ich erzeuge in einer Schleife Rechnungen, dabei hatte ich schon mal ab und zu Abstürze. Jetzt habe ich mal einen Fall, bei dem ich das immer wieder nachvollziehen kann und ich eine xppfatal.log bekomme.

Code: Alles auswählen

FATAL ERROR LOG 
Error within the error handling!
SYS Thread-ID: 2088 
Module: EXE
Error Codes: EH: 5 Sub: -1073741819(c0000005) OS: 0 XPP: 41
Call Stack of Thread 1 (944):
...
Call Stack of Thread 5 (2440):
ERZEUGRA(1508)
In der Zeile 1508 steht:

Code: Alles auswählen

(oFakt:sel2)->(dbskip())
Indexdateien sind ok (vor der Rechnungserzeugung neu aufgebaut), oFakt:sel2 hat den richtigen Wert.
Es passiert immer an derselben Stelle, nachdem ca. 77% der zu erzeugenden Rechnungen abgearbeitet sind.
Es scheint an der Menge der zu erzeugenden Rechnungen zu liegen.
Mit Benutzung des ADS ist dieser Fehler noch nicht vorgekommen.

Kann mir jemand etwas zu diesem Fehlercode sagen ?
Viele Grüße
Wolfgang

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13811
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Fatal Error bei dbskip

Beitrag von brandelh » Di, 04. Okt 2016 12:45

ERROR WITHIN THE ERRORHANDLING !

es passiert irgendwas, das zu einem Fehler führt.
Dieser Fehler trifft in der vermutlich eigenen ErrorSys auf einen Fehler, der einen Endlosaufruf der Fehlerbehandlung erzeugt bis der Stack überläuft.

Du musst versuchen den Weg in deiner Fehlerbehandlung nachzuvollziehen.
In einem ähnlichen Fall habe ich eine STATIC eingebaut die die Error-Aufrufe mitzählt und beim 5. Aufruf dann abbricht.
Ich würde das jeweilige errorobjekt, das übergeben wurde in der LOG-File aufbröseln um zu sehen was die ursprüngliche Fehlermeldung war.
Gruß
Hubert

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 6828
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Fatal Error bei dbskip

Beitrag von Tom » Di, 04. Okt 2016 14:17

Irgendwo im Callstack bzw. in den Callstacks ist auch die ErrorSys zu finden bzw. der Codeblock, je nachdem. Dort ist der jetzt "tödliche Fehler". Der ursprüngliche, diesen verursachende Fehler ist vermutlich ein ganz anderer. Du machst im ErrorSys etwas, das in dieser Fehlersituation nicht mehr geht. Variablen sind nicht initialisiert, Tabellen nicht offen, Objekte nicht vorhanden, weiß der Geier. Was Du siehst, ist ein Folgefehler.
Herzlich,
Tom

Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2307
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Kontaktdaten:

Re: Fatal Error bei dbskip

Beitrag von Wolfgang Ciriack » Di, 04. Okt 2016 14:22

Hallo Hubert,
ich bekomme ein "Interne Datenstruktur beschädigt" als Fehler bei Operation dbskip()
Meine Vermutung, es liegt an der Datenmenge ist falsch, es liegt nur an einem bestimmten Datensatz.
Klammer ich den von der Rechnungslegung aus, läuft alles durch.
Beim Ansehen des Datensatzes ist mir kein Unterschied zu anderen aufgefallen.
Muss ich weiter untersuchen.
Viele Grüße
Wolfgang

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13811
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Fatal Error bei dbskip

Beitrag von brandelh » Di, 04. Okt 2016 14:25

Index hast du schon neu aufgebaut, kopier doch mal die Datei in eine neue um und teste mit der.
? (Plattenfehler, wobei der eigentlich den Sektor treffen sollte) ?

wie groß ist die Datei und sind Memofelder drinn ?
Gruß
Hubert

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10655
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Fatal Error bei dbskip

Beitrag von AUGE_OHR » Di, 04. Okt 2016 17:29

hi,

Hubert meint wohl
EXE = Expression Executer
* XppFatal Message: "Error within the error handling!"
- Error Codes: "EH: 5"/"Sub: -1073741819(c0000005)"/"XPP: 41"
- Error Codes: "EH: 1005"/"XPP: 15"
wenn die Stelle immer die selbe ist würde ich im Zweifel ein

Code: Alles auswählen

BEGIN SEQUENCE / RECOVER / END
einbauen und überprüfen ob das ALIAS dann noch aktive ist.
gruss by OHR
Jimmy

Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2307
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Kontaktdaten:

Re: Fatal Error bei dbskip

Beitrag von Wolfgang Ciriack » Di, 04. Okt 2016 19:25

@Hubert,
keine Memo, Größe ca. 26000 Datensätze, etwa 22500 KB.
Indexdateien werden vorher explizit neu aufgebaut.
Dieselbe Funktion mit Anbindung an ADS, und es gibt keinen Fehler.
Ich kann den Datensatz auch im Programm editieren, keine Fehler.
Eine Rechnungsvorschau (andere Funktion), die über dieselben Datensätze läuft, kein Fehler.
Nur in meiner Schleife, in der ich Rechnungsnummern in die Datenbank schreibe, bricht immer
an derselben Stelle, beim gleichen Datensatz ab.
Alles sehr merkwürdig.
Viele Grüße
Wolfgang

Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 13749
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Kontaktdaten:

Re: Fatal Error bei dbskip

Beitrag von Martin Altmann » Di, 04. Okt 2016 19:27

Wie sieht die betreffende Rechnungsnummer aus?
Wie ist die entsprechende Felddefinition?

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: http://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: http://meldungen.altem.de/

Mitglied der XUG Osnabrück
stellv. Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2307
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Kontaktdaten:

Re: Fatal Error bei dbskip

Beitrag von Wolfgang Ciriack » Di, 04. Okt 2016 20:07

Nochmals geprüft, die sind ok.
Baue ich nach dem Schreiben ein unlock ein (statt am Ende der Schleife), so kommt der Fehler schon da, nicht erst beim dbskip.
Viele Grüße
Wolfgang

Benutzeravatar
Werner_Bayern
Programmier-Gott
Programmier-Gott
Beiträge: 1302
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern

Re: Fatal Error bei dbskip

Beitrag von Werner_Bayern » Di, 04. Okt 2016 22:43

Servus Wolfgang,

deutet auch auf Netzwerkproblem und / oder Virenscanner hin. Kannst es testweise mal lokal laufen lassen und beim VS den EXE- und Datenpfad rausnehmen?
es grüßt euch

Werner

Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2307
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Kontaktdaten:

Re: Fatal Error bei dbskip

Beitrag von Wolfgang Ciriack » Mi, 05. Okt 2016 8:52

Kein Netzwerk, alles lokal. Mit ausgeschaltetem Virenscanner keine Änderung.
Viele Grüße
Wolfgang

Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2307
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Kontaktdaten:

Re: Fatal Error bei dbskip

Beitrag von Wolfgang Ciriack » Mi, 05. Okt 2016 9:06

Der Fatal Error kommt immer beim Zugriff auf den gleichen Datensatz (dbskip oder unlock oder gather).
Starte ich nach dem Fatal Error meine Rechnungslegung erneut, so kann er ohne Probleme den entsprechenden Datensatz verarbeiten. Habe schon ein sleep in die Schleife eingebaut, Zugriffe umgestellt, etc. alles ohne Erfolg.
Viele Grüße
Wolfgang

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 17082
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: Fatal Error bei dbskip

Beitrag von Manfred » Mi, 05. Okt 2016 9:07

das mag jetzt vielleicht doof klingen, aber was passiert, wenn Du den Satz verschiebst? Wandert dann der Fehler an diese Stelle mit? Nur mal um zu sehen, ob es am Inhalt liegt. Also wäre es der Inhalt, oder ist es die Recno(). Das meine ich.
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.

Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2307
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Kontaktdaten:

Re: Fatal Error bei dbskip

Beitrag von Wolfgang Ciriack » Mi, 05. Okt 2016 9:52

Ich denke, es muss am Inhalt liegen. Wenn ich ein paar weniger Lieferscheine zur Faktura auswähle, kommt der Fehler trotzdem an diesem Datensatz. Nächster Versuch wird mal sein, nur diesen Datensatz zu fakturieren.
Viele Grüße
Wolfgang

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13811
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Fatal Error bei dbskip

Beitrag von brandelh » Mi, 05. Okt 2016 9:59

Das macht auch mich stutzig, dass es immer an diesem Datensatz auftritt.
Ich kann mir aber keinen Inhalt vorstellen der das auslösen darf, außer einem ungültigen Verweis auf eine Memodatei (oder waren das Aufhänger ?).

Wenn durch den Inhalt oder die RecNo() jedoch anderer Code ausgeführt würde, als normal, könnte dort eine Ursache sein,
aber beim Rechnungserstellen ist das ja eher unwahrscheinlich.
Gruß
Hubert

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 17082
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: Fatal Error bei dbskip

Beitrag von Manfred » Mi, 05. Okt 2016 11:04

stimmt, er kommt an dem Datensatz, aber auch an der Recno(). Das eine schließt das andere nicht aus. Und wenn Du in einer Spielumgebung bis auf den Key alles aus dem Satz entfernst?
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13811
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Fatal Error bei dbskip

Beitrag von brandelh » Mi, 05. Okt 2016 11:30

was passiert eigentlich wenn du die Datei in der gleichen Umgebung mit einem Testprogramm aufrufst ...

Code: Alles auswählen

set alternate test.txt // als Protokoll

use DieDummeDBF *** // Parameter wie bei der anderen
if neterr()
   ? "neterr"
else 
   do while ! eof()
       ? recno(), ... Felder...
       dbskip
   enddo
endif
? "Ging doch !"
Gruß
Hubert

Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2307
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Kontaktdaten:

Re: Fatal Error bei dbskip

Beitrag von Wolfgang Ciriack » Mi, 05. Okt 2016 15:31

Also ich habe das jetzt reduziert auf 2 Lieferscheine, wenn diese beiden hintereinander fakturiert werden, tritt dieser Fehler auf, jetzt sogar mit Windowsmeldung "...funktioniert nicht mehr..".
Lesen der gesamten Datensätze in Schleife und Ausgabe an Bildschirm erzeugt keinen Fehler.
Lasse ich den einen Lieferschein davor weg, funktioniert alles.
Jetzt denke ich, werde ich doch mal eine komplett neue DBF erzeugen und die Datensätze einfügen.
Merkwürdig nur, das dieselbe Funktion nur mit ADS-Anbindung diesen Fehler nicht erzeugt...
Viele Grüße
Wolfgang

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13811
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Fatal Error bei dbskip

Beitrag von brandelh » Mi, 05. Okt 2016 16:00

rufst du in den Lieferscheinen fremde DLLs auf ?

Das soll ein Ursprung solcher Meldungen sein.
Gruß
Hubert

Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2307
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Kontaktdaten:

Re: Fatal Error bei dbskip

Beitrag von Wolfgang Ciriack » Mi, 05. Okt 2016 17:04

Nein.
Viele Grüße
Wolfgang

Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2307
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Kontaktdaten:

Re: Fatal Error bei dbskip

Beitrag von Wolfgang Ciriack » Mi, 05. Okt 2016 17:25

Es wird noch verrückter: Drehe ich die Schleife um (for i:=Ende to 1 STEP -1) kommt der Fehler nicht.
Viele Grüße
Wolfgang

Antworten