swisstopo / swissgeol-assets-suite

1 stars 0 forks source link

Bug: Verdoppelung von Verweisen #34

Closed gysimichael closed 5 months ago

gysimichael commented 8 months ago

Bei der Erfassung von Verweisen (Edit-Mode, Tab "Verweise") kommt es teilweise zu Verdoppelungen (Beispiel SGS-ID 1706: Verweis auf SGS-ID 1806 ist doppelt vorhanden):

Image

Der Grund dafür kann bisher nicht klar identifiziert werden, der Fehler lässt sich nicht immer nachvollziehen, könnte aber mit bereits bestehenden Verweisen zusammenhängen. Der Fehler lässt sich jeweils mit Löschen und Erneuern der Verweise beheben, wobei nach jedem Zwischenschritt gespeichert werden sollte.

Grundsätzlich sollte das System bei bereits bestehenden Verweisen (Eintrag wird jeweils in beiden Datensätzen zugefügt) keine Verdoppelung zulassen (automatische Validierung und Ausgabe einer Fehlermeldung)!

Analog zu den Alternativ-ID's scheint auch bei den Verweisen das Handling nicht immer stabil zu sein.

daniel-va commented 6 months ago

Ich habe den Bug gefunden & gefixed, er ist jetzt bei uns im Review. Das Problem bestand dabei dass unter bestimmten Umständen ein Geschwister-Verweis doppelt in der Datenbank geführt werden kann.

Der Fix löst das Problem nur insofern dass ab jetzt keine neuen doppelten Verweise erfasst werden können. Die bestehenden doppelten Einträge müssen entweder manuell über die UI oder per SQL aus der Datenbank gelöscht werden.

vej-ananas commented 6 months ago

@mPfifi Sollen wir die doppelten Verweise direkt in der Datenbank löschen oder reicht es, wenn es nach und nach durch Benutzer entfernt wird?

mPfifi commented 6 months ago

@vej-ananas Wenn es für euch möglich ist, die bisher entstandenen doppelten Verweise direkt in der DB zu löschen, ohne die Verweise gleich ganz zu entfernen, könnt ihr das gerne machen. Dies würde uns die Arbeit bei der Nachkontrolle und beim QC erleichtern, da nicht bekannt ist, bei welchen Einträgen dies passiert ist und bei welchen nicht. Merci vielmals für eure Bemühungen!

daniel-va commented 6 months ago

Hier wäre die entsprechende SQL-Query. Wir können gerne am Weekly besprechen, wie wir die Löschung vornehmen.

DELETE FROM asset_x_asset_y it
WHERE
  (it.asset_x_id, it.asset_y_id) IN (
    SELECT
      a.*
    FROM asset_x_asset_y a
    LEFT JOIN
        asset_x_asset_y b
      ON
        b.asset_x_id = a.asset_y_id
      AND
        b.asset_y_id = a.asset_x_id
    WHERE
      b IS NOT NULL
    AND
      a.asset_x_id > b.asset_x_id
  )
mPfifi commented 6 months ago

@daniel-va @vej-ananas : Diesen Issue konnte ich auf int-assets.swissgeol.ch bisher nicht vollständig testen, da ich ohne Elasticsearch keine anderen Assets zum Verlinken finden kann (unter "neuer Verweis" im Tab "Verweise". Dennoch denke ich, es wäre gut, die doppelten Verweise auf PROD zu entfernen und das Issue einzuspielen, da sich die Verweise jeweils bei jeder Aktion wieder verdoppeln, obschon die Verdoppelung vorgängig manuell entfern worden ist.

daniel-va commented 6 months ago

@mPfifi Der Bugfix ist auf dem dev zum Testen bereit.

mPfifi commented 6 months ago

@daniel-va @TIL-EBP @vej-ananas Ich werde diesen Bug zusammen mit Issue #33 testen, sobald ich korrekten Zugang zu dev habe. Derzeit habe ich nur Viewer-Rechte und der Login via eIAM klappt noch nicht richtig (gerate da nach wie vor in Endlosschlaufe). Könntet ihr dem noch nachgehen? - Merci vielmals!

mPfifi commented 6 months ago

Auf dev getestet - ich konnte keine Verdoppelung von Verweisen mehr herbeiführen.