Project

General

Profile

Bug #4291

4.7.0-rc3-site er ustabilt

Added by Gitte Barlach 7 months ago. Updated 5 months ago.

Status:
Resolved (tag version)
Priority:
Immediate
Assignee:
Estimated time:
URL med eksempel:
Kategorier:
Administration - Systemkonfiguration

Description

Vi har installeret 4.7.0-rc3 på stg.aakb.dk 
Vi oplever at sitet dør fuldstændigt på tilfældige tidspunkter. Se ved

En registry rebuild får det til at virke igen - meen, det kan vel ikke være meningen ?


Related issues

Related to DDB CMS - Bug #4296: Lazy load (AJAX) ratings for forbedret performanceResolved (tag version)

History

#1 Updated by Gitte Barlach 7 months ago

Da jeg prøvede at logge ind som admin gik sitet ned igen. Se vedlagte skærmdump

#2 Updated by Gitte Barlach 7 months ago

  • Description updated (diff)

#3 Updated by Simon Holt 7 months ago

  • Description updated (diff)

Jeg mener helt bestemt også at have set den FacesExtendableException ifb med en opdatering før. Det var dog ikke den seneste opdatering, så det er over et år siden og kan ikke huske hvad jeg gjorde for at komme videre.

Men den "Notice: undefined index 'module' in FieldInfo.." observerede jeg også ifb med sidste opdatering, og den ser ud til at komme hvis man har et felt på en entity hvis felt-type ikke længere eksisterer i koden. Ved mig var det infomedia feltet på ting_objects der ikke var blevet fjernet korrekt efter vi gik over til ding_entity_buttons. 

Men det er helt sikkert ikke den, der er skyld i at jeres site går ned.

 

#4 Updated by Kasper Garnæs 7 months ago


Jeg tænker at denne kommentar kunne være relevant:

Also had a version of this with method "process". In my case it turned out to be due to a rule being invoked during early-bootstrap (watchdog) due to a php warning/error caused with an incompatibility between rules and a core patch

https://www.drupal.org/project/rules/issues/1285856#comment-12640833

Ud fra det så kunne det være et resultat af ovenstående notices.

#5 Updated by Jesper Kristensen 6 months ago

Den er osse i rc5. Er dog kommet frem til at det kommer fra ding_staff.

Det er som om det hjælper at slå infomedia fra og til igen... meget mærkeligt.

#6 Updated by Gitte Barlach 6 months ago

  • Assignee set to Jesper Kristensen
  • Priority changed from Normal to High

#7 Updated by Jesper Kristensen 6 months ago

Fik den igen denne gang med bpi_rules_push... så lidt som om det er forskellige ting.

Kan at rules findes i 7.x-2.12 og vi køre 7.x-2.7... så måske en opgradering. Objectet har `facesMethods` som et tom array og laver man en rebuild har den fyldet det op og ting køre igen.

 

Så måske en opdatereing.

#8 Updated by Simon Holt 6 months ago

Begyndte at få denne fejl på diverse test sites og blev lidt bekymret, da den så ud til at blive ved med at dukke op og give WSOD. Selvom jeg clearede/rebuildede gik der noget tid, så kom den igen.

Det lykkedes mig at finde synderen (i hvert fald i mit tilfælde). Og Kaspers antagelse var rigtig med at det hang sammen. Det ser ud til at blive udløst ifb med en exception, som er relateret til den anden notice, der vedrører en felt-instans hvis felt type ikke længere er defineret i koden.

Og synderen ser ud til at være den nu fjernede felttype ding_entity_rating_result, der ikke er blevet slettet korrekt i databasen, da den stadig anvendes på ting_object. Feltet blev fjernet ifb med #4296

Det hele begynder i hook_init(), hvor rules_init() starter en event, de i sidste ende udløser og_rules_condition_info(), der kalder og_get_all_group_entity() som så udløser notice med manglende felt under tidlig bootstrap (da det starter i hook_init()).

Stack trace.

[0] modules/field/field.info.class.inc:628, FieldInfo->prepareInstanceDisplay() // ding_entity_rating_result_default på ding_entity_rating_result
[1] modules/field/field.info.class.inc:540, FieldInfo->prepareInstance() // ding_entity_rating_result på ting_object
[2] modules/field/field.info.class.inc:400, FieldInfo->getBundleInstances() // On ting_object:ting_object
[3] modules/field/field.info.inc:629, field_info_instance() // On ting_object
[4] profiles/ding2/modules/contrib/og/og.module:2424, og_get_group_type()
[5] profiles/ding2/modules/contrib/og/og.module:2440, og_is_group_type()
[6] profiles/ding2/modules/contrib/og/og.module:2468, og_get_all_group_entity()
[7] profiles/ding2/modules/contrib/og/og.rules.inc:435, og_rules_condition_info()
[8] profiles/ding2/modules/contrib/rules/rules.module:220, call_user_func()
[9] profiles/ding2/modules/contrib/rules/rules.module:220, rules_fetch_data() // Invokes hook_rules_condition_info()
[10] profiles/ding2/modules/contrib/rules/includes/rules.core.inc:1698, RulesAbstractPlugin->rebuildCache()
[11] profiles/ding2/modules/contrib/rules/rules.module:366, _rules_rebuild_cache()
[12] profiles/ding2/modules/contrib/rules/rules.module:328, rules_get_cache()
[13] profiles/ding2/modules/contrib/rules/includes/rules.core.inc:338, RulesExtendable->setUp()
[14] profiles/ding2/modules/contrib/rules/includes/rules.plugins.inc:740, RulesEventSet->__construct()
[15] profiles/ding2/modules/contrib/rules/includes/rules.plugins.inc:786, RulesEventSet::rebuildEventCache()
[16] profiles/ding2/modules/contrib/rules/rules.module:336, rules_get_cache()
[17] profiles/ding2/modules/contrib/rules/rules.module:972, rules_invoke_event()
[18] profiles/ding2/modules/contrib/rules/rules.module:15, rules_init()
[19] includes/module.inc:957, call_user_func_array()
[20] includes/module.inc:957, module_invoke_all() // hook_init()
[21] includes/common.inc:5323, _drupal_bootstrap_full()
[22] includes/bootstrap.inc:2538, drupal_bootstrap()
[23] index.php:20, {main}()

PR der korrekt sletter dette felt og dens instanser følger!

#9 Updated by Simon Holt 6 months ago

  • Related to Bug #4296: Lazy load (AJAX) ratings for forbedret performance added

#10 Updated by Simon Holt 6 months ago

  • Status changed from Needs analysis to Needs code review
  • Assignee changed from Jesper Kristensen to Gitte Barlach

#11 Updated by Gitte Barlach 6 months ago

  • Assignee changed from Gitte Barlach to Jesper Kristensen

#12 Updated by Jesper Kristensen 6 months ago

  • Priority changed from High to Urgent

#13 Updated by Jesper Kristensen 6 months ago

  • Status changed from Needs code review to Technical test
  • Assignee changed from Jesper Kristensen to Gitte Barlach
  • Priority changed from Urgent to Immediate

Dette er vigtig at få med ud hvis det giver en WSOD... så er det en alvorlig fejl i 4.7.0 og vi bør lave en 4.7.1 release med dette fix.

Koden reviewed og afventer release.

#14 Updated by Simon Holt 6 months ago

Observerede i hvert fald WSOD på min lokale installation. Ser også ud som om det er tilfældet i de screenshot, der er postet i sagen her.

#15 Updated by Kasper Garnæs 6 months ago


Det er fint at få feltet fjernet rigtigt.

Jeg lægger dog mærke til at hvis man skal tro titlen på dette issue så er den oprindelige fejl er blevet op imod 4.7.0-rc3 for ~1 måned siden. Ændringerne fra #4296 kom først ind i forbindelse med 4.7.0-rc6 som blev udgivet for ~2 uger siden. Hvis det er rigtigt så kan den foreslåede ændring ikke rette den oprindelige fejl.

#16 Updated by Simon Holt 6 months ago

Kan se din pointe :)

På de to testsider hvor jeg konsistent fik FacesExtendable exception, har jeg ikke oplevet det igen efter feltet er blevet fjernet. Så i disse tilfælde ser det altså ud til at det var triggeren og har også verifceret det ved af følge stack trace til fejlen blev udløst.

Men det så må være noget andet, der har udløst det i Gittes og Jepsers tilfælde..

 

 

#17 Updated by Simon Holt 6 months ago

Efter nærmere eftertanke:

De andre notices fra screenshots som Gitte postede da sagen blev oprettet ("Notice: Undefined index: module in FieldInfo->prepareInstanceDisplay()"), optræder netop hvis der er en felt instans, der mangler felttype definition i koden.

Og da jeg samtidig uafhængigt også kom frem til, at det var en mangle felttype definition der var årsag til fejlen i mit tilfælde, er det måske nærliggende at tro, at Gittes og Jespers FacesExtendable exception også stammer fra et lignende problem.

Måske er det et andet felt så? Som jeg nævnte i tidligere kommentar, har jeg også haft lignende problem med ting_infomedia feltet, der stadig havde en instans på ting_object. Så @Gitte @Jesper: I kunne lige tjekke om I har efterladt ting_infomedia felt på ting_object? 

Hvis det er tilfældet, synes jeg også vi skal sørge for at det er fjernet i en update_hook i denn sag

#18 Updated by Rolf Madsen 6 months ago

@Simon, er det noget du vil se på?

Så afventer vi bestillingen af udrulning af patchen hos DBC.

#19 Updated by Simon Holt 6 months ago

@Rolf det vil jeg gerne. Under alle omstændigheder er det en god ide, at sikre det er korrekt fjernet.

Lige for at give lidt historik:

1. ting_infomedia blev i sin tid tilføjet til ting_object via den nu fjernede "hook_ding_entity_fields()". Den blev fjernet ifb med oplåsning af felter i #1445. Se også commit: https://github.com/ding2/ding2/commit/8b8439ae22bc2521d09099c10bd9d29852f023a5#diff-e5dafcc58f674355bc06b96a7e4f982fL18

2. Ifb med #1437 blev ting_infomedia felttype definition fjernet og vi gik over til hook_ding_entity_buttons(). Relevant PR: https://github.com/ding2/ding2/pull/1148. Blev merget Aug 14, 2018. Bemærk at der i PR ikke er nogen opdateringsfunktion, der fjerner ting_infomedia feltet i ovenstående. Så installationer der er ældre end før hook_ding_entity_fields() blev fjernet, bør have dette efterladte i kræft af ændringerne i #1437.

Har opdateret PR så det også fjerner infomedia: https://github.com/ding2/ding2/pull/1441

#20 Updated by Simon Holt 6 months ago

  • Status changed from Technical test to Needs code review

#21 Updated by Rolf Madsen 6 months ago

Tak Simon, du er jo lynende hurtig! :-)

#22 Updated by Gitte Barlach 6 months ago

  • Assignee changed from Gitte Barlach to Kasper Garnæs

#23 Updated by Kasper Garnæs 6 months ago

  • Status changed from Needs code review to Reviewed

Reviewed og godkendt.

#25 Updated by Simon Holt 6 months ago

@Rolf, yes det kan den. Begge rettelser er lavet i samme PR, så du kan bare sende dem det link, hvis det er.

#26 Updated by Kasper Garnæs 6 months ago

Rolf/Simon: Som Christian Vandel har bemærket så har det ingen effekt hvis man alene patcher sites'ne. Ændringen indeholder databaseopdateringer, som pt. kun bliver kørt, når der laves en deployment efter vores normale procedure.

#27 Updated by Simon Holt 6 months ago

Det er selvfølgelig rigtig. Der skal køres en update efter ændringerne er patchet på.

#28 Updated by Kasper Garnæs 6 months ago

  • Status changed from Reviewed to Technical test
  • Assignee changed from Kasper Garnæs to Gitte Barlach

Ændringen er merged som en del af 4.7.1-rc1.

Fejlen er svær at genskabe og derfor er rettelsen tilsvarene svær at teste. Hvis koden kan rulles ud på et upgrade site uden problemer, så foreslår jeg at vi godkender og tagger 4.7.1.

#29 Updated by Gitte Barlach 5 months ago

  • Status changed from Technical test to Resolved (tag version)

Testet på upgrade- og vanilla-fbs med 7.x-4.7.1-rc1, der som eneste rettelse indeholder pull/1441

- DBC skriver at der intet var at bemærke til udrulningen

- jeg taget et kig på grundfunktionerne på sitet og alt ser normalt ud. 

Godkender derfor denne. 

#30 Updated by Simon Holt 5 months ago

Kan lige supplere med lidt ekstra test:

Jeg var så "heldig" at observere denne fejl endnu engang ifb med #4256, hvor jeg har modtaget et dump fra Vejen produktion (7.x-4.6.2), som tilsyneladende også kan producere FacesExtendable exception.

Jeg så det som en oplagt mulighed til lige at teste igen og jeg kan bekræfte, at det i dette tilfælde faktisk var det eftefladte ting_infomedia, der var synderen, som jeg antog i tidligere kommentar.

Det ender med at kalde modules/field/field.info.class.inc:540, FieldInfo->prepareInstance() på det efterladte ting_infomedia felt.

Det var også oplagt lige at merge/teste rettelsen fra denne sag https://github.com/ding2/ding2/pull/144 og kan bekræfte at FacesExtendable fejlen forsvandt med det samme efter opdateringerne var kørt.

 

 

Also available in: Atom PDF