Egyik oldalamon az alábbi hibaüzenet típus 'kísért' azóta, hogy az oldal elkészült:
Duplicate entry '1597-6736' for key 1 query: INSERT INTO upload (fid, nid, vid, list, description, weight) VALUES (6736, 1597, 1597, 1, 'psy.jpg', 0) - /var/www/sinosz.hu/vh_www/web/modules/upload/upload.module - 419. sor.
Normál (hibaüzenet mentes) esetben a node_invoke_nodeapi() az alábbi $op paraméterekkel hívódik meg:
validate
presave
insert
xxx Oldal létrejött.
load
view
alter
load
view
alter
Az én esetemben amikor a hibaüzenet jelentkezik ez így néz ki:
validate
presave
insert
presave <-- itt kezdődik a furcsaság
update
load
node/1602 számára új hirek/hirek/proba-2 álnév készült.
node/1602 számára új hirek/hirek/proba-2 álnév készült.
próba 2 Hírek létrejött.
load
view
alter
load
view
alter
Látható, hogy az insert után 'valamiért' újrakezd egy update-ot. Ezt nem szereti az upload modul, lévén ő már elmentette a feltöltött fájlt adatait, így arra nem tud újra menteni. Hibaüzenet dob.
Megnéztem a modullistámat és rövid idő alatt kibukott, hogy a Workflow modul a ludas a dologban, mert a tartalomtípusok közül csak Hírek-hez volt beállítva (kikapcsolva a modult megszűnt a hiba).
Arra kellene rájöjjek, hogy a Workflow (vagy a Node modul?) miért, hogyan és hol indítja el pluszba az update-ot is az insert közben!?
Valakinek ötlet?
Ötlet
Hali!
Ez ugyanaz a para, mint amit korábban is írtál, igaz?
Ötlet: amire felfigyeltem, amikor letöltöttem a Workflow-t, és belenéztem a kódjába:
http://drupalcontrib.org/api/drupal/contributions!workflow!workflow.modu...
Itt a workflow_nodeapi-nál az
'insert'
részben lévő kód fut le ugye új node felvitelekor, de itt van egy érdekes rész:// Note no break; fall through to 'update' case.
Tehát nincs
break;
, így egyből átugrik az'update'
esetre is, ami önmagában még nem lenne bizonyíték, de meghívódik a workflow_transition is:http://drupalcontrib.org/api/drupal/contributions%21workflow%21workflow....
ezt őszintén szólva már nem volt kedvem kibogarászni, hogy itt történik-e valami gonoszság, de elképzelhető, hogy itt hívódik meg egy olyan függvény, ami ebben az esetben bekavar.
Ez csak ötletelés persze, a konkrét megoldást nem tudom, de hátha ez már ér valamit.
Sajnos itt nem az a gond,
Sajnos itt nem az a gond, hogy átfut az update-ra, hanem, hogy miután elmentette, nem fejezi be és adja vissza a node oldalt, hanem úgy tesz mintha újra beküldeném immár update-elve a node-ot... :(
...mit tudok: http://web.termuves.hu
Jaja, tudom, csak gondoltam
Jaja, tudom, csak gondoltam hátha művel valamit az említett
workflow_transition()
függvény, ami miatt előfordul ez a teljesen degenerált anomália. Szóval konkrétumot nem tudok, én a helyedben újranyitnám az aboros által linkelt issue-t, mert akkor sanszos, hogy még foglalkozik is vele a fejlesztő:http://drupal.org/node/773458
öregszem
Ez ugyanaz a para, mint amit korábban is írtál, igaz?
Bakker öregszem.
De látszik, hogy a http://drupal.org/node/363454 megoldás nem kielégítő, mert én is negyedévvel ezelőtt megcsináltam annak ellenére hogy azt vallom az alaprendszerbe semmit nem változtatunk. Negyedévre rá már el is feledkeztem róla, persze, hogy előjött újra...
Legyen ez tanulság mindenkinek!
...mit tudok: http://web.termuves.hu
hibajegy
http://drupal.org/node/773458
onnan pedig a link:
http://drupal.org/node/363454
esetleg használod az insert modult is?
ha legfrissebb workflow modulon vagy és fennál a probléma, én újranyitnám az első linkben szereplő issuet.
-
clear: both;
Én is ezt tenném. Hát persze,
Én is ezt tenném. Hát persze, hogy az én előző hsz.-emből meg kimaradt az issue linkelése, de legalább te megtetted. :)