diff --git a/NEWS b/NEWS index 21257a9..93e64f9 100644 --- a/NEWS +++ b/NEWS @@ -3,8 +3,11 @@ * You can now create and end links. * Underline and strikethrough now work. * Pulldowns for search suggestions, importing, and exporting show up. + * Improved page loading speed and fixed a rare session locking timeout bug + by removing all implicit session locking. * Fixed a bug that broke that Luminotes Desktop product download page if PayPal took too long to notify Luminotes of the purchase. + 1.5.2: October 1, 2008 * Leading/trailing spaces in note titles are now ignored when making links diff --git a/config/Common.py b/config/Common.py index ee8e358..bc4fb15 100644 --- a/config/Common.py +++ b/config/Common.py @@ -13,7 +13,6 @@ settings = { "session_filter.storage_path": "session", "session_filter.timeout": 60 * 72, # 72 hours "session_filter.clean_up_delay": 5, - "session_filter.locking": "implicit", "encoding_filter.on": True, "encoding_filter.encoding": "utf-8", "decoding_filter.on": True, diff --git a/controller/Files.py b/controller/Files.py index a112d6c..d9af4d4 100644 --- a/controller/Files.py +++ b/controller/Files.py @@ -185,13 +185,6 @@ class FieldStorage( cherrypy._cpcgifs.FieldStorage ): cherrypy.server.socket_timeout = 60 # increase socket timeout to one minute (default is 10 sec) DASHES_AND_NEWLINES = 6 # four dashes and two newlines - # release the cherrypy session lock so that the user can issue other commands while the file is - # uploading - try: - cherrypy.session.release_lock() - except ( KeyError, OSError ): - pass - # pluck the file id out of the query string. it would be preferable to grab it out of parsed # form variables instead, but at this point in the processing, all the form variables might not # be parsed @@ -295,13 +288,6 @@ class Files( object ): @return: file data @raise Access_error: the current user doesn't have access to the notebook that the file is in """ - # release the session lock before beginning to stream the download. otherwise, if the - # download is cancelled before it's done, the lock won't be released - try: - cherrypy.session.release_lock() - except ( KeyError, OSError ): - pass - db_file = self.__database.load( File, file_id ) if not db_file or not self.__users.check_access( user_id, db_file.notebook_id ): @@ -350,13 +336,6 @@ class Files( object ): @return: file data @raise Access_error: the access_id is unknown or doesn't grant access to the file """ - # release the session lock before beginning to stream the download. otherwise, if the - # download is cancelled before it's done, the lock won't be released - try: - cherrypy.session.release_lock() - except ( KeyError, OSError ): - pass - # load the download_access object corresponding to the given id download_access = self.__database.load( Download_access, access_id ) if download_access is None: @@ -451,11 +430,6 @@ class Files( object ): @return: thumbnail image data @raise Access_error: the current user doesn't have access to the notebook that the file is in """ - try: - cherrypy.session.release_lock() - except ( KeyError, OSError ): - pass - db_file = self.__database.load( File, file_id ) if not db_file or not self.__users.check_access( user_id, db_file.notebook_id ): @@ -515,11 +489,6 @@ class Files( object ): @return: image data @raise Access_error: the current user doesn't have access to the notebook that the file is in """ - try: - cherrypy.session.release_lock() - except ( KeyError, OSError ): - pass - db_file = self.__database.load( File, file_id ) if not db_file or not self.__users.check_access( user_id, db_file.notebook_id ): @@ -707,13 +676,6 @@ class Files( object ): """ global current_uploads - # release the session lock before beginning to stream the upload report. otherwise, if the - # upload is cancelled before it's done, the lock won't be released - try: - cherrypy.session.release_lock() - except ( KeyError, OSError ): - pass - # poll until the file is uploading (as determined by current_uploads) or completely uploaded (in # the database with a filename) while True: