Seite 1 von 1

Problem bei Ubuntu [GELÖST]

Verfasst: Dienstag 1. März 2011, 15:48
von reppiz
Erstmal Hallo,
ich will ganz ehrlich sein - ich habe von Python keine Ahnung und bin am Verzweifeln.
Ich beschreib mal die Lage und hoffe ihr könnt mir helfen.

Wir haben im Verein einen Linux/Ubuntu Server (wo ich gerade dabei bin - diesen zu "erlernen"). Da drauf lief ein Script bzw. Formular (mit Python) - man gab Infos ein, klickte Submit und der Input wurde per Mail versandt. Klappte eigentlich IMMER - jedoch seit ich versuche mich in Linux einzugewöhnen nicht mehr. Wenn ich auf SUBMIT klicke bekomm ich nen 500er Error - und ich bin mir sicher das es iwie an Python liegt.
Erste Auffälligkeit:

Code: Alles auswählen

[Tue Mar 01 13:23:13 2011] [warn] mod_wsgi: Compiled for Python/2.6.2.
[Tue Mar 01 13:23:13 2011] [warn] mod_wsgi: Runtime using Python/2.6.4
kommt im Error Log wenn man Apache restartet.

Und wenn ich auf Submit gehe folgendes:

Code: Alles auswählen

[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172] mod_wsgi (pid=2784): Exception occurred processing WSGI script '/home/sabaini/bfgenv/bfg.wsgi'.
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172] Traceback (most recent call last):
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]   File "/home/sabaini/bfgenv/lib/python2.6/site-packages/repoze.tm2-1.0a5-py2.6.egg/repoze/tm/__init__.py", line 23, in __call__
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]     result = self.application(environ, save_status_and_headers)
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]   File "/home/sabaini/bfgenv/lib/python2.6/site-packages/repoze.bfg-1.2.1-py2.6.egg/repoze/bfg/router.py", line 130, in __call__
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]     response = view_callable(context, request)
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]   File "/home/sabaini/bfgenv/lib/python2.6/site-packages/repoze.bfg-1.2.1-py2.6.egg/repoze/bfg/configuration.py", line 1679, in _bfg_requestonly_view
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]     response = view(request)
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]   File "/home/sabaini/bfgenv/dinner/dinner/views.py", line 82, in view_registerform
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]     sendmail(appstruct)
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]   File "/home/sabaini/bfgenv/dinner/dinner/views.py", line 248, in sendmail
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]     msg = composemsg(appstruct)
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]   File "/home/sabaini/bfgenv/dinner/dinner/views.py", line 258, in composemsg
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]     values['displaydate'] = models.Dinnerdate.getFor(appstruct['dates']).date
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]   File "/home/sabaini/bfgenv/dinner/dinner/models.py", line 37, in getFor
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]     obj = DBSession().query(cls).filter_by(id=id).first()
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]   File "/home/sabaini/bfgenv/lib/python2.6/site-packages/SQLAlchemy-0.6.0-py2.6.egg/sqlalchemy/orm/query.py", line 1382, in first
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]     ret = list(self[0:1])
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]   File "/home/sabaini/bfgenv/lib/python2.6/site-packages/SQLAlchemy-0.6.0-py2.6.egg/sqlalchemy/orm/query.py", line 1295, in __getitem__
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]     return list(res)
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]   File "/home/sabaini/bfgenv/lib/python2.6/site-packages/SQLAlchemy-0.6.0-py2.6.egg/sqlalchemy/orm/query.py", line 1450, in __iter__
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]     self.session._autoflush()
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]   File "/home/sabaini/bfgenv/lib/python2.6/site-packages/SQLAlchemy-0.6.0-py2.6.egg/sqlalchemy/orm/session.py", line 879, in _autoflush
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]     self.flush()
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]   File "/home/sabaini/bfgenv/lib/python2.6/site-packages/SQLAlchemy-0.6.0-py2.6.egg/sqlalchemy/orm/session.py", line 1348, in flush
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]     self._flush(objects)
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]   File "/home/sabaini/bfgenv/lib/python2.6/site-packages/SQLAlchemy-0.6.0-py2.6.egg/sqlalchemy/orm/session.py", line 1429, in _flush
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]     flush_context.execute()
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]   File "/home/sabaini/bfgenv/lib/python2.6/site-packages/SQLAlchemy-0.6.0-py2.6.egg/sqlalchemy/orm/unitofwork.py", line 293, in execute
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]     rec.execute(self)
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]   File "/home/sabaini/bfgenv/lib/python2.6/site-packages/SQLAlchemy-0.6.0-py2.6.egg/sqlalchemy/orm/unitofwork.py", line 426, in execute
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]     uow
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]   File "/home/sabaini/bfgenv/lib/python2.6/site-packages/SQLAlchemy-0.6.0-py2.6.egg/sqlalchemy/orm/mapper.py", line 1559, in _save_obj
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]     c = connection.execute(statement.values(value_params), params)
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]   File "/home/sabaini/bfgenv/lib/python2.6/site-packages/SQLAlchemy-0.6.0-py2.6.egg/sqlalchemy/engine/base.py", line 1109, in execute
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]     return Connection.executors[c](self, object, multiparams, params)
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]   File "/home/sabaini/bfgenv/lib/python2.6/site-packages/SQLAlchemy-0.6.0-py2.6.egg/sqlalchemy/engine/base.py", line 1186, in _execute_clauseelement
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]     return self.__execute_context(context)
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]   File "/home/sabaini/bfgenv/lib/python2.6/site-packages/SQLAlchemy-0.6.0-py2.6.egg/sqlalchemy/engine/base.py", line 1215, in __execute_context
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]     context.parameters[0], context=context)
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]   File "/home/sabaini/bfgenv/lib/python2.6/site-packages/SQLAlchemy-0.6.0-py2.6.egg/sqlalchemy/engine/base.py", line 1284, in _cursor_execute
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]     self._handle_dbapi_exception(e, statement, parameters, cursor, context)
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]   File "/home/sabaini/bfgenv/lib/python2.6/site-packages/SQLAlchemy-0.6.0-py2.6.egg/sqlalchemy/engine/base.py", line 1282, in _cursor_execute
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]     self.dialect.do_execute(cursor, statement, parameters, context=context)
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]   File "/home/sabaini/bfgenv/lib/python2.6/site-packages/SQLAlchemy-0.6.0-py2.6.egg/sqlalchemy/engine/default.py", line 277, in do_execute
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172]     cursor.execute(statement, parameters)
[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172] OperationalError: (OperationalError) database is locked u'INSERT INTO address (first_name, last_name, address, city, zip, phone, email, info_consent) VALUES (?, ?, ?, ?, ?, ?, ?, ?)' (u'Max', u'Mustermann', u'Musterstrasse', u'Musterort', u'1111', u'1234/12345', '', False)
Wenn ihr mir helfen könntet wo der Fehler liegt bin ich euch zu TAUSENDFACHEN Dank verpflichtet.

Re: Problem bei Ubuntu

Verfasst: Dienstag 1. März 2011, 15:55
von cofi
Nein, das Problem steht in der Letzten Zeile, der Rest davor ist der Traceback:

Code: Alles auswählen

[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172] OperationalError: (OperationalError) [b]database is locked[/b] u'INSERT INTO address (first_name, last_name, address, city, zip, phone, email, info_consent) VALUES (?, ?, ?, ?, ?, ?, ?, ?)' (u'Max', u'Mustermann', u'Musterstrasse', u'Musterort', u'1111', u'1234/12345', '', False)
Dass `mod_wsgi` und `python` nicht zusammenpassen ist unschoen, aber ist garantiert nicht das Problem, sondern die Datenbank ist gelockt.

Re: Problem bei Ubuntu

Verfasst: Dienstag 1. März 2011, 16:07
von reppiz
cofi hat geschrieben:Nein, das Problem steht in der Letzten Zeile, der Rest davor ist der Traceback:

Code: Alles auswählen

[Tue Mar 01 15:14:38 2011] [error] [client 85.125.170.172] OperationalError: (OperationalError) [b]database is locked[/b] u'INSERT INTO address (first_name, last_name, address, city, zip, phone, email, info_consent) VALUES (?, ?, ?, ?, ?, ?, ?, ?)' (u'Max', u'Mustermann', u'Musterstrasse', u'Musterort', u'1111', u'1234/12345', '', False)
Dass `mod_wsgi` und `python` nicht zusammenpassen ist unschoen, aber ist garantiert nicht das Problem, sondern die Datenbank ist gelockt.
Danke für die schnelle Antwort, das war auch meine Vermutung, habe
jedoch die Zugriffsrechte mal sehr großzügig geändert:

Code: Alles auswählen

-rwxrwxrwx 1 sabaini sabaini 32768 2011-02-25 10:25 dinner.db
aber bringt td nichts

Re: Problem bei Ubuntu

Verfasst: Dienstag 1. März 2011, 16:10
von BlackJack
@reppiz: Es geht da nicht um Dateirechte sondern darum, dass aus irgendeinem Grund die Datenbank selbst gesperrt ist, zum Beispiel weil ein anderer Prozess gerade darauf zugreift und sie implizit oder explizit dabei gesperrt hat.

Re: Problem bei Ubuntu

Verfasst: Dienstag 1. März 2011, 16:15
von reppiz
okay alles klar,
naja habe versucht die komplette ordnerstruktur zu kopieren,
und apache da drauf zugreifen zu lassen bis hin zu einem KOMPLETTEN
server neustart (also den rechner ganz runterfahren und wieder hoch)
und das müsste ja theoretisch den prozess oder whatever stoppen?

habt ihr evtl noch eine idee wie man da nachsehen kann
oder ähnliches?
ansich greift KEINE anwendung auf diese db zu außer dieses Formular.

Re: Problem bei Ubuntu

Verfasst: Dienstag 1. März 2011, 16:23
von cofi
Das erklaert einiges. Lass mich raten: Beim Kopieren war der Apache noch aktiv? Und das Programm darauf auch?

Wenn es eine Datei mit dem Namen `dinner.db.lock` gibt, sollest du die loeschen.

Re: Problem bei Ubuntu

Verfasst: Dienstag 1. März 2011, 16:27
von reppiz
beim kopieren war apache tatsächlich noch aktiv, habe erst DANACH einen restart gemacht
jedoch habe ich es nur kopiert weil dieser error-log eintrat und ich mir dachte vl. wenn ich einen anderen pfad (var/www) wähle, dass es dann funktioniert.

dinner.db.lock habe ich nicht, nein.

Re: Problem bei Ubuntu

Verfasst: Dienstag 1. März 2011, 17:41
von reppiz
nichts?
:(

Re: Problem bei Ubuntu

Verfasst: Dienstag 1. März 2011, 22:12
von noisefloor
Hallo,

der Fehler ist ja klar - die Datenbank ist gesperrt (bzw. genau genommen ist ein Lock drauf).

Heißt: Lock entfernen. Wie auch immer (kommt auf die DB an). ODER: DB löschen (also die Datenbank an sich, NICHT den DB Server!) und neu kopieren. Kopieren am besten auch nicht über kopieren sondern per SQL Dump. Es sei denn, ihr habt SQLite, dann geht auch kopieren.

Gruß, noisefloor

Re: Problem bei Ubuntu

Verfasst: Mittwoch 2. März 2011, 08:16
von reppiz
okay danke,
aber wie gesagt HABE die gesamte ordnerstruktur schonmal kopiert und neu drauf zugreifen lassen,
(inkl. DB) - aber werde es nochmal probieren. Verwenden sqlite ja.

Und die error tracebacks sagen gar nix?
bzw auch ned das

[Tue Mar 01 13:23:13 2011] [warn] mod_wsgi: Compiled for Python/2.6.2.
[Tue Mar 01 13:23:13 2011] [warn] mod_wsgi: Runtime using Python/2.6.4

(ich persönlich dachte dass dies der hauptfehler ist)

Re: Problem bei Ubuntu

Verfasst: Mittwoch 2. März 2011, 08:30
von BlackJack
@reppiz: Wenn Du den Webserver neu gestartet hast, kommt der Traceback wegen dem Lock dann schon beim ersten mal wenn Du das ausprobierst? Wenn es erst ab dem zweiten Versuch kommt, kann das Problem auch wo anders liegen und das noch vorhandene Lock ist nur eine Folge davon.

Wenn zum Beispiel beim ersten Versuch etwas in die Datenbank eingetragen wird ohne ein "commit" durchzuführen und dass Programm dann, zum Beispiel beim Versand der E-Mail "hängen bleibt", kann damit die Datenbank für weitere Zugriffe blockiert werden.

Re: Problem bei Ubuntu

Verfasst: Mittwoch 2. März 2011, 08:40
von reppiz
Ich probiers gleich nochmal aus und gib dir dann Bescheid,
so wie ich das gestern jedoch in Erinnerung habe - kommt beim ersten Versuch kein
ErrorLog - aber auch kein Eintrag in die DB - er ladet einfach nur und ladet und ladet...

...ohne etwas einzutragen, wegzuschicken, oder im ErrorLog aufzuzeichnen.

Das Problem ist dass das Script immer funktioniert hat,
und erst seit ich (da ich noch sehr in der Lernphase bin)
mich mit dem Server beschäftigt habe und Mailman installiert habe
(wenn auch nicht richtig konfiguriert -.-) nicht mehr läuft.

Re: Problem bei Ubuntu

Verfasst: Mittwoch 2. März 2011, 09:06
von reppiz
Habs zum Laufen gebracht -
Fehler war tatsächlich in Postfix.
Aufgrund von Mailman hab ich folgende lines geadded:

relay_domains = lists.firma.info
transport_maps = hash:/etc/postfix/transport
mailman_destination_recipient_limit = 1

habe diese auskommentiert und schon gings

Re: Problem bei Ubuntu

Verfasst: Mittwoch 2. März 2011, 19:04
von noisefloor
Hallo,
reppiz hat geschrieben:okay danke,
Und die error tracebacks sagen gar nix?
bzw auch ned das

[Tue Mar 01 13:23:13 2011] [warn] mod_wsgi: Compiled for Python/2.6.2.
[Tue Mar 01 13:23:13 2011] [warn] mod_wsgi: Runtime using Python/2.6.4

(ich persönlich dachte dass dies der hauptfehler ist)
Nein, ist ja auch nur eine Warnung. Es heißt, dass du Python 2.6.4 installiert hast, mod_wsgi aber gegen 2.6.2 kompiliert wurde. Da es die gleiche Main-Version ist (2.6) _sollte_ das eher keine Probleme machen.

Abgesehen davon: Wenn du ein Problem mit mod_wsgi hättest, dann ist es so wie so wahrscheinlich, dass deine Webanwendung erst gar nicht startet...

Gruß, noisefloor