Frage

Ich bin mit mod-wsgi mit django und in django Ich benutze PyLucene Volltextsuche zu tun.

Während mod-wsgi konfiguriert ist, Embedded-Modus zu sein, gibt es kein Problem an allen. Aber wenn mod-wsgi konfiguriert ist Daemon-Modus zu sein, bekommt der Apache gerade stecken, und der Browser nur halten Laden aber nichts angezeigt wird.

Dann Identität ich das Problem der jcc.initVM (zu sein). Hier ist mein wsgi Skript:

import os, sys, jcc
sys.stderr.write('jcc.initVM\n')
jcc.initVM()
sys.stderr.write('finished jcc.initVM\n')
....

Nachdem ich meine Apache neu zu starten, und eine Anfrage von meinem Browser machen, finde ich, dass /var/log/apache2/error.log nur hat:

jcc.initVM

Was bedeutet, dass es an der Linie jcc.initVM () stecken bleibt. (Wenn die mod_wsgi als Embedded-Modus konfiguriert ist, gibt es kein Problem.)

Und hier ist meine / etc / apache2 / sites-available / default:

WSGIDaemonProcess site user=ross group=ross threads=1
WSGIProcessGroup site
WSGIScriptAlias / /home/ross/apache/django.wsgi

<Directory /home/ross/apache/>
  Order deny,allow
  Allow from all
</Directory>

Und schließlich finde ich heraus, dass in dem Quellcode jcc (jcc.cpp), ist es an der Funktion hängt:

JNI_CreateJavaVM(&vm, (void **) &vm_env, &vm_args)

Wie das Problem zu lösen?

Programmversionen:

libapache2-mod-wsgi 2.3-1
jcc 2.1
python 2.5
Apache 2.2.9-8ubuntu3
Ubuntu 8.10
War es hilfreich?

Lösung

Die Lösung für dieses Problem enthalten war in mod_wsgi 2.4.

Andere Tipps

Bitte beachten Sie http://code.google.com/ p / modwsgi / Themen / detail? id = 131 für die Diskussion Details.

Kurz gesagt, die mod_wsgi werden Signale für das Daemon-Programm blockieren, die initVM funktioniert nicht machen kann. Weiterhin gemäß Andi aus jcc, initVM kann nur aus dem Haupt-Thread aufgerufen werden, und es kann weiteres Problem auch verursachen.

Deshalb habe ich beschlossen, den Suchcode mit initVM () zu einem völlig separaten Prozess zu bewegen, und das Problem gelöst.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top