Actually, this *is* already handled better than it looks like in your stack trace.

Dan changed the handling here in revision 14522:38f8adbf6a47: https://bitbucket.org/galaxy/galaxy-central/commits/38f8adbf6a47 and you should no longer have this issue to the forthcoming release.

-Dannon

On Mon, Dec 8, 2014 at 9:26 AM, Dannon Baker <dannon.baker@gmail.com> wrote:
Hey Ulf,

Thanks for reporting this; the error handling should definitely be better here -- I'll get a fix out shortly.

-Dannon

On Mon, Dec 8, 2014 at 7:23 AM, Ulf Schaefer <Ulf.Schaefer@phe.gov.uk> wrote:
Dear Galaxy Dev

One of our users has managed to lock himself out of his Custom Builds.
An 'Internal Server Error' appears and this shows up in the web process log:

---

Error - <type 'exceptions.IOError'>: [Errno 2] No such file or
directory: '/phengs/galaxy/database/files/000/127/dataset_127764.dat'
URL: http://158.119.147.85/user/dbkeys
File
'/phengs/hpc_storage/home/galaxy_hpc/galaxy-dist/lib/galaxy/web/framework/middleware/error.py',
line 149 in __call__
   app_iter = self.application(environ, sr_checker)
File
'/phengs/hpc_storage/home/galaxy_hpc/galaxy-dist/eggs/Paste-1.7.5.1-py2.6.egg/paste/recursive.py',
line 84 in __call__
   return self.application(environ, start_response)
File
'/phengs/hpc_storage/home/galaxy_hpc/galaxy-dist/eggs/Paste-1.7.5.1-py2.6.egg/paste/httpexceptions.py',
line 633 in __call__
   return self.application(environ, start_response)
File
'/phengs/hpc_storage/home/galaxy_hpc/galaxy-dist/lib/galaxy/web/framework/base.py',
line 132 in __call__
   return self.handle_request( environ, start_response )
File
'/phengs/hpc_storage/home/galaxy_hpc/galaxy-dist/lib/galaxy/web/framework/base.py',
line 190 in handle_request
   body = method( trans, **kwargs )
File
'/phengs/hpc_storage/home/galaxy_hpc/galaxy-dist/lib/galaxy/web/framework/__init__.py',
line 98 in decorator
   return func( self, trans, *args, **kwargs )
File
'/phengs/hpc_storage/home/galaxy_hpc/galaxy-dist/lib/galaxy/webapps/galaxy/controllers/user.py',
line 1680 in dbkeys
   chrom_count = int( open( chrom_count_dataset.file_name ).readline() )
IOError: [Errno 2] No such file or directory:
'/phengs/galaxy/database/files/000/127/dataset_127764.dat'


CGI Variables
-------------
   CONTENT_LENGTH: '0'
   HTTP_ACCEPT:
'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
   HTTP_ACCEPT_ENCODING: 'gzip'
   HTTP_ACCEPT_LANGUAGE: 'en-GB,en;q=0.8,en-US;q=0.6,de;q=0.4'
   HTTP_CONNECTION: 'Keep-Alive'
   HTTP_COOKIE:
'galaxysession=c6ca0ddb55be603a1e24419432331618f5a7191d55ca4813cd28cd8c84abb88b122c85b9044b10ba'
   HTTP_HOST: '158.119.147.85'
   HTTP_REFERER: 'http://158.119.147.85/root'
   HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36'
   HTTP_VIA: '1.1 TMGCOL001'
   HTTP_X_FORWARDED_FOR: '158.119.150.18'
   HTTP_X_FORWARDED_HOST: '158.119.147.85'
   HTTP_X_FORWARDED_SERVER: 'bioinformatics-galaxy.phe.org.uk'
   ORGINAL_HTTP_HOST: 'localhost:8084'
   ORGINAL_REMOTE_ADDR: '127.0.0.1'
   PATH_INFO: '/user/dbkeys'
   REMOTE_ADDR: '158.119.150.18'
   REQUEST_METHOD: 'GET'
   SERVER_NAME: '0.0.0.0'
   SERVER_PORT: '8084'
   SERVER_PROTOCOL: 'HTTP/1.1'


WSGI Variables
--------------
   application: <paste.recursive.RecursiveMiddleware object at 0x8fe2c90>
   is_api_request: False
   paste.cookies: (<SimpleCookie:
galaxysession='c6ca0ddb55be603a1e24419432331618f5a7191d55ca4813cd28cd8c84abb88b122c85b9044b10ba'>,
'galaxysession=c6ca0ddb55be603a1e24419432331618f5a7191d55ca4813cd28cd8c84abb88b122c85b9044b10ba')
   paste.expected_exceptions: [<class 'paste.httpexceptions.HTTPException'>]
   paste.httpexceptions: <paste.httpexceptions.HTTPExceptionHandler
object at 0x8fe2510>
   paste.httpserver.thread_pool: <paste.httpserver.ThreadPool object at
0x9332210>
   paste.recursive.forward: <paste.recursive.Forwarder from />
   paste.recursive.include: <paste.recursive.Includer from />
   paste.recursive.include_app_iter: <paste.recursive.IncluderAppIter
from />
   paste.recursive.script_name: ''
   paste.throw_errors: True
   request_id: '965c3b007ecc11e4b771005056983c1e'
   webob._parsed_query_vars: (MultiDict([]), '')
   wsgi process: 'Multithreaded'

---

The file it is looking for (dataset_127764.dat) is indeed not there and
I suspect that once it contained a genome of a custom build that this
user had added. How it was removed I cannot tell.

I don't need to get this particular genome back, but I need to stop
Galaxy from looking for it, so that the user can get back into the
interface. Does anyone know how I can wipe all Custom Builds for a given
user?

Thanks a lot for your help
Best regards
Ulf

--
Ulf Schaefer, PhD
Bioinformatics Scientist
Bioinformatics Unit - Infectious Disease Informatics
Public Health England
61 Colindale Ave
London NW9 5EQ
ulf.schaefer@phe.gov.uk
Tel: 020 832 77296
http://www.gov.uk/phe
Protecting and improving the nation’s health

**************************************************************************
The information contained in the EMail and any attachments is confidential and intended solely and for the attention and use of the named addressee(s). It may not be disclosed to any other person without the express authority of Public Health England, or the intended recipient, or both. If you are not the intended recipient, you must not disclose, copy, distribute or retain this message or any part of it. This footnote also confirms that this EMail has been swept for computer viruses by Symantec.Cloud, but please re-sweep any attachments before opening or saving. http://www.gov.uk/PHE
**************************************************************************
___________________________________________________________
Please keep all replies on the list by using "reply all"
in your mail client.  To manage your subscriptions to this
and other Galaxy lists, please use the interface at:
  https://lists.galaxyproject.org/

To search Galaxy mailing lists use the unified search at:
  http://galaxyproject.org/search/mailinglists/