Webform update után fehér halál

fox mulder képe

Sziasztok, bajban vagyok (és bocs, mert hosszú leszek)!

Feltöltöttem a szerverre és kicsomagoltam a mimemail és a webform modulok legfrissebb verzióit. Tényleg nem tettem semmi mást, de most egy bazi nagy fehér semmi fogad:

http://kacagva.hu

Már töröltem az összes cache tábla tartalmát és elkezdtem az index.php-tól kezdve print függvényekkel megkeresni, hogy hol akad el. Eddig jutottam:

index.php:

...
require_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
print("index.php");  //  <--- Eddig már nem jut el
...

bootstrap.inc, _drupal_bootstrap():

...
case DRUPAL_BOOTSTRAP_FULL:
  require_once './includes/common.inc';
  _drupal_bootstrap_full();
  print("_drupal_bootstrap()");  //  <---Eddig már nem jut el
...

common.inc, drupal_bootstrap_full():

...
  if (!defined('MAINTENANCE_MODE') || MAINTENANCE_MODE != 'update') {
    module_invoke_all('init');
    print("drupal_bootstrap_full()");  // <---Eddig már nem jut el
  }
...

module.inc, module_invoke_all():

function module_invoke_all() {
  $args = func_get_args();
  $hook = $args[0];
  unset($args[0]);
  $return = array();
  print_r(module_implements($hook)); // <--- Kiírja az összes modult, amiben van MODULNÉV_init
  foreach (module_implements($hook) as $module) {
    $function = $module .'_'. $hook;
    $result = call_user_func_array($function, $args);
    if (isset($result) && is_array($result)) {
      $return = array_merge_recursive($return, $result);
    }
    else if (isset($result)) {
      $return[] = $result;
    }
  }
  return $return;
}

A foreach ciklus elhasal az fb_init és a mobileplugin_init miatt (az fb_init a facebook modulban van), ezek ugyanis nem futnak le végig. Megnéztem, hol akadnak el és addig trükköztem, hogy lefussanak végig és elértem, hogy a fenti module_invoke_all is végig lefut, de az eredmény ugyanaz a nagy semmi.

Az összes eddigi most lefut, az index.php továbblép a drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); soron, de megint elakad a $return = menu_execute_active_handler(); sorban.

Mi történhetett?

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
szantog képe

Miért nem localhoston nézed meg? Mi van az error logban? Az fb egyénként lehet gyenge láncszem, elég sokmindent csinál hook initben, el tudom képzelni, hogy felzabálja az erőforrásokat.

0
0

----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.

pp képe

„Mi történhetett?”

Ha nincs hibaüzenet az azt jelenti, hogy vagy le van tiltva, vagy el se jut a dolog addig, hogy ki tudja írni a php a hibaüzenetet. Érdemes megnézni a webszerver error logját.

pp

0
0
fox mulder képe

Sosem láttam még ezt a fájlt, pedig kiüti a szemem :-(

A Drupal gyökérkönyvtárában van, a neve error_log és ide vannak átírányítva a PHP hibák. Nos, e szerint a content.module 1475 sorában:

Call to undefined function node_get_types()

A címlapot egy nézet adja és a nézet használja a content_fields() függvényt és ebben van az ominózus.

1
0

Fox Mulder

chx képe

mint a gyokerben.

Nade. node_get_types() volt meg D6-ban. toljal egy if (!function_exists('node_get_types')) error_log(print_r(debug_backtrace(), TRUE), 4) osztan nezegesd a backtrace-t az error logban, hogy sikerult a content module-t berantani es meghivni a node elott??

1
0
fox mulder képe

Köszönöm a segítséget! Miből kéne, hogy kiderüljön, hogy a node modul már be van töltve? Ez a sorrend:

  • index.php: menu_execute_active_handler()
  • menu.inc: call_user_func_array('views_page')
  • ... views függvényhívások...
  • sites/all/modules/views/includes/cache.inc: module_invoke_all()
  • module.inc: call_user_func_array('content_views_data')
  • ...cck függvényhívások...

UI.: A content modul mellett a menu.inc 411. sorában van egy szintén definiálatlan node_load(). Mikor és hol kellene betöltődnie a node modulnak?

UI2.: ...és a user_access() is undefined a views_plugin_display.inc fájlban.

0
0

Fox Mulder

szantog képe

Nézz már bele a system táblába, nem lett-e valahogy kikapcsolva a node és a user modul? (status = 0)

0
0

----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.

fox mulder képe

Nem, mindkettőnél status = 1.

Megnéztem egy másik D6 honlapomon, hogy a _drupal_bootstrap_full() (common.inc) végén lévő module_invoke_all('init') függvényhívás normális esetben a core modulok hook_init implementációit is futtatja, a hibás honlapon viszont csak a contrib modulok érintettek, egy core modul sem.

0
0

Fox Mulder

szantog képe

Nem az initnél lesz a gáz. A node_get_types() a node.module-ben van. A .module fájlok a bootstrapben a module_load_all() függvénnyel kerülnek betöltésre.

Kerest meg a http://api.drupal.org/api/drupal/includes--common.inc/function/_drupal_b... függvényt, és ha a module_load_all elé beírod, hogy hogy print_r(module_list(TRUE, FALSE)); akkor milyen listát kapsz vissza? Ez két okból sem rossz, egyrészt ha nincs eredmény, akkor már tudjuk, hogy a bootstrapban a module_load_all előtt kell keresni a bűnöst, másrészt meg megtudjuk, hogy milyen modulok .module fájljai lesznek betöltve.

Apropó, modules/node/node.module fálj létezik a szerveren egyáltalán? Lehet, hogy drupal_load nem ad vissza hibát, ha nincs .module fálj egy bekapcsolt modulhoz.

0
0

----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.

fox mulder képe

Van localhoston egy működő D6 teszt célra, a "gyanús" modulok közül ehhez is van fb, webform, mimemail. A javaslatod kiírja az összes bekapcsolt contrib ÉS core modult, a beteg lapon viszont csak a contrib modulokat.

0
0

Fox Mulder

fox mulder képe

Mármint a system táblában, csak nem a `status`-sal volt gond, hanem a `filename`-mel.

Így kezdődött: volt egy kitömörített drupal a sites/all/modules-ban (ne kérdezzétek, hogy került oda).

"-Miafeneezitt" -> törlés.

Nem a webform és mimemail modulok frissítése volt a hiba kiváltója, hanem ez a lépés (fél másodperc telt el a kettő között). Mostanra ugyanis kiderült, hogy a sytem táblában a core modulokhoz tartozó `filename` modules/MODUL/stb. helyett sites/all/modules/DRUPAL/modules/MODUL/stb. volt. Nem jelentkezett semmi hiba, amíg ott is volt egy drupal.

Javítottam a system táblát, javítottam 276 rossz `file` mezőhöz tartozó értéket a menu_router táblában és lőn.

Tanulság: ne csináljunk hülyeségeket.

0
0

Fox Mulder