Du bist nicht eingeloggt! Möglicherweise kannst du deswegen nicht alles sehen.
  (Noch kein mods.de-Account? / Passwort vergessen?)
Zur Übersichtsseite
Hallo anonymer User.
Bitte logge dich ein
oder registriere dich!
 Moderiert von: Irdorath, statixx, Teh Wizard of Aiz


 Thema: pOT-lnformatik, Mathematik, Physik XXII ( Jetzt nehmen uns Computer schon die Memes weg! )
« erste « vorherige 1 ... 36 37 38 39 [40] 41 42 43 44 ... 52 nächste » letzte »
erste ungelesene Seite | letzter Beitrag 
Wraith of Seth

wraith_of_seth
Das ist dann aber keine Helizität im Teilchenphysiksinne. Optiker... https://en.wikipedia.org/wiki/Helicity_(particle_physics)

Der Polarisationsvektor ist etwas seeeehr anderes. Und wenn der ein i hat, ist das üblicherweise zirkular polarisiert; mich interessiert eher die linear polarisierte Sache.

Ich kann nur schlecht den Leuten die Little Group um die Ohren hauen, die ist dafür echt denkbar ungeeignet. Wie man dem Wikiartikel entnehmen kann (und bei Vergleich mit Demtröder), herrscht nicht mal Einigkeit, ob die Helizität jetzt normiert auf \pm1 sein soll oder nicht. Großartig.

Aber in jedem Fall hat sie keinen Cosinus, wie es eine nicht-Operatorfassung wie beim Demtröder impliziert.peinlich/erstaunt

Therefore, those people who say that they can't jack off to anime must have something wrong with their brains!
08.09.2019 15:28:14  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
RichterSkala

AUP RichterSkala 31.12.2010
Ja mir war nach deiner ersten Antwort schon klar, dass wir offensichtlich über andere Dinge sprechen Breites Grinsen
08.09.2019 15:32:59  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
SwissBushIndian

AUP SwissBushIndian 07.11.2011
Du programmierst Java. Sachen laufen. Der Compiler ist gut. Die JVM ist stabil.

Immer. Der Compiler hat nie Schuld. Die VM schon gar nicht.

Bis der Tag kommt, an dem das nicht mehr stimmt.

Kontext:
Wir haben ziemlich viele Websphere Server die zusammen einen Cluster bilden. Es ist quasi die Cloud aus einer Zeit, als die Cloud noch keine Cloud war, mit OSGI anstatt Containern, VMs anstatt Kubernetes/Docker. Wie das halt so ist. Alle möglichen Server und Services laufen auf verschiedenen Betriebssystemen, was bei den meisten Sachen ziemlich egal ist. Das meiste sind irgendwelche Linuxmaschinen, aber für einige Edgecases haben wir Windows als Host-OS. Alles ist managed und bli und bla. Und alles läuft. Eigentlich immer.

Vor einer Weile crasht ständig einer der Windowsserver. Blöderweise ist das eine der Buildmaschinen mit OS-Spezifischen Features, ergo eher uncool, aber vorerst auch unkritisch. Natürlich doof, dass das ein Nadelör ist, aber das ist nunmal so. Neustart dauert eine Minute, aber die crashs werden immer häufiger (haben wir erst beim Postmortem gemerkt...) und zerstören aktive Pipelines.

Natürlich wurde das nicht wirklich behandelt, ist ja irgendwas von vielem was laufend Eskalationen auslösen könnte. Und plötzlich stirbt. alles. konstant. Wie es so ist, hittet der shit den Fan an einem Freitag Morgen. Aus den normalen Serverlogs geht hervor, das einige Services ziemlich viele Exceptions werfen, was aber so weit okay ist. Sachen gehen halt schief, es sind keine unhandled exceptions und werden halt geloggt. Da auf diesem System alles mögliche deployt ist, wird allen zuständigen erstmal eine PM respektive Mail geschickt, sie sollen sich das mal anschauen und identifizieren ob ihre Software den Server crashen könnte (Chance marginal, aber man weiss ja nie).

Scheisse hittiert den Fan:
Ich bin auf der Liste, und schaue mir das mal an. Es ist eine kleine Java-API die Templatebasiertes HTML rendering für einige UIs liefert. Wird relativ viel verwendet, aber ist keine schwarze Magie und seit zwei Jahren stable. Einige Patches für Libraryupdates, zwei Bugfixes. "Ach, das wird schon nichts sein".

Jeder crash folgt auf calls zu diesem Service. Absolut jeder in der zurückverfolgbaren Historie dieser crashes. Egal ob erfolgreich, handled exception, timeout. Scheissegal. Der letzte call ist immer bei meinem Service. Dieser Moment wo dein Arschloch kalt wird? Das ist genau dieser Moment. Und jetzt fängt die Odyssee überhaupt erst richtig an.

Erster Move ist natürlich ein genereller Rollback der betroffenen Systeme. Relativ schnell haben wir die VM-Konfig isoliert wo der (wahrscheinlich gleiche...) Fehler schon eine Weile auftritt. Die "Maschine" nehmen wir isoliert aus dem Cluster und klonen das Ding um zu testen. In der gesammten Deploymentpipeline tritt der Fehler nirgends auf. Wir haben natürlich für Dev/Test/Staging nur kleine und isolierte Varianten der gesammten Infrastruktur, aber absolut fucking nirgends treten diese Fehler auf.

Ich bastel also erstmal eine docker-compose Umgebung mit, eigentlich, identischer Konfiguration (Anm: das hätte nie funktionieren können, Schuld war nämlich auch der Host...). Gleichzeitig finden wir heraus, wie wir das Problem einigermassen isoliert reproduzieren können (gar nicht mal so einfach, am Ende hilft nur Gattling mit random get/post requests konstant auf die API bis der Fehler auftritt). Nichts crasht. Nicht lokal, nicht auf dev, nicht auf test, nicht auf staging. Aber auf Prod? Genau. Da crasht es. Also erstmal logging auf Debug und nur noch bei Prod testen, da crasht es immerhin. Aus Slack:

"Was sagt das Log?"
"Nichts"
"Wie nichts?"
"Nichts"
"Kein Stacktrace, keine Debugmeldungen?"
"Nada



O...kay? Was sagt das allgemeine Monitoring? Die JVM bleibt stehen. Ein normaler Service, auf einem Appserver, in einer JVM... die es schafft die JVM zum Stillstand zu bringen... Immerhin weiss ich nun, weshalb im Log nichts auftaucht, dafür müsste ja die JVM wenigstens noch ein wenig leben.

Wir deployen eine alte Version, die bestimmt ein Jahr durchgelaufen ist. Nach 2 Minuten -> crash. JVM einfach tot. Es liegt zwar eindeutig an diesem einen Service, aber offenbar unabhängig von der Version, vom Build, alles egal. Absolut ratlos. Als nächstes haben wir dann erstmal crash dumps angeschaltet, visualvm angehängt, alles was uns so spontan in den Sinn gekommen ist zum sehen was abgeht.

Nächster Crash? Dumpfile der jvm hat 0 Byte. Denenene Watman. Also erstmal googeln wie man Dumpfiles für alle Javakomponenten richtig konfiguriert (natürlich mumbo-jumbo sondergleichen). Nächster Crash?

 
Code:
1XHEXCPCODE    Windows_ExceptionCode: C0000005
1XHEXCPCODE    J9Generic_Signal: 00000004
1XHEXCPCODE    ExceptionAddress: 00007FF89FE53C05
1XHEXCPCODE    ContextFlags: 0010001F
1XHEXCPCODE    Handler1: 00007FF89FE04AF0
1XHEXCPCODE    Handler2: 00007FF8CD73CC60
1XHEXCPCODE    InaccessibleReadAddress: FFFFFFFFFFFFFFFF NULL
1XHEXCPMODULE  Module: D:\IBM\...\j9jit29.dll


Der jit crasht? Der jit crasht. Warum... crasht der jit? Das ist jetzt der Zeitpunkt wo man aufhört den Service zu debuggen und alles an die VM hängt. Ab hier habe ich etwa so viel Ahnung wie der im All schwebende Hund (guter Junge), und habe auch langsam keine Ahnung mehr was mich erwarten soll. Zu meinem Glück sind stacktraces auf der VM sogar zu entziffern... wenigstens einigermassen. Und so lese ich mir Seitenweise jvm stacktraces durch um irgendwas zu finden, und immer wieder taucht vor einem Crash, aber nicht nur da, folgendes auf:

 
Code:
n18n          loadaddr  org/modelmapper/internal/bytebuddy/implementation/Implementation[#609  Static] [flags 0x18307 0x0 ]  [0x00007FF5F75142B0] bci=[-1,11,-] rc=1 vc=11 vn=- li=- udi=- nc=0


Gefolgt von einer out-of-memory exception der JVM. Was also genau passiert hier? Die JVM hat verschiedene Optimierungsstufen: cold, warm, hot, veryHot, und zuletzt scorching. Der jitter macht Optimierungen anhand verschiedener Heuristiken, weswegen übrigens die Crashes nicht immer, sondern nur oft, und auch nicht konsistent reproduzierbar auftauchen. Abhängig der Frequenz der Calls, Last auf anderen Komponenten und geopferter Ziegen werden also die Optimierungen schneller und aufwändiger.

Ab optimierung Hot schmiert es den jit samt jvm in der Kombination von Modelmapper und diesem einen Build der JVM, und zwar mit einer out-of-memory Exception. Rekursion im Jitter? Possibly. Also tauschen wir eins nach dem anderen verschiedene Abhängigkeiten und Builds aus: Modelmapper Upgrade? Alles geht. Modelmapper downgrade? Alles geht. JVM austauschen? Alles geht. JVM der gleichen Version aber frischem Build? Alles geht. Crashende Konfiguration auf einem anderen Windows Image? Alles geht. Immerhin sind unsere Builds reproduzierbar "kaputt" mit dieser einer Modelmapperversion auf dieser einen VM Konfiguration, aber alle anderen beweglichen Teile lösen das Problem.

Das, meine Lieben, war der komischste Bug den ich jemals gesehen habe. Und ich erwarte, dass das Ding den obersten Platz für eine ganze Weile halten wird.

TL;DR: Es ist nie die VM, und auch nicht der Compiler. Ausser es ist die VM und der Compiler. Und wenn es das ist, dann ist das Problem garantiert ein Hurensohn. Und garantiert ist Monitoring nie gut genug, logging nur so gut wie die Stabilität deines Systems, und am Ende hat auch sowieso keiner eine Ahnung. Und wie schön wäre es, reproduzierbare Builds und Deployments zu haben.

Wir wissen übrigens bis heute nicht so wirklich woher das Problem kommt. IBM auch nicht. Postmortem dauert seit 2 Monaten, Problem passiert nur mit dieser einen Binarykonfiguration und Kombination. Ob das wiedermal auftaucht? Who knows.
10.09.2019 14:25:05  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
wuSel

AUP wuSel 24.02.2008
verschmitzt lachen
wenns nicht reproduzierbar ist oder nochmal von alleine kommt ist es irrelevant und wird nicht weiter verfolgt...
10.09.2019 14:33:50  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Murica

Arctic
Gibt es eine simplere version von

 
Code:
        if (!a && b)
        {
            return !c;
        }
        else if (a && !b)
        {
            return c;
        }


?
10.09.2019 14:35:37  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
SwissBushIndian

AUP SwissBushIndian 07.11.2011
 
Zitat von wuSel

wenns nicht reproduzierbar ist oder nochmal von alleine kommt ist es irrelevant und wird nicht weiter verfolgt...



Beängstigenderweise lief das über Wochen auf duzenden Maschinen und glücklicherweise nur genau auf dieser einen in der tödlichen Konstellation... Die besten Bugs tauchen halt nur in Prod auf. Und auch da nur wenn sie Lust dazu haben.
10.09.2019 14:41:43  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
wuSel

AUP wuSel 24.02.2008
ist halt am Ende einfach ein schönes Beispiel dafür, dass du garnicht komplett bugfrei sein kannst - egal wie sehr du testest. Breites Grinsen
10.09.2019 14:42:40  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Oli

AUP Oli 21.12.2018
In C?

 
Code:
return (a ^ b) ? a && c : !c;


ohne es getestet zu haben, und wenn alles bools sind.

Allerding returnd das auch wenn a && b, was in deinem Beispiel nicht abgedeckt ist.

 
Code:
#include <stdio.h>

int one(int a, int b, int c) {
	return (a ^ b) ? a && c : !c;
}

int two(int a, int b, int c) {
	if (!a && b)
    {
        return !c;
    }
    else if (a && !b)
    {
        return c;
    }
}

int main(int argc, char const *argv[])
{
	printf("a=%d b=%d %d == %d\n", 1, 0, one(1, 0, 1), two(1,0, 1));
	printf("a=%d b=%d %d == %d\n", 0, 1, one(0, 1, 1), two(0,1, 1));
	return 0;
}


 
Code:
$ gcc -o a a.c
$ ./a
a=1 b=0 1 == 1
a=0 b=1 0 == 0
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von Oli am 10.09.2019 14:48]
10.09.2019 14:44:20  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
SwissBushIndian

AUP SwissBushIndian 07.11.2011
verschmitzt lachen
 
Zitat von wuSel

ist halt am Ende einfach ein schönes Beispiel dafür, dass du garnicht komplett bugfrei sein kannst - egal wie sehr du testest. Breites Grinsen



Und natürlich wenn man kein Windows nutzt.
10.09.2019 14:45:07  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
wuSel

AUP wuSel 24.02.2008
Breites Grinsen

 
Zitat von Murica

Gibt es eine simplere version von

 
Code:
        if (!a && b)
        {
            return !c;
        }
        else if (a && !b)
        {
            return c;
        }


?



Gegenfrage, warum willst du das simpler schreiben? Meistens führt simpler als so nämlich dazu, dass man es schlechter lesen kann. LoCs sparen um jeden Preis? Bitte nicht...
10.09.2019 14:53:20  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Flitzpiepe42

AUP Flitzpiepe42 07.10.2019
Danke SBI für diese schöne Geschichte, ich habe viel lachen können, auch wenn ihr wohl eher geweimt habt Breites Grinsen
10.09.2019 15:23:47  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Murica

Arctic
 
Zitat von wuSel

Gegenfrage, warum willst du das simpler schreiben? Meistens führt simpler als so nämlich dazu, dass man es schlechter lesen kann. LoCs sparen um jeden Preis? Bitte nicht...



Frage für einen Freund. Breites Grinsen
Danke Oli fröhlich

Schöne Story SBI. Solche Geschichten sind super.
Irgendwas crasht irgendwo in nem Treiber, aber nur mit einer gewissen Hardware, gewissen installierten Treibern und installierten proprietären SDK.
Während NVidia die Schuld auf Intel schiebt, Intel die Schuld auf Epic schiebt, und Epic die Schuld auf Nvidia schiebt sitzt du da und versuchst irgendwas aus den Crashdumps zu saugen. Breites Grinsen
10.09.2019 15:59:25  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
PutzFrau

Phoenix Female
 
Zitat von Oli

In C?

 
Code:
return (a ^ b) ? a && c : !c;


ohne es getestet zu haben, und wenn alles bools sind.

Allerding returnd das auch wenn a && b, was in deinem Beispiel nicht abgedeckt ist.



Und auch wenn !a && !b


Vielleicht sowas (natürlich auch nicht getestet):
 
Code:
if (a ^ b)
    return a ? c : !c;


Ob das wirklich einfacher ist, ist natürlich stark diskussionswürdig. Würde mich da wuSels Frage anschließen. Breites Grinsen

10.09.2019 16:08:21  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Oli

AUP Oli 21.12.2018
Zwei Zeilen ist eine zuviel.
10.09.2019 16:16:11  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
PutzFrau

Phoenix Female
verschmitzt lachen
Ok, hier ist der bug fix:
 
Code:
if (a ^ b) return a ? c : !c;


10.09.2019 16:17:25  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
wuSel

AUP wuSel 24.02.2008
 
Zitat von Oli

Zwei Zeilen ist eine zuviel.



So Leute kann ich leiden... Breites Grinsen
10.09.2019 16:18:33  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
SwissBushIndian

AUP SwissBushIndian 07.11.2011
 
Zitat von Murica

Schöne Story SBI. Solche Geschichten sind super.
Irgendwas crasht irgendwo in nem Treiber, aber nur mit einer gewissen Hardware, gewissen installierten Treibern und installierten proprietären SDK.
Während NVidia die Schuld auf Intel schiebt, Intel die Schuld auf Epic schiebt, und Epic die Schuld auf Nvidia schiebt sitzt du da und versuchst irgendwas aus den Crashdumps zu saugen. Breites Grinsen



Ich finde es halt besonders erstaunlich, weil wir für das ganze Infrastrukturzeug nur so dermassen stabile Komponenten verwenden, dass man dazu auch problemlos altbacken sagen könnte. Das war der erste Bug in doch schon 5 Jahren hier, den wir nicht auf unsere eigene Unfähigkeit zurückführen konnten. Das passiert andauernd Breites Grinsen

Es wurde also nicht nur geweimt, sondern definitiv auch geschwitzt Breites Grinsen
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von SwissBushIndian am 10.09.2019 16:30]
10.09.2019 16:30:19  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
csde_rats

AUP csde_rats 04.09.2021
Ein einzelnes Bit ist im Speicher ist Stuck, aufgrund von $Custom-JVM-Allocator, der $OhneASLR läuft, landet aus der spezifischen Konfiguration exakt dieser Maschine reproduzierbar ein Längenfeld eines Objekts, das der JIT nut im Hot und höher Pfad nutzt, auf diesem Bit, weswegen er versucht 982 GB hinter dem Ende des Objekts zu lesen, und daher mit c0....5 crasht.

Easy. Next.
10.09.2019 17:51:52  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
SwissBushIndian

AUP SwissBushIndian 07.11.2011
Breites Grinsen
10.09.2019 18:01:25  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Wraith of Seth

wraith_of_seth
Siebzehn.info ist down.traurig

Ich habe jetzt erstmal über Archive.org die PDFs zur topologischen Differentialalgebra und 17 gerettet. RIP.

Satz: Jeder Jäger ist ein Frühling.

And just remember: If your girlfriend likes your cooking - you're doin' it WROOOOONG!
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Wraith of Seth am 14.09.2019 8:20]
14.09.2019 8:18:42  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Rootsquash

Arctic
Das Problem mit dem Gerät, das eine C-Api hat, aber aus Python angesteuert werden soll, scheint fast gelöst zu sein¹
Da es aber halbwegs vollständig sein soll: Wie baut man ein C-Makro in Python nach?
Im C-Header steht sowas wie:
 
Code:
#macro(param) (((param) & CONSTANT_DEFINED) >> 16)




¹ist es schon länger, aber das musste noch in ein bestehendes Python-Projekt integriert werden, von dem ich wenig Ahnung habe. Das hat etwas gedauert peinlich/erstaunt
16.09.2019 13:21:26  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Danzelot

AUP Danzelot 28.02.2014
Spricht etwas dagegen, das einfach als Funktion zu implementieren?
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Danzelot am 16.09.2019 13:36]
16.09.2019 13:36:47  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Rootsquash

Arctic
Als Einzeiler wäre es mir lieber.
Das als Funktion zu schreiben wäre aber natürlich möglich.
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Rootsquash am 16.09.2019 14:20]
16.09.2019 13:43:10  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
PutzFrau

Phoenix Female
Wat, was ist der Vorteil von einem Einzeiler?

Und was hält dich davon ab, Python Bit Operatoren zu verwenden?

https://wiki.python.org/moin/BitwiseOperators

16.09.2019 14:19:12  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Rootsquash

Arctic
Es geht nicht um die bitwise operators, ich hoffte nur, dass Python 3 Makros könnte, so dass ich da keine Funktionen schreiben muss.
16.09.2019 14:21:50  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
PutzFrau

Phoenix Female
Warum?

https://stackoverflow.com/a/14041847/1725687

16.09.2019 16:01:20  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
B0rG*

Gordon
Warum würde man jemals für irgendwas C-Style Macros haben wollen? peinlich/erstaunt
16.09.2019 23:16:57  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
MCignaz

Arctic
C++
Ich komm nicht drauf: Ich will callbacks in einen std::vector schieben, allerdings sollen die callbacks verschieden viele und verschiedenartige Paramter haben. Also quais sowas: std::vector<std::function<void(Args ... args)>>

Bisher habe ich std::vector<std::function<void()>> und bastel dir Funktionen mit std::bind zusammen. Allerdings moechte ich die Parameter nicht vorher binden, sondern beim Aufruf des jeweiligen Callbacks rueberreichen.

Das muss doch mit variadic templates gehen aber ich komm nicht drauf.
19.09.2019 20:41:17  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
PutzFrau

Phoenix Female
Glaube nicht, dass das mit variadic templates geht, denn ein
 
Code:
Callback<A>
ist eine andere Klasse als ein [node]Callback<A, B>[/code] und kann nicht in einen
 
Code:
vector<Callback<A, B>>
eingefügt werden. Wenn du eine leere Basisklasse hinzufügst, von der alle Callbacks erben, sollte das möglich sein.

Disclaimer: Lange nichts mehr in C++ gemacht, die Pros sollten sich auch dazu äußern.

20.09.2019 0:14:53  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Wraith of Seth

wraith_of_seth
 
Zitat von Wraith of Seth

Heute die beste Begrüßung eines Studenten an einen Prof in einer Email gelesen: "Hi Sir!"

Not a medical doctor! Not even the other kind. Technically.



Sie verlor an Witz. Es ist wohl recht üblich an NZ-Boarding Schools. traurig Booooooo!
20.09.2019 12:43:26  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
 Thema: pOT-lnformatik, Mathematik, Physik XXII ( Jetzt nehmen uns Computer schon die Memes weg! )
« erste « vorherige 1 ... 36 37 38 39 [40] 41 42 43 44 ... 52 nächste » letzte »

mods.de - Forum » Public Offtopic » 

Hop to:  

Mod-Aktionen:
03.04.2020 11:26:13 Maestro hat diesen Thread geschlossen.
19.06.2018 19:32:04 Sharku hat diesem Thread das ModTag 'pimp' angehängt.

| tech | impressum