Domanda

C'è un bug molto strano che sta accadendo su uno dei nostri siti Web dei clienti e non siamo stati in grado di capire cosa sta succedendo. È difficile.

Il problema


In termini semplici, Drupal sta caricando il file JavaScript sbagliato. Abbiamo un tema personalizzato per il sito. Nel file .info del tema c'è questa riga:

scripts[] = script/script.js

Un paio di settimane fa abbiamo aggiornato il file .info. Il file .info originale conteneva:

scripts[] = script/script-min.js

I file script e script-min sono file completamente diversi e il server dovrebbe caricare il script.js file.

Ecco il comportamento a cui stiamo assistendo:

  • Quando scarichiamo la cache del tema, Drupal legge nel file .info e carica script.js
  • Dopo che Cron corre (ogni 5 minuti) Drupal deciderà casualmente di caricare script-min.js
  • Se controlliamo il database, il system La tabella mostra che Drupal ha memorizzato nella cache script-min.js

Va notato che nulla nel codice sta caricando script-min.js. Abbiamo tratto e non possiamo scoprire da dove Drupal avrebbe persino cercato di caricare il file. Il file script-min.js esiste nella directory di script lungo il file script.js, ma in nessun luogo si fa riferimento.

La nostra configurazione


  • Hosting cloud Acquia con GIT e PHP 5.3+
  • 3 ambienti (Dev, Stage, Production)
  • L'ambiente di produzione ha due server Web, un bilanciamento, vernice e mysql. I server Web utilizzano il file system Gluster per sincronizzare i file
  • Questo problema non sembra apparire sui nostri server Dev/Stage

Quello che abbiamo provato


Nessuna di queste correzioni ha funzionato:

  • Registro di ricostruzione
  • Rimozione del file script-min.js
  • Targeting IPS del server Web per escludere un problema con la configurazione a dual-server
  • Cancella tutte le cache
  • Cancella cache di vernice

Perché abbiamo bisogno di aiuto


Abbiamo cercato di diagnosticare questo problema da quasi due settimane e abbiamo esaurito le idee ovvie. La nostra teoria principale in questo momento è che il loro potrebbe essere un problema con i due server web, ma da tutti i nostri test, non sembra essere il caso ... ma ha più senso.

Siamo consapevoli che probabilmente potremmo convincere il server a utilizzare il file JS giusto semplicemente usando drupal_add_js Invece del metodo .info, ma vogliamo davvero sapere perché Il server sta caricando un file a cui non lo stiamo dicendo.

Modifiche


Questi moduli implementano hook_cron () sul sito: Acquia_agent, acquia_spi, ctools, dblog, field, googleanalytics, node, scheduler, system, update, xmlsitemap_node, xmlsitemap, xmlsitemap_engines

Ho già controllato e durante Cron, il drupal_clear_js_cache, system_rebuild_theme_data, e drupal_theme_rebuild le funzioni sono non colpo. I miei presupposti originali avevano a che fare con quelle funzioni, ma se non funzionano durante Cron, probabilmente non sono il problema.

Pensiamo che il problema potrebbe essere correlato a questo rapporto di bug: http://drupal.org/node/1765812

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a drupal.stackexchange
scroll top