Thanks for the step-by-step, Tim. I really appreciate it. Unfortunately, I haven't been able to reproduce the error, and I haven't found an "Authorization denied for action____ on ___ by user___" message in any of the logs :/. When I try to be more specific and use the times reported to me, I only find these errors in the logs: 2014-07-03 09:13:41,807 WARN org.dspace.discovery.IndexEventConsumer @ MODIFY event, could not get object for ITEM id=228534, perhaps it has been deleted. 2014-07-03 09:13:41,808 WARN org.dspace.discovery.IndexEventConsumer @ REMOVE event, could not get object for ITEM id=228534, perhaps it has been deleted. 2014-07-03 09:14:18,570 ERROR org.dspace.app.xmlui.cocoon.DSpaceCocoonServletFilter @ Client closed the connection before file download was complete 2014-07-03 09:14:23,575 ERROR org.dspace.app.xmlui.cocoon.DSpaceCocoonServletFilter @ Client closed the connection before file download was complete 2014-07-03 09:14:31,310 ERROR org.dspace.app.xmlui.cocoon.DSpaceCocoonServletFilter @ Client closed the connection before file download was complete 2014-07-03 09:14:32,683 ERROR org.dspace.app.xmlui.cocoon.DSpaceCocoonServletFilter @ Client closed the connection before file download was complete 2014-07-03 09:15:12,349 ERROR org.dspace.app.xmlui.cocoon.DSpaceCocoonServletFilter @ Client closed the connection before file download was complete 2014-07-03 09:15:30,786 ERROR org.dspace.app.xmlui.cocoon.DSpaceCocoonServletFilter @ Client closed the connection before file download was complete 2014-07-03 09:15:42,075 ERROR org.dspace.app.xmlui.cocoon.DSpaceCocoonServletFilter @ Client closed the connection before file download was complete 2014-07-03 09:16:07,740 ERROR org.dspace.app.xmlui.cocoon.DSpaceCocoonServletFilter @ Client closed the connection before file download was complete 2014-07-03 09:17:22,574 WARN org.dspace.discovery.IndexEventConsumer @ got null detail on DELETE event, skipping it. 2014-07-03 09:17:22,575 WARN org.dspace.discovery.IndexEventConsumer @ MODIFY event, could not get object for ITEM id=253658, perhaps it has been deleted. I had trouble working back from "org.dspace.discovery.IndexEventConsumer", but I think I've found that it's called via "org.dspace.event.EventManager". I figure the REMOVE event must be added here: https://github.com/DSpace/DSpace/blob/master/dspace-api/src/main/java/org/dspace/content/Collection.java#L1040 But I'm not sure what these MODIFY events are...perhaps the first one occurs before FlowItemsUtils... Using the backup, I can see that ITEM id=228534 is the item that they wanted to delete (and successfully deleted despite the "Insufficient privileges" message, but I can't find the item with ITEM id=253658... Going back to the events...I wonder what this "null detail" is about. When I look at Event.java, I seem to actually see two constructor methods: https://github.com/DSpace/DSpace/blob/master/dspace-api/src/main/java/org/dspace/event/Event.java#L194 https://github.com/DSpace/DSpace/blob/master/dspace-api/src/main/java/org/dspace/event/Event.java#L219 I guess the second probably overrides the first. Interesting...Collection.java uses method with the params defined in the second method in the REMOVE event, but Item.java appears to pass params as if to the first method with the DELETE event. https://github.com/DSpace/DSpace/blob/master/dspace-api/src/main/java/org/dspace/content/Collection.java#L1040 https://github.com/DSpace/DSpace/blob/master/dspace-api/src/main/java/org/dspace/content/Item.java#L1995 No wonder the DELETE event has a null detail... I suppose that means it probably wasn't successfully removed from the indexes (since it wouldn't get here: https://github.com/DSpace/DSpace/blob/master/dspace-api/src/main/java/org/dspace/discovery/IndexEventConsumer.java#L184). It looks like someone nuked the Solr logs so tough to say what Solr said... However, item.delete() would've still deleted the item from the database. When I successfully delete an item in the backup, I still get these warning messages: 2014-07-07 14:54:21,187 WARN org.dspace.discovery.IndexEventConsumer @ REMOVE event, could not get object for BUNDLE id=456419, perhaps it has been deleted. 2014-07-07 14:54:21,188 WARN org.dspace.discovery.IndexEventConsumer @ REMOVE event, could not get object for BUNDLE id=456418, perhaps it has been deleted. 2014-07-07 14:54:21,190 WARN org.dspace.discovery.IndexEventConsumer @ MODIFY event, could not get object for ITEM id=253164, perhaps it has been deleted. 2014-07-07 14:54:21,190 WARN org.dspace.discovery.IndexEventConsumer @ REMOVE event, could not get object for ITEM id=253164, perhaps it has been deleted. But going back to "Insufficient privileges"... I'm seeing lots of errors in the cocoon log. There are too many to paste here, but I'll include a few: 2014-07-03 09:13:42,761 ERROR cocoon.handled - Failed to process pipeline at <map:serialize type="xml"> - jndi:/localhost/aspects/aspects.xmap:96:31 at <map:generate type="file"> - jndi:/localhost/aspects/aspects.xmap:95:55 at <map:serialize type="xml"> - resource://aspects/ViewArtifacts/sitemap.xmap:340:32 2014-07-03 09:14:18,570 WARN cocoon.access - org.apache.cocoon.ConnectionResetException: Connection reset by peer at <map:select type="browser"> - jndi:/localhost/sitemap.xmap:274:60 at <map:match> - jndi:/localhost/sitemap.xmap:253:70 2014-07-03 09:15:21,031 ERROR cocoon.handled - Failed to process pipeline at <map:serialize type="xml"> - jndi:/localhost/aspects/aspects.xmap:96:31 at <map:generate type="file"> - jndi:/localhost/aspects/aspects.xmap:95:55 2014-07-03 09:16:18,368 ERROR cocoon.handled - Could not read resource cocoon://DRI/5/admin/item at <map:serialize type="xml"> - resource://aspects/EPerson/sitemap.xmap:302:31 at <map:transform type="Navigation"> - resource://aspects/EPerson/sitemap.xmap:107:38 2014-07-03 09:17:55,050 WARN cocoon.access - org.apache.cocoon.ConnectionResetException: Connection reset by peer at <map:select type="browser"> - jndi:/localhost/sitemap.xmap:255:68 at <map:match type="request-parameter"> - jndi:/localhost/sitemap.xmap:254:88 at <map:match> - jndi:/localhost/sitemap.xmap:253:70 2014-07-03 09:19:10,018 ERROR cocoon.handled - Failed to process reader at <map:read> - jndi:/localhost/sitemap.xmap:641:58 The earlier warnings in the dspace logs appear to be generated by https://github.com/DSpace/DSpace/blob/master/dspace-xmlui/src/main/java/org/dspace/app/xmlui/cocoon/DSpaceCocoonServletFilter.java#L283 But I'm guessing that this "Insufficient privileges" message is coming up due to the user losing their connection/session, although I thought users were usually redirected to the community list rather than admin/item after a successful delete...so I'm not sure about that warning in the cocoon log. I suppose they could have multiple tabs open... I'm thinking that the Administrator facing these problems has a problem with their connection being reset or timing out, and that they're losing their session during a delete. So after the delete occurs there has to be another authorization check and that's failing?
|
|