globaleaks / whistleblowing-software

GlobaLeaks is free, open-source whistleblowing software enabling anyone to easily set up and maintain a secure reporting platform.
https://www.globaleaks.org
Other
1.22k stars 267 forks source link

Unable to Open Database File trigger an unhandled exception #706

Open fpietrosanti opened 10 years ago

fpietrosanti commented 10 years ago

Unable to Open Database File trigger an unhandled exception.

This ticket is about handling properly this specific issue, by logging it with a very big warning in the user console and by writing a proper error message in the log file files of globaleaks.

Source: Linux XXXXXXXXX 3.10.13-jb1 #3 SMP Fri Oct 4 11:51:31 CEST 2013 i686 Version: 2.28.9 sqlite3.OperationalError None Traceback (most recent call last):

File "/usr/lib/python2.7/dist-packages/globaleaks/jobs/delivery_sched.py", line 355, in operation info_created_tips = yield tip_creation()

File "/usr/local/lib/python2.7/dist-packages/twisted/python/threadpool.py", line 191, in _worker result = context.call(ctx, function, _args, *_kwargs)

File "/usr/local/lib/python2.7/dist-packages/twisted/python/context.py", line 118, in callWithContext return self.currentContext().callWithContext(ctx, func, _args, *_kw)

File "/usr/local/lib/python2.7/dist-packages/twisted/python/context.py", line 81, in callWithContext return func(args,*kw)

File "/usr/lib/python2.7/dist-packages/globaleaks/settings.py", line 600, in _wrap self.store = self.get_store()

File "/usr/lib/python2.7/dist-packages/globaleaks/settings.py", line 593, in get_store return zstorm.get(GLSetting.store_name)

File "/usr/local/lib/python2.7/dist-packages/storm/zope/zstorm.py", line 177, in get return self.create(name, default_uri)

File "/usr/local/lib/python2.7/dist-packages/storm/zope/zstorm.py", line 153, in create store = Store(database)

File "/usr/local/lib/python2.7/dist-packages/storm/store.py", line 73, in init self._connection = database.connect(self._event)

File "/usr/local/lib/python2.7/dist-packages/storm/database.py", line 493, in connect return self.connection_factory(self, event)

File "/usr/local/lib/python2.7/dist-packages/storm/database.py", line 188, in init self._raw_connection = self._database.raw_connect()

File "/usr/local/lib/python2.7/dist-packages/storm/databases/sqlite.py", line 192, in raw_connect isolation_level=None)

OperationalError: unable to open database file

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

evilaliv3 commented 10 years ago

@fpietrosanti i'm very in doubt on how to handle this issue.

the issue is scattered when a user deletes (with an rm for example) the db while the application is running. we cannot scatter an email like we do not (with an unexpected error) because as you have seen by doing this we trigger multiple mail.

a real solution involve an implementation of a dynamic mail filter that try to make a fingerprint of the kind of the exception scattered:

implement a fingerprint of the exception is quite simple: 1) we can use a date format string in order to allow diffferen granularities on the time window 2) we can use the class of the exception 3) someting else but i thing that 1 and 2 can be enoght

what do you suggest?

fpietrosanti commented 10 years ago

@evilaliv3 The issue, as per other similar issue in past, is that there is an exception that is not "handled".

By not handled i mean: a) not logged properly b) not providing a useful output in the console c) triggering an "uhandled exception email" .

This ticket is fixed by:

evilaliv3 commented 10 years ago

ok but exceptions like this are really important and i don't agree so much in avoiding to send email.

fpietrosanti commented 10 years ago

@evilaliv3 email need to be sent for everything that's "not catched and not handled", but everything else does not require to send any kind of email, but to properly report in the log file and in the console messages the kind of error that happened and which are the steps to try to recover from the error.

vecna commented 9 years ago

This error is two years old, closing because is not happening since then.

fpietrosanti commented 9 years ago

Re-opening for handling it