Fatal Error bei dbskip

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

Moderator: Moderatoren

Fatal Error bei dbskip

Beitragvon 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
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2235
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin

Re: Fatal Error bei dbskip

Beitragvon 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
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13388
Registriert: Mo, 23. Jan 2006 21:54
Wohnort: Germersheim

Re: Fatal Error bei dbskip

Beitragvon 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
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 6708
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin

Re: Fatal Error bei dbskip

Beitragvon 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
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2235
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin

Re: Fatal Error bei dbskip

Beitragvon 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
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13388
Registriert: Mo, 23. Jan 2006 21:54
Wohnort: Germersheim

Re: Fatal Error bei dbskip

Beitragvon 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
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10280
Registriert: Do, 16. Mär 2006 8:55
Wohnort: Hamburg

Re: Fatal Error bei dbskip

Beitragvon 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
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2235
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin

Re: Fatal Error bei dbskip

Beitragvon 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
Martin Altmann
Foren-Administrator
Foren-Administrator
 
Beiträge: 12969
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin

Re: Fatal Error bei dbskip

Beitragvon 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
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2235
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin

Re: Fatal Error bei dbskip

Beitragvon 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
Werner_Bayern
Programmier-Gott
Programmier-Gott
 
Beiträge: 1224
Registriert: Sa, 30. Jan 2010 23:58
Wohnort: Niederbayern

Re: Fatal Error bei dbskip

Beitragvon 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: 2235
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin

Re: Fatal Error bei dbskip

Beitragvon 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
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2235
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin

Re: Fatal Error bei dbskip

Beitragvon 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
Manfred
Foren-Moderator
Foren-Moderator
 
Beiträge: 16254
Registriert: Di, 29. Nov 2005 17:58
Wohnort: Kreis Wesel

Re: Fatal Error bei dbskip

Beitragvon 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
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2235
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin

Re: Fatal Error bei dbskip

Beitragvon 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
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13388
Registriert: Mo, 23. Jan 2006 21:54
Wohnort: Germersheim

Re: Fatal Error bei dbskip

Beitragvon 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
Manfred
Foren-Moderator
Foren-Moderator
 
Beiträge: 16254
Registriert: Di, 29. Nov 2005 17:58
Wohnort: Kreis Wesel

Re: Fatal Error bei dbskip

Beitragvon 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
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13388
Registriert: Mo, 23. Jan 2006 21:54
Wohnort: Germersheim

Re: Fatal Error bei dbskip

Beitragvon 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
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2235
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin

Re: Fatal Error bei dbskip

Beitragvon 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
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13388
Registriert: Mo, 23. Jan 2006 21:54
Wohnort: Germersheim

Re: Fatal Error bei dbskip

Beitragvon 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: 2235
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin

Re: Fatal Error bei dbskip

Beitragvon 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
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2235
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin


Zurück zu Daten und Tabellen

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast