Problem bei Ubuntu [GELÖST]

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
reppiz
User
Beiträge: 8
Registriert: Dienstag 1. März 2011, 15:42

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.
Zuletzt geändert von reppiz am Mittwoch 2. März 2011, 11:12, insgesamt 1-mal geändert.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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.
reppiz
User
Beiträge: 8
Registriert: Dienstag 1. März 2011, 15:42

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
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.
reppiz
User
Beiträge: 8
Registriert: Dienstag 1. März 2011, 15:42

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.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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.
reppiz
User
Beiträge: 8
Registriert: Dienstag 1. März 2011, 15:42

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.
reppiz
User
Beiträge: 8
Registriert: Dienstag 1. März 2011, 15:42

nichts?
:(
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

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
reppiz
User
Beiträge: 8
Registriert: Dienstag 1. März 2011, 15:42

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)
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.
reppiz
User
Beiträge: 8
Registriert: Dienstag 1. März 2011, 15:42

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.
reppiz
User
Beiträge: 8
Registriert: Dienstag 1. März 2011, 15:42

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
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

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
Antworten