Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Fehlerhafte Assets über Simulator-Konsole ausfindig machen?
#1
Huhu ihr schlauen Köppe- ich hoffe ihr habt einen Tipp für mich...

Folgendes Problem: hab jetzt schon das zweite Mal mit folgendem (sich alle 10 Minuten wiederholendem) Eintrag in der Simulator-Konsole zu kämpfen gehabt:
Zitat:2017-03-11 08:48:18,984 ERROR - OpenSim.Region.Framework.Scenes.Serialization.SceneObjectSerializer [SERIALIZER]: Deserialization of xml failed.  Exception System.Xml.XmlException: Das ':'-Zeichen, hexidezimaler Wert 0x3A, darf nicht in einem Namen enthalten sein. Zeile 1, Position 57.

Ursache waren beide Male fehlerhafte Assets, genauer gesagt: Objekte, die sich in einem anderen Prim befunden haben (einmal ein Paar Schuhe zum Verkauf, ein anderes Mal eine Angelrute in einem Bootssteg)

Meine einzige Abhilfe bisher: schauen, wann es ungefähr mit den roten Einträgen begonnen hat (schaue ja nicht jeden Tag da drauf), überlegen was ich zu dem Zeitpunkt gerezzt haben könnte und dann solange Dinge wegnehmen, bis der Fehler von der Konsole verschwindet - dann weiß man was es war^^.

Da der Eintrag nur alle 10 Minuten kommt, kann sich die Suche doch locker mal so 2-3 Stunden hinziehen, bis man den Übeltäter ausfindig gemach hat.
Daher meine Frage:

Gibt es eine Möglichkeit, das verursachende Objekt über die Konsole ausfindig zu machen?

Es gibt - zumindest bei einigen gelben Einträgen - die Anzeige von UUID, Objektname oder Regionskoordinaten - leider steht bei der o.g. Fehlermeldung nichts dergleichen dabei...

p.s. das mit dem ":" - Zeichen bezieht sich nur auf das Asset; inworld kann man damit leider nicht auf Fehlersuche gehen, da das verusrachende Objekt nichts dergleichen im (Objekt-)namen hat(te)!
Antworten }
Thanks given by: Achim , Dina
#2
Hi Bink,
wenn du es gelöscht hast und die es mal waren, kannst du eins versuchen:
Region runter fahren
im bin Ordner den assetcache löschen,
damit es von dort nicht noch mal geladen wird.
Wenn du Glück hast, war es das, wenn nicht, dann wirst du es so nicht einfach finden können.
Freaky hat dafür ein Script, zum ändern.
Gruß
Anette
Antworten }
Thanks given by: Achim , Dina
#3
Nachtrag:
Solltest du die arriba haben, dafür gibt es ein Update.
Damit wird dieser Fehler automatisch behoben.
Antworten }
Thanks given by: Achim , Dina
#4
(28.03.2017, 08:33)Anette schrieb: Nachtrag:
Solltest du die arriba haben, dafür gibt es ein Update.
Damit wird dieser Fehler automatisch behoben.

Hm, ich habe eigentlich die Arriba-Version vom 08. März, aber wie ich sehe gibt es eine neuere vom 22.03.
Ich werde sie demnächst mal installieren - danke für den Tipp. Ich hoffe es hilft, denn sas Suchen nach dem fehlerhaften Objekt kann nervig sein...

p.s.: sobald es von der Region weggenommen wurde, hörten die Einträge glücklicherweise aber auch auf.
Antworten }
Thanks given by: Dina
#5
Hallo Bink,

wenn Anettes Lösung mit der Arriba für dich ohne Arbeit abgeht - dann lies nicht weiter.

Ansonsten hätte ich folgenden Vorschlag:


Wenn du weisst in welcher Sim die Fehler sind, dann mache zuerst eine komplette OAR davon.

Dann hole dir einen neuen (leere!) lokalen Opensim, mit deren vorkonfigurierter SQLite und importiere dort deine OAR.

Hole dir einen Freeware DatenBank Visualizer

(zum Beispiel Database Browser von dbsoftlab.com   https://www.dbsoftlab.com/database-browser/overview.html    - und ja, du wirst einen Zertifikat Fehler bekommen )

Diesen installiere auf deinem Rechner und melde dich an dem lokalen Testgrid an. Stell aber sicher das der Opensiulator nicht läuft.


Connections- add:

Connection Type: SQLite

Connection Name: Opensim_asset

Database: z.Bsp:  z:\opensim\bin\Asset.db  (Pfad musst anpassen)


Wenn du nun unter "Connections"  die "Opensim_asset" anwählst, dann siehst du im Feld darunter unter "Tables" die einzelnen dazugehörigen Tabellen.

Wähl die Tabelle "assets" an, und warte bis rechts die Tabelle (sehr langsam!) läd. Gut das du nur die eine betroffene Region im leeren Simulator geladen hast.

Sobald rechts im Daten Feld die Tabelle erscheint, kannst du in der Spalte "UUID" , oder gleich in der Spalte "Name" nach dem korrupten Eintrag suchen.

Das % Zeichen entspricht hier dem Joker. In deinem Fall suchst du nach %:%
Lösche hier den Eintrag mit dem korrupten Namen. Wenn du danach den Simulator startest, und die OAR exportierst, werden die Elemente weggelassen die nicht komplett sind. So wirst du das korrupte Objekt los.

Eine andere Möglichkeit wäre die Korrektur des Namens an dieser Stelle.

Es ist auch möglich das der korrupte Namen zu einem Prim gehört.
Dann wäre die opensim.main mit der OpenSim.db zu laden in der Tabelle Prim der Name zu suchen.


Nach Verlassen des Database Viewers starte den Testsimulator, und schau ob die Fehler in der Konsole weg sind.

Wenn ja exportiere die Oar aus dem Testsystem und lade die in dein Grid zurück.


- Der Aufwand ist hoch, aber wenn du mal die Möglichkeiten dieses Tools entdeckst, dann bleiben keine Wünsche offen.




So wie Opensim.db kannst du auch die anderen Tabellen laden, zum Beilspiel die Inventory.db die alle Inventory Einträge der Avatare enthält.
Dazu importierst du die IARs aus deinem Grid in den Testsimulator

Eine Beschreibung aller Tabellen findet sich in der Opensimulator Dokumentation:

http://opensimulator.org/wiki/Database_Documentation

Bei Problemen kannst mich ja inworld kontaktieren.

Viel Erfolg!
Antworten }
Thanks given by: Dina


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste