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: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Fatal Error bei dbskip

Beitrag von Wolfgang Ciriack »

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: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Fatal Error bei dbskip

Beitrag von brandelh »

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: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Fatal Error bei dbskip

Beitrag von Tom »

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: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Fatal Error bei dbskip

Beitrag von Wolfgang Ciriack »

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: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Fatal Error bei dbskip

Beitrag von brandelh »

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: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Fatal Error bei dbskip

Beitrag von AUGE_OHR »

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: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Fatal Error bei dbskip

Beitrag von Wolfgang Ciriack »

@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: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Fatal Error bei dbskip

Beitrag von Martin Altmann »

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: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Fatal Error bei dbskip

Beitrag von Wolfgang Ciriack »

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
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Fatal Error bei dbskip

Beitrag von Werner_Bayern »

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

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Fatal Error bei dbskip

Beitrag von Wolfgang Ciriack »

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: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Fatal Error bei dbskip

Beitrag von Wolfgang Ciriack »

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: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Fatal Error bei dbskip

Beitrag von Manfred »

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 Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Fatal Error bei dbskip

Beitrag von Wolfgang Ciriack »

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: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Fatal Error bei dbskip

Beitrag von brandelh »

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: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Fatal Error bei dbskip

Beitrag von Manfred »

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 Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Fatal Error bei dbskip

Beitrag von brandelh »

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: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Fatal Error bei dbskip

Beitrag von Wolfgang Ciriack »

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: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Fatal Error bei dbskip

Beitrag von brandelh »

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: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Fatal Error bei dbskip

Beitrag von Wolfgang Ciriack »

Nein.
Viele Grüße
Wolfgang
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Fatal Error bei dbskip

Beitrag von Wolfgang Ciriack »

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