Rechenfehler im Warenkorb

Wir haben einen Shop der seit einem Serverumzug stetig immer wieder Probleme mit Rechenfehlern hat.

Troz 100% identischer Shopsoftware, modulen und identischer Shopkonfiguration rechnen die Testsysteme immer korrekt allerdings der Live Server nicht. Das Paypal Modul hat letzte nacht auch z.B. -88,20€ an Paypal gebühren veranschlagt.
Aktuell ist es so das alle Rabatte einmal pro Artikel im Warenkorb abgerechnet werden. So sind die 10€ Neukundenrabatt bei 20 Teilen dann 200€. Wovon allerdings nur der Netto betrag abgezogen wird.

Auch mit deaktiviertem B2B Modul weigert sich das Live System zuverlässig zu funktionieren. Hat jemand vielleicht noch einen Tipp wo man mit der Fehlersuche beginnen sollte?

Der einzige Unterschied zwischen Test und Live System ist die PHP Version und das Betriebssystem. Und das ADOdb Modul gibt es auf dem Live System nicht.

Live System:
PHP Version 5.2.10-2ubuntu6
System Linux Ubuntu-1004-lucid-64-minimal 2.6.32-23-server #37-Ubuntu SMP Fri Jun 11 09:11:11 UTC 2010 x86_64

Test System:
PHP Version 5.2.6-1+lenny9
System Linux server14 2.6.26-1-686-bigmem #1 SMP Fri Mar 13 18:52:29 UTC 2009 i686

CRC Prüfung der Daten gibt aufschluss ob wirklich alles gleich ist!
Testsystem sollte immer den gleichen Stand haben, sonst macht man sich oft doppelte Arbeit!

Wenn der Fehler immer auftritt kannst du ja debuggen wie z.B. der Rabatt zustande kommt.

Ein Diff zwischen den beiden Servern ergab das diese identisch sind.

An der Debian / Ubuntu sache kann ich leider nichts ändern. Aber der Shop sollte doch auf beiden Fehlerfrei laufen? Nungut da es sich um die PE Version handelt ist auch debuggen sehr sehr schwer.

Aber mit injectetem CE Code kann ich die Zeilen nachvollziehen wo es passiert:
http://docu.oxid-esales.com/CE/sourcecodedocumentation/4.1.2.18998/oxbasket_8php-source.html#l00548

nach der Zeile #00577 steht in $oBasketPrice ein fehlerhafter negativer Wert mit dem er weiterrechnet. In der Zeile davor noch nicht. Bis zu diesem Punkt hin scheint es soweit zu stimmen. Aber für mich ergibt das nur aufgrund verschiedener Server keinen Sinn warum er sich hier unterschiedlich verhalten sollte. Auch die Variablen werden ja nicht als Referenz übergeben.