Problem with dataset_permissions and roles
Hi all, This may or may not be an actual problem, it's just something we ran into on our Galaxy instance in the past few days. The symptom was that when a user clicked the "Edit attributes" button on an item in their history, they would get an "Internal server error" message. After that their history would completely disappear from the interface. Any attempts to reload it with the "Refresh history" button would result in an error. The only way to get it back was to restart Galaxy. The error from uwsgi.log is below. After some digging in the database, I found that the "role_id" column on every entry in "dataset_permissions" had no value. Additionally, the two users who have datasets on the system had no private roles in the "roles" table. I fixed the issue by creating new private roles for those users, then manually setting "role_id" in the "dataset_permissions" table. Unfortunately my Postgres backups only go back a few days, so I can't tell if something happened to those tables somewhere along the line. We're running the release_17.01 branch plus some customizations, nothing that affects those tables though. Has anyone else seen anything like this? Thanks, -Rob galaxy.web.framework.decorators ERROR 2017-02-17 10:32:36,574 Uncaught exception in exposed API method: Traceback (most recent call last): File "/software/galaxy/app/galaxy/lib/galaxy/web/framework/decorators.py", line 295, in decorator rval = func( self, trans, *args, **kwargs ) File "/software/galaxy/app/galaxy/lib/galaxy/webapps/galaxy/api/history_contents.py", line 72, in index return self.__index_v2( trans, history_id, **kwd ) File "/software/galaxy/app/galaxy/lib/galaxy/webapps/galaxy/api/history_contents.py", line 582, in __index_v2 user=trans.user, trans=trans, view='detailed', **serialization_params ) ) File "/software/galaxy/app/galaxy/lib/galaxy/managers/base.py", line 719, in serialize_to_view return self.serialize( item, all_keys, **context ) File "/software/galaxy/app/galaxy/lib/galaxy/managers/hdas.py", line 362, in serialize return super( HDASerializer, self ).serialize( hda, keys, user=user, **context ) File "/software/galaxy/app/galaxy/lib/galaxy/managers/datasets.py", line 534, in serialize serialized = super( DatasetAssociationSerializer, self ).serialize( dataset_assoc, keys, **context ) File "/software/galaxy/app/galaxy/lib/galaxy/managers/base.py", line 632, in serialize returned[ key ] = self.serializers[ key ]( item, key, **context ) File "/software/galaxy/app/galaxy/lib/galaxy/managers/datasets.py", line 438, in <lambda> return lambda i, k, **c: serializer( i.dataset, key or k, **c ) File "/software/galaxy/app/galaxy/lib/galaxy/managers/datasets.py", line 213, in serialize_permissions 'manage' : [ self.app.security.encode_id( perm.role.id ) for perm in management_permissions ], AttributeError: 'NoneType' object has no attribute 'id' -- Rob Lemley Systems Administrator - CIRC University of Rochester
participants (1)
-
Lemley, Rob