anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Mo 16 Jun, 2025 20:07

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Fehler bei Wiedererweckung
BeitragVerfasst: Mi 03 Mai, 2006 22:28 
Offline
Held
Held
Benutzeravatar

Registriert: Di 23 Aug, 2005 23:46
Beiträge: 268
Wohnort: Köln
LoGD: http://www.dragnir.de
Hi Community :)

Meine User haben in letzter Zeit immer öfter mal das Problem, dass wenn ein Char seine Partnerin aus dem Reich der Toten wiedererwecken lässt, dass sie dennoch tot bleibt. Wenn sie sich ausloggt, er sie erweckt, und sie sich dann wieder einloggt klappt es immer, nur ist das eine recht unbefriedigende Lösung.

Hatte jemand von euch auch schon das Problem, und hat eine Lösung parat?
Oder zumindest einen Ansatz wo das Problem hängen könnte?

Gruß

_________________
Warum UNIX/Linux böse ist:

- 'kill' macht Menschen zu brutalen, blutrünstigen Bestien
- 'killall' züchtet regelrecht Massenmörder
- 'whoami' löst bei psychisch labilen Personen Existenzkrisen aus!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Fehler bei Wiedererweckung
BeitragVerfasst: Do 04 Mai, 2006 19:16 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
Lestat hat geschrieben:
Hi Community :)

Meine User haben in letzter Zeit immer öfter mal das Problem, dass wenn ein Char seine Partnerin aus dem Reich der Toten wiedererwecken lässt, dass sie dennoch tot bleibt. Wenn sie sich ausloggt, er sie erweckt, und sie sich dann wieder einloggt klappt es immer, nur ist das eine recht unbefriedigende Lösung.

Hatte jemand von euch auch schon das Problem, und hat eine Lösung parat?
Oder zumindest einen Ansatz wo das Problem hängen könnte?

Gruß


==> Transferbug. (Bisher) Unlöslich, vermeidbar wenn die Userin keinen Schritt macht bist der Geliebte sie befreit hat.
Im Posteingang kann man beliebig Erfrischern => Möglichkeit für Worte wie "Darfst wieder drücken";


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 07 Mai, 2006 22:09 
Offline
Held
Held
Benutzeravatar

Registriert: Di 23 Aug, 2005 23:46
Beiträge: 268
Wohnort: Köln
LoGD: http://www.dragnir.de
Hatte ich schon befürchtet.
Vielen Dank für die Klarheit, auch wenns nicht die Gewünschte Antwort ist. :)

_________________
Warum UNIX/Linux böse ist:

- 'kill' macht Menschen zu brutalen, blutrünstigen Bestien
- 'killall' züchtet regelrecht Massenmörder
- 'whoami' löst bei psychisch labilen Personen Existenzkrisen aus!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 08 Mai, 2006 00:24 
Offline
Freak
Freak

Registriert: So 30 Okt, 2005 17:48
Beiträge: 1408
Wohnort: PB
Geschlecht: Männlich
LoGD: http://dav.blood-reaver.de/lotgd/
Transferbugs lassen sich manchmal durch die Wahl eines anderen Tabellentyps beseitigen. InnoDB soll da ganz gut sein...

_________________
Mehr oder minder inaktiv


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 08 Mai, 2006 15:59 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
Sorry, aber das bezweifle ich bei dieser Art von Bug aber völlig. Wie kann bitte ein Tabellentyp entscheident seind für eine Überschreibung von Daten?
Der Transferbug in LoGD läuft folgendermassen ab:
User A startet Script, Startwert für Gold: 20'000
User B schickt nur wenige Millisekunden darauf Gold an User A - In der Datenbank wird auf 25'000 hochgeschrieben.
Das "session["user"]"-Array von User A weiss das aber nicht dass sich da ein neuer Wert befindet - Somit überschreibt die Funktion saveuser einfach die 25'000 wieder mit den 20'000. Und ich denke nicht dass ein Tabellentyp plötzlich Funktionen in mitten des Scriptes aufrufen kann die zuerst prüft ob da alles richtig ist.

Hingegen hab ich eine Wirksame Methode gefunden - Und bessere sie aus - Um die Wahrscheinlichkeit deutlich zu verringern und nebenbei noch den Update-Query des Users zu verkleinern.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 08 Mai, 2006 19:26 
Offline
Freak
Freak

Registriert: So 30 Okt, 2005 17:48
Beiträge: 1408
Wohnort: PB
Geschlecht: Männlich
LoGD: http://dav.blood-reaver.de/lotgd/
Er kann Transferbusg nicht völlig ausschließen, allerdings hat InnoDB gewisse vorteie wie:

wikipedia hat geschrieben:
Mit InnoDB bezeichnet man die transaktionsorientierte Storage-Engine von Innobase Oy Inc. für das Datenbankmanagementsystem MySQL, welche seit der Version 3.23.34a verfügbar ist.

Im Gegensatz zur standardmäßig verwendeten Engine MyISAM unterstützt InnoDB Transaktionen, das heißt:

* Alle Schreiboperationen können rückgängig gemacht werden (rollback)
* Wiederholte Lesezugriffe innerhalb einer Transaktion sind von Schreibzugriffen anderer Transaktionen nicht beeinflusst (Isolation aus ACID).
* Schreibzugriffe in einer Transaktion bewirken eine Schreibsperre der betroffenen Datensätze für alle anderen Transaktionen (Row level locking).


vor allem das Row level locking dürfte intressant sein.

_________________
Mehr oder minder inaktiv


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 09 Mai, 2006 00:12 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 28 Aug, 2004 18:48
Beiträge: 1712
hm eine ein wenig umständlichere aber durchaus wirkungsvolle Version um den Transferbug ziemlich gut auszuschliessen, habe ich durch das Gildensystem mit der special_vars funktion, die die transaktionen erst in eine seperate Tabelle speichert und bei Klick des Empfängers (bei mir village.php) im Dorf dann ausgeführt werden.. so kann es so gut wie gar nicht zu überschreibungen kommen. Ich nutze es mittlerweile in fast allen transaktionsmöglichkeiten, die ich so gefunden habe..

bekommen habe ich es damals von Raven aus Rabenthal, da er damit den Transferbug im Gildentool ausgeschlossen hatte.. Falls wer interesse an dieser Variation hat, bin ich gern bereit sie mal zu posten. Nur da es ein wenig viel wäre, alles zu erklären, wenn kein Interesse besteht, mach ich es net direkt *fg*

lg Rikka

_________________
~Inaktiv und Abwesend solange Mysql hier Moderatorenrechte hat~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 09 Mai, 2006 11:58 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
InnoDB, ist garnicht so aufwendig wie alle denken. Man schickt einfach via. MySQL-Query ein "commit", fügt dazu noch einen kleinen Tracker mit "rollback" Option hinzu und fertig ist das ganze. 100% Schutz natürlich und man kann das ganze ggf. widerholen bei fehlschlag.. Also wesentlich Sinnvoller und einfacher ;)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen
Du darfst keine Antworten zu Themen in diesem Forum erstellen
Du darfst deine Beiträge in diesem Forum nicht ändern
Du darfst deine Beiträge in diesem Forum nicht löschen
Du darfst keine Dateianhänge in diesem Forum erstellen

Suche nach:
Gehe zu:  
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum