Skocz do zawartości

Rażące problemy z Asortymentami należącymi do Modelów (Powielanie, Kasujące się Nazwy/Opisy, Duplikaty Właściwości)

Polecane posty

TAMAT EDYTOWANY na potrzebę przestawienia kolejnych problemów w kolejnych postach.

 

Nie wiem czy to błąd wyłącznie wizualny, ale nawet jeżeli, to nadal do poprawienia.

 

Przy powielaniu wielu naraz (edycja wielu naraz w kilku oknach), czasem zaczyna już bardziej szaleć i zdarzyły mi się błędy transakcyjne (ale nawet nie powiem jak to odtworzyć, bo sam nie wiem).

obraz.png.958324a042b65751f52c346179b729bc.png

 

P.S. Jak się po prostu powieli i zapisze, to można ponownie edytować i dodatkowe pola znikną (a więc są tylko w momencie powielania).

Edytowane przez Ernest Sadowski
  • Zmieszany 1
Link to postu
W dniu 16.05.2022 o 10:33, Ernest Sadowski napisał:

P.S. Jak się po prostu powieli i zapisze, to można ponownie edytować i dodatkowe pola znikną (a więc są tylko w momencie powielania).

False! Tym samym nie jest to na pewno błąd tylko wizualny. Jakimś cudem mój asortyment posiada trwale duplikaty właściwości. Najgorsze jest to, że nie mogę ich pokasować. I jestem jednocześnie niemal pewny, że w jakimś stopniu uszkodziło bazę danych.

 

Widok z asortymentu:

obraz.png.8f16e9189f7d0cb52b0c158005916279.png

Widok z wariantów modelu:

obraz.png.d44cd2a4dbe21c9d48e4151b846edfe0.png

 

Dodatkowo coś totalnie programowi odwaliło.

nexo przeczyścił mi opisy (które były ręcznie wprowadzane godzinami) wszystkich wariantów modelu, do którego dodałem nowy asortyment poprzez powielanie.

Jesteśmy bardzo zirytowani sytuacją i stratą czasu jaka z tego wyjdzie. Backup był w nocy, a dziś się już za dużo zadziało, żeby to wycofywać.

Przeanalizujcie to mocno, bo nie ma opcji, że przy ustawieniu "Nie nadawaj automatycznie" na poziomie całego programu i każdego modelu, nagle sobie program kasował wszystkie opisy (setki asortymentów) bez żadnej informacji.😠

Edytowane przez Ernest Sadowski
  • Zmieszany 1
Link to postu

Problem z tytułu jest na 40.1.0.

 

Problem ze skasowanymi opisami także na 40.1.0.

 

Dodam, że kasacja opisów zaszła u nas już wcześniej (parę tygodni temu), gdzieś na 40.0.x. Dopiero teraz stwierdziliśmy, że to musi być ten sam bug, co teraz wystąpił, bo z notatek wynika, że zaszedł także przy powielaniu, ale z racji, że dotknęło to tylko modelu z paroma wariantami, to nikt nie zwrócił szczególnej uwagi. Teraz jak przeczyściło ponad 100 opisów, to widzimy, że to to samo. Spróbuję to odtworzyć jakoś i dodam posta.

 

Edytowane przez Ernest Sadowski
Link to postu
  • 2 tygodnie później...

I znowu to samo... Tym razem mogę dokładniej powiedzieć co się stało.

 

Ustawienia systemu:

  • Wszystkie auto-generacje nazw/opisów na NIE.

Dane:

  • Model A (wszystkie ustawienia nazw i opisów na NIE)
    • Właściwość A
      • Cecha X
      • Cecha Y
    • Właściwość B
      • Cecha Y
      • Cecha V
  • Asortymenty:
    • Wariant 1 (cecha X, cecha Y)
    • Wariant 2 (cecha X, cecha V)
    • Wariant 3 (cecha Y, cecha Y)
    • Wariant 4 (cecha Y, cecha V)

Wiele z wariantów była dodana ręcznie przez NOWY lub POWIEL, a niektóre były auto-generowane i edytowane. W przykładzie powyżej można założyć że wariant 1=NOWY, 2=POWIELONY, 3-4=WYGENEROWANY (z widoku Modelu).

 

Wszystkie warianty mają ręcznie edytowane nazwy i opisy oraz były wielokrotnie edytowane i posiadają dane historyczne asortymentu (ważny detal zaraz).

 

Dla takiego modelu, po wejściu w widok modelu i jego edycję, po czym wejściu na edycję z jednej z właściwości modelu oraz zmianie nazwy cechy, np. z "Cecha X" na "Cecha XXX" oraz zapisaniu właściwości ze zmodyfikowaną cechą, po czym zapisaniu Modelu - następuje masowy update wszystkich Wariantów.

Mowa o takiej modyfikacji cechy podczas gdy Edytowany jest sam Model.

obraz.png.a2c6ab8ecb1a32ae9b46b5cbcbf0b4a8.png

 

Teraz gwóźdź do trumny - ten masowy update wszystkich wariantów po takiej edycji wywołuje, uwaga - NIE update nazw i opisów (chyba), tylko kasację historii asortymentu lub przynajmniej zmianę pointera na inny w historii asortymentu tych wariantów.

Skąd ten wniosek - wszystkie nazwy i opisy  tych wariantów wycofały się do danych historycznych (mają wartości sprzed miesięcy wstecz) tego asortymentu.

 

Spróbuję sam to odtworzyć na nowej bazie w jeszcze bardziej stricte warunkach i poszperam w samej DB jak będzie trzeba, ale to znowu, zabawa na kiedy indziej więc pomyślałem, że dam Wam znać już. :)

 

Najbardziej się teraz przestraszyłem jaki się mógł zrobić syf w bazach, skoro nagle się nawracają dane historyczne.

 

EDIT

Na ten moment najbardziej podejrzewam, błąd w relacjach i zły zapis pointera na dane historyczne. Nadal jeszcze nie jestem pewny kiedy to zachodzi.

Edytowane przez Ernest Sadowski
Link to postu
  • Ernest Sadowski zmienił tytuł na Rażące problemy z Asortymentami należącymi do Modelów (Powielanie, Kasujące się Nazwy/Opisy, Duplikaty Właściwości)

Gdzie czegoś nie ruszę to znajduję kolejny problem. Zedytowałem Temat i od tego wpisu każdy mój kolejny post będzie zgłoszeniem błędu po jego weryfikacji na bazie danych Demo (lub Nowej).

 

Na start:

[BUG] Nazwa i Opis zerują się (lub "cofają w czasie") po zmianie jakiejkolwiek cechy w polu właściwości asortymentu (pochodzących z Modelu).

Bug objawia się zarówno przy edycji Asortymentu z jego widoku (wystarczy zmienić cechę), a także z widoku Modelu, gdy zmienimy dowolną jego Cechę w tabeli Wariantów.

 

Ponadto zjawisko jest nieprzewidywalne - zwykle kasuje się Nazwa i Opis (jak testowałem na bazie Demo), ale np. na bazie firmy edytując cechę (w obu widokach: Asortyment i Model->Warianty) zjawisko zdarzyło się tylko dla Opisu, a Nazwa pozostałą taka sama. Sugeruje to jakąś zależność zachowania od tego jak i/lub kiedy dany asortyment powstał, więc znowu podejrzewam coś nie tak z danymi historycznymi (patrz poprzedni post).

 

Warto zacząć szukać błędów od tego mankamentu, bo jest najłatwiejszy do odtworzenia.

 

Ustawienia jak niżej:

image.thumb.png.b906cfb4152da67cdd5c30c1c85327fe.png

Edytowane przez Ernest Sadowski
  • Zmieszany 1
Link to postu
W dniu 3.06.2022 o 10:44, Przemysław Werner napisał:

Dziękujemy za zgłoszenie. Prawdopodobnie udało się namierzyć problem, ale proszę jeszcze o podanie przykładowych nazw wariantów przed i po zmianie.

Nad testowaniem tego spędzam już za dużo czasu. Ewidentnie jest to jeden błąd, który powoduje lawinę kolejnych albo nałożone na siebie kilka błędów ze wskaźnikami - albo w kodzie podczas Edycji albo w SQL Update DB.

 

Po zbudowaniu ogromnego grafu decyzyjnego kiedy co się dzieje dla tworzenia (i jak) nowego Asortymentu i Edycji którego z jego pól wniosek jest prosty:

 

Podstawowy BUG zachodzi w momencie kiedy dany Asortyment posiada więcej niż jedną pozycję w AsortymentHistoria, które powstały po momencie przydzielenia go do Modelu.

  • Jeżeli Asortyment nie ma Modelu to można go powielać i edytować na milion sposobów - wszystko ok, powstają wpisy w AsortymentHistoria.
  • W momencie przydzielenia Modelu do Asortymentu nic złego się nie dzieje, dopóki nie utworzymy kolejnego wpisu w AsortymentHistoria.
    • Tym samym możemy wielokrotnie zmieniać Model i jego Cechy - nie ma to wpływu na nowe wpisy do AsortymentHistoria, bo historia nie śledzi pól modelu i cechy.
    • Jeżeli jednak jakimś cudem powstanie wpis w AsortymentHistoria kiedy jednocześnie jest przydzielony już Model to dowolna zmiana w polu Modelu i/lub jego Cechy wycofa nam dane w polach Asortymentu do tego AsortymentHistoria który był w momencie przydzielenia Modelu.
      • To znaczy, że jak zedytujemy pola Asortymentu, kiedy ten ma Model, zapiszemy (więc istnieje 2 lub więcej AsortymentHistoria i jednocześnie jest przypisany Model) i następnie ponownie włączymy Edycję - to tym razem zmieniając pola Model i/lub jego Cechy - nawróci nam do poprzedniej wersji AsortymentHistoria. (nie sprawdzałem już czy jest to N-1, czy po prostu 0, gdzie N=aktualny a 0=pierwszy od momentu przydzielenia modelu).

 

Już serio mi się nie chce tego analizować, bo nie mam kodu Waszego, ale powyższe by wyjaśniało wszystkie zjawiska z całego tego wątku/tematu (zmiany nazw cech, modelu, edycja wariantów z okna Asortymentu i/lub Modelu).

Ewidentnie gdzieś jest pointer na złe AsortymentHistoria kiedy AsortymentHistoria.rozmiar()>2, gdy Asortyment należy do Modelu.

 

Moje parę groszy - zadbajcie o to, żeby DOWOLNE zmiany w polach Asortymentu: Model (i jego Cechy), z dowolnego okna (Asortymentu i Modelu) nie wpływały w żaden sposób na sam Asortyment.

 

Wg mnie edycja Modelu (i cech wariantów w oknie Modelu) nie powinna w ogóle blokować się z edycją Asortymentu. Edycja pól asortymentu to jedno, a edycja pól Modelu dla tego Asortymentu to totalnie inna sprawa. Jedyna interakcja między tymi 2 powinna być tylko wtedy gdy Nazwa/opis mają być wygenerowane na podstawie Modelu/Cech, w każdym innym przypadku - NIE.

 

Przez ponad rok pracy z Modelami wielokrotnie spotykałem bugi z rożnymi dziwnymi zjawiskami przypominającymi race conditions i/lub blokowanie updatów i ich kolejności - myślę, że ten cały syf wynikał od początku właśnie z tego BUGa.

Edytowane przez Ernest Sadowski
Link to postu
×
×
  • Dodaj nową pozycję...