Fehler im EF?

Moe2001

Cool-Casino.de
ID: 9493
L
4 Mai 2006
13.145
786
Hi,
habe folgendes Problem:

Auf meiner Seite kam es heute morgen ca. 30 Minuten lange zu Fehlbuchungen. D.h. die Buchungen wurden im Script nicht vorgenommen aber auf Klamm schon.

Das komische ist, ich und mein Progger können im Script keinen Fehler finden und das läuft schon mehrere Jahre Fehlerfrei (geht um www.weblose.de )!

Es ging nach ca. 30 Minuten auch wieder, ohne das jemand was am Script gemacht hat. Dann ist mir jetzt gerade eingefallen, dass ich mich zu dieser Zeit auf einer anderen Seite mit meinem LosePW einloggen wollte und das auch nicht ging.

Jetzt habe ich mir gedacht, dass es vielleicht Probleme mit dem EF von ca. 9:11 Uhr bis 9:44 Uhr heute morgen gegeben hat. Kann das sein?

Danke schon mal für die Antworten!
 
D.h. die Buchungen wurden im Script nicht vorgenommen aber auf Klamm schon.
Wie hast du gegengeprüft ? Im EF eingeloggt und geguckt, ob die Transaktionen drinstanden oder via ef_confirm.php ?

Interessant wäre der Fall, wenn zwar die Buchungen in der Liste standen, aber ef_confirm die Transaktion nicht bestätigt :think:
 
ef_confirm.php wird bei dem script nicht benutzt.

die lose werden mit send bzw. get transferiert.

wenn der ef 1001 zurückliefert, dann werden die buchungen in der db gemacht und der kontostand des users entsprechend aktualisiert.

gestern in dem besagten zeitrahmen scheint der ef einen falschen (oder gar keinen) code zurückgegeben zu haben.
die transaktion wurde vom ef zwar durchgeführt, aber nicht an das script zurückgemeldet.
auf diese weise war es möglich, daß user lose auszahlen konnten, ohne daß dich der kontostand in der datenbank verändert hat.
(bei einzahlungen war der gleiche fehler)

dieser fehler trat in dieser zeit auch auf anderen seiten auf (mindestens eine, die mir bekannt ist)

EDIT: ob es wohl mit der bugbehebung aus diesem thread zusammenhängt?
(zumindest der zeitrahmen würde pasen)
https://klamm.de/forum/showthread.php?t=58242
 
ef_confirm.php wird bei dem script nicht benutzt.
[...]gestern in dem besagten zeitrahmen scheint der ef einen falschen (oder gar keinen) code zurückgegeben zu haben.
den fall musst du aber auch beachten .... (dass ef nix sagt)
dafür gibts ef confirm

könnte sein, dass das mit diesem bug zusammenhing, da dieser in der main init war ...
 
jetzt, wo du das sagst... :)
bisher war es so, daß wenn der ef nichts gesagt hat, er auch nichts gebucht hat...
ich werde mal schauen, ob ich das irgendwo in das script reinfummeln kann.
das ist eben ein problem, wenn man fertige scripts einsetzt und sich darauf verlässt, daß diese funktionieren.
mir war ef_confirm bis eben gar nicht bekannt (obwohl es schon seit jahren existiert).
wahrscheinlich ist dieser fehler so selten, daß er mir noch nie aufgefallen ist.
 
Hi,
Ich wollt jetzt nich extra nen neuen Thread eröffnen deswegen schreib ich mein Prob hier rein, passt ja grad so gut ;)

Also ich hab eben bzw vor kurzer Zeit etwas über eine Mio Lose auf Eurofriend transferieren wollen.

Die Mio wurde auf Klamm abgezogen, auf Eurofriend aber nicht gutgeschrieben.. :(

Ich hoffe ich bekomm die wieder zurück, denn für mich sind 1 Mio ca 20% meiner gesamten Losemenge^^

Den Webby auf Eurofriend ahb ich schon angeschrieben!!

Aber wenn er nichts machen kann hoff ich dass mir hier geholfen wird^^

Gruß Canna
 
jo, das passt hier hin (zumindest von der problematik her)
weis den webby mal auf diesen thread hin und er soll mal die ef transaktionen mit seiner seite abgleichen.
 
klamm is nie "Schuld", weil immer die Loseseite dafür verantwortlich is, die EF-Responses korrekt zu verarbeiten.
Da fehlt mir mal wieder dein Hintergrundwissen zu Programmierung usw. ;)

Obwohl die klamm-Admins auch schon ab und an Lose zurückgeholt haben, wenn eine Transaktion fehlgeschlagen ist. Wie geht das denn dann?
 
Da fehlt mir mal wieder dein Hintergrundwissen zu Programmierung usw. ;)
Ich erklärs mal kurz.
Vorweg: Lose existieren nicht, sie sind nur eine Datenbankzahl. Ein Los "besitzen" heißt also, dass die Zahl in Lukas' Datenbank gesetzt is.

Transferiert man nun Lose von X nach Y, muss bei X die Zahl dekrementiert und bei Y die Zahl inkrementiert werden. Beide Schritte gehen Hand in Hand, das garantiert mir klamm (also hoff ich zumindest :ugly:), d.h. keine Lose können verschwinden.

Werden nun Lose via EF transferiert, ist X der klamm-Account eines Users der Seite und Y der EF-Account des Betreibers der Seite. Der Betreiber zieht beim Einzahl-Vorgang die Lose ein (s.o. Lose von X weg, Lose bei Y drauf).
Allerdings zusätzlich muss der Betreiber vermerken, dass auf seinem EF (Y) jetzt Lose vom User (X) sind, also muss der Betreiber in seiner Datenbank sich das merken.

Soweit so gut. Jetzt tritt ein Fehler auf (klamm is down, EF gesperrt, ...), dann führt klamm die Buchung nicht aus und alle Lose bleiben, wo sie sind. Der Betreiber muss das erkennen :)!:) und entsprechend korrekt handeln, also nichts an seiner Datenbank ändern. Tut er es dennoch, bescheißt er sich selber. => Betreiber is schuld
Führt klamm eine Buchung korrekt aus und der Betreiber erkennt es aus irgendeinem Grund nicht und ändert nichts an seiner Datenbank, bescheißt er den User. => Auch hier ist Betreiber schuld

Analog für einen Auszahl-Vorgang andersrum halt.

Obwohl die klamm-Admins auch schon ab und an Lose zurückgeholt haben, wenn eine Transaktion fehlgeschlagen ist. Wie geht das denn dann?
Bsp: Ein User zahlt auf loseseite.example.com 10M Lose aus. Der Betreiber dekrementiert in seiner Datenbank die 10M. Es tritt aber ein Fehler auf und die Lose bleiben auf dem EF der Seite.
Für den User sieht es so aus: Keine Lose wurden ausgezahlt, aber die Lose sind auf der Seite auch weg, d.h. "die Lose sind verschwunden" (liegen noch auf dem Betreiber-EF)


Waren jetzt nur mal ein paar Erklärungen möglicher Szenarien.

Normal krieg ich nur mit, wenn ein Admin eine Fehlbuchung rückgängig machen muss, weil ein User in seiner Eile mal zig Millionen Lose auf einen toten Account geschickt hat, weil er zu blöd war, die ID richtig einzugeben :biggrin: