Notice: In order to edit this ticket you need to be either: a Product Owner, The owner or the reporter of the ticket, or, in case of a Task not yet assigned, a team_member"

Task #10941 (new)

Opened 7 years ago

Last modified 4 years ago

Deleting image linked to multiple datasets does not throw exception

Reported by: sbesson Owned by: wmoore
Priority: major Milestone: Unscheduled
Component: General Version: 4.4.8
Keywords: n.a. Cc: ux@…, sbesson
Resources: n.a. Referenced By: n.a.
References: n.a. Remaining Time: n.a.
Sprint: n.a.

Description

Can be reproduced by importing a fake single-series image into the server

sebastien@sbesson:OMERO.server $ touch b.fake 
sebastien@sbesson:OMERO.server $ bin/omero import b.fake 
Using session ebdee986-ac05-4590-a30c-8c4390c80fdc (root@localhost:4064). Idle timeout: 10.0 min. Current group: system
2013-05-21 11:47:04,646 0          [      main] INFO          ome.formats.importer.ImportConfig  - OMERO Version: 5.0.0-alpha3-167-eb70a68-dirty-ice33-b272
2013-05-21 11:47:04,650 4          [      main] INFO          ome.formats.importer.ImportConfig  - Bioformats version: 4.5-DEV revision: 9dcd36a date: 17 May 2013
2013-05-21 11:47:05,116 470        [      main] INFO      ome.formats.importer.ImportCandidates  - Depth: 4 Metadata Level: MINIMUM
2013-05-21 11:47:05,125 479        [      main] DEBUG                     loci.formats.Memoizer  - skipping memo: directory not writeable - /tmp/memo
2013-05-21 11:47:05,170 524        [      main] DEBUG                     loci.formats.Memoizer  - start[1369133225124] time[46] tag[loci.formats.Memoizer.setId]
2013-05-21 11:47:05,176 530        [      main] INFO      ome.formats.importer.ImportCandidates  - 1 file(s) parsed into 1 group(s) with 1 call(s) to setId in 57ms. (60ms total) [0 unknowns]
2013-05-21 11:47:05,487 841        [      main] INFO       ome.formats.OMEROMetadataStoreClient  - Attempting initial SSL connection to localhost:4064
2013-05-21 11:47:05,938 1292       [      main] INFO       ome.formats.OMEROMetadataStoreClient  - Insecure connection requested, falling back
2013-05-21 11:47:06,084 1438       [      main] INFO       ome.formats.OMEROMetadataStoreClient  - Server: 5.0.0
2013-05-21 11:47:06,085 1439       [      main] INFO       ome.formats.OMEROMetadataStoreClient  - Client: 5.0.0-alpha3-167-eb70a68-dirty-ice33-b272
2013-05-21 11:47:06,085 1439       [      main] INFO       ome.formats.OMEROMetadataStoreClient  - Java Version: 1.6.0_45
2013-05-21 11:47:06,085 1439       [      main] INFO       ome.formats.OMEROMetadataStoreClient  - OS Name: Mac OS X
2013-05-21 11:47:06,085 1439       [      main] INFO       ome.formats.OMEROMetadataStoreClient  - OS Arch: x86_64
2013-05-21 11:47:06,085 1439       [      main] INFO       ome.formats.OMEROMetadataStoreClient  - OS Version: 10.7.5
2013-05-21 11:47:06,230 1584       [      main] INFO       ome.formats.OMEROMetadataStoreClient  - Call context: {omero.group:0}
2013-05-21 11:47:06,314 1668       [      main] INFO          ome.formats.importer.ImportConfig  - OMERO Version: 5.0.0-alpha3-167-eb70a68-dirty-ice33-b272
2013-05-21 11:47:06,314 1668       [      main] INFO          ome.formats.importer.ImportConfig  - Bioformats version: 4.5-DEV revision: 9dcd36a date: 17 May 2013
2013-05-21 11:47:06,630 1984       [      main] INFO   ormats.importer.cli.LoggingImportMonitor  - FILESET_UPLOAD_START
2013-05-21 11:47:06,660 2014       [      main] INFO   ormats.importer.cli.LoggingImportMonitor  - FILE_UPLOAD_STARTED: /Users/sebastien/code/OMERO.server-5.0.0-alpha3-167-eb70a68-dirty-ice33-b272/../b.fake
2013-05-21 11:47:06,679 2033       [      main] INFO   ormats.importer.cli.LoggingImportMonitor  - FILE_UPLOAD_COMPLETE: /Users/sebastien/code/OMERO.server-5.0.0-alpha3-167-eb70a68-dirty-ice33-b272/../b.fake
2013-05-21 11:47:06,724 2078       [      main] INFO   ormats.importer.cli.LoggingImportMonitor  - FILESET_UPLOAD_END
2013-05-21 11:47:06,911 2265       [l.Client-1] INFO   ormats.importer.cli.LoggingImportMonitor  - METADATA_IMPORTED Step: 1 of 5
2013-05-21 11:47:07,063 2417       [l.Client-0] INFO   ormats.importer.cli.LoggingImportMonitor  - PIXELDATA_PROCESSED Step: 2 of 5
2013-05-21 11:47:07,153 2507       [l.Client-1] INFO   ormats.importer.cli.LoggingImportMonitor  - THUMBNAILS_GENERATED Step: 3 of 5
2013-05-21 11:47:07,156 2510       [l.Client-0] INFO   ormats.importer.cli.LoggingImportMonitor  - METADATA_PROCESSED Step: 4 of 5
2013-05-21 11:47:07,156 2510       [l.Client-1] INFO   ormats.importer.cli.LoggingImportMonitor  - OBJECTS_RETURNED Step: 5 of 5
2013-05-21 11:47:07,226 2580       [      main] INFO   ormats.importer.cli.LoggingImportMonitor  - IMPORT_DONE Imported file: /Users/sebastien/code/OMERO.server-5.0.0-alpha3-167-eb70a68-dirty-ice33-b272/../b.fake
Imported pixels:
55
Other imported objects:
Fileset:54
Image:55
2013-05-21 11:47:07,227 2581       [      main] INFO      ome.formats.importer.cli.ErrorHandler  - Number of errors: 0

then linking Image 55 to 2 Datasets (using a client) and calling the CLI delete command

sebastien@sbesson:OMERO.server $ bin/omero delete /Image:55
Using session ebdee986-ac05-4590-a30c-8c4390c80fdc (root@localhost:4064). Idle timeout: 10.0 min. Current group: system
omero.cmd.Delete /Image 55... ok

Attachments (3)

Screen Shot 2013-11-08 at 13.00.55.png (14.3 KB) - added by pwalczysko 6 years ago.
Screen Shot 2013-11-08 at 12.39.27.png (22.0 KB) - added by pwalczysko 6 years ago.
Screen Shot 2013-11-08 at 12.36.23.png (26.1 KB) - added by pwalczysko 6 years ago.

Download all attachments as: .zip

Change History (25)

comment:1 Changed 7 years ago by wmoore

Why are you expecting an Exception to be thrown? This is a single-image fileset, so deleting the Image should not throw any exception, regardless of what Datasets it's in.

comment:2 Changed 7 years ago by jamoore

This goes back to the removal of "SOFT" between Datasets and Images, Will. That was not done properly and so we now have a surprise loss of data (totally unrelated to MIFs)

comment:3 Changed 7 years ago by wmoore

I agree that this is totally unrelated to MIFs, but how is this behaviour different from what we've always had?
If I delete an Image in the clients, there's never an exception because it's in 1 or more Datasets. Datasets are ignored if you're directly deleting images.

comment:4 Changed 6 years ago by jamoore

  • Milestone changed from 5.0.0-beta1 to 5.0.0-beta2
  • Sprint FS demo 4.x deleted
  • Version set to 4.4.8

comment:5 Changed 6 years ago by jamoore

  • Cc ux@… added; fs@… removed
  • Owner set to pwalczysko

This goes back to 2010, sbesson:

commit 084247f5d7224be345abbe6a6d1e2146e95793ad
Author: jmoore <jmoore@05709c45-44f0-0310-885b-81a1db45b4a6>
Date:   Thu Oct 14 18:11:10 2010 +0000

    Fix for other (reverse) rwrw tests (See #3119)
    
    git-svn-id: file:///home/svn/omero/trunk@8325 05709c45-44f0-0310-885b-81a1db45b4a6

diff --git a/components/server/resources/ome/services/delete/spec.xml b/components/server/resources/ome/services/delete/spec.xml
index 56343f0..d28cf1c 100644
--- a/components/server/resources/ome/services/delete/spec.xml
+++ b/components/server/resources/ome/services/delete/spec.xml
@@ -173,7 +173,7 @@
         </description>
         <constructor-arg>
             <list>
-                <value>/Image/DatasetImageLink</value>
+                <value>/Image/DatasetImageLink;FORCE</value>
                 <value>/Image+Only</value>
             </list>
         </constructor-arg>
@@ -216,7 +216,7 @@
     <bean parent="delSpec" name="/Dataset">
         <constructor-arg>
             <list>
-                <value>/Dataset/ProjectDatasetLink</value>
+                <value>/Dataset/ProjectDatasetLink;FORCE</value>
                 <value>/Dataset+Only</value>
             </list>
         </constructor-arg>
@@ -264,7 +264,7 @@
     <bean parent="delSpec" name="/Plate">
         <constructor-arg>
             <list>
-                <value>/Plate/ScreenPlateLink</value>
+                <value>/Plate/ScreenPlateLink;FORCE</value>
                 <value>/Plate+Only</value>
             </list>
         </constructor-arg>

I'm inclined to close it. Passing to Petr and CC'ing ux for a once over to make sure we're not forgetting anything, but then I think it can be closed.

comment:6 Changed 6 years ago by wmoore

Right - so as I understand it, nothing changes? Deleting an image in 2 Datasets is OK without an exception? If so, then good to close.

comment:7 Changed 6 years ago by pwalczysko

Yes, I agree that this is not a bug. But I can understand why Seb thought this should be one.
@jburel, @wmoore
Workflow in Insight and Web:

  • login as user-11, group read-write to Gretzky
  • create a new dataset
  • copy an image belonging to user-4 (or anybody else except yourself)
  • paste this image to your (=user-11's) newly created dataset
  • look at it - you do not like it
  • delete it - you got no warning except "Do you really want to delete" ?(in Insight) and "Are you sure you want to delete image-locked ?" in Web (what is "locked" ? - see screenshots)
  • confirm Yes -> your "copy" is gone, as well as the "original" of your colleague user-4

This is not very good. Contrast this with the situation when I (=user-11) create a new dataset and copy MY image into it, then I delete it - In Insight, I will get better warning (saying about the data being used by other users.)
Very dangerous. And does not make sense to warn better in the less-dangerous situation. See screenshots.

Suggestion: Warn users much better that we do not have deep copy especially when they are linking & deleting data of their colleagues in UI.

Changed 6 years ago by pwalczysko

Changed 6 years ago by pwalczysko

Changed 6 years ago by pwalczysko

comment:8 Changed 6 years ago by pwalczysko

comment:9 Changed 6 years ago by pwalczysko

  • Owner pwalczysko deleted

comment:10 Changed 6 years ago by jamoore

NB: Chris had a similar issue with Plate->Image<-Dataset links.

comment:11 Changed 6 years ago by jburel

  • Milestone changed from 5.0.0-beta2 to 5.0.0-beta3

Graph issue will be fixed first thing in Beta3

comment:12 Changed 5 years ago by jamoore

  • Owner set to mtbcarroll

comment:13 Changed 5 years ago by mtbcarroll

Josh: What do you want me to do for this ticket? Seems to be much UX discussion in comments. Do we have a consensus?

comment:14 Changed 5 years ago by jamoore

I guess the primary question is: what would we need to do to implement the warning suggested by Petr in http://trac.openmicroscopy.org.uk/ome/timeline?from=2013-11-08T13%3A03%3A24Z&precision=second, and if a user wanted to prevent that, what config would they need?

comment:15 Changed 5 years ago by mtbcarroll

(Assuming that the link was meant to be to comment 7.) It's probably just a case of the clients doing a query to see which datasets the image is in before going ahead with the delete?

comment:16 Changed 5 years ago by mtbcarroll

  • Priority changed from blocker to major

If it's been like this for years, it's not a blocker.

comment:17 Changed 5 years ago by mtbcarroll

  • Owner changed from mtbcarroll to wmoore

Will, does doing the container query before the delete make sense for the web client? Is any extra API support required?

If the server graph traversal does need to do something different in the longer term, after the permissions review -- for instance, if we expect clients to do the unlinking-from-datasets before the delete and the server should throw an exception if we try to delete an image that is in multiple datasets -- of course I'll be happy to look into effecting that.

Last edited 5 years ago by mtbcarroll (previous) (diff)

comment:18 Changed 5 years ago by mtbcarroll

Looks related to #12299.

comment:19 Changed 5 years ago by wmoore

  • Milestone changed from 5.1.2 to 5.1.3

comment:20 Changed 4 years ago by jamoore

  • Milestone changed from 5.1.4 to OMERO-5.1.4

Splitting 5.1.4 due to milestone decoupling

comment:21 Changed 4 years ago by sbesson

  • Milestone changed from OMERO-5.1.4 to 5.x

As discussed with Will earlier today, pushing the non-critical Web tickets out of 5.1.4

comment:22 Changed 4 years ago by jamoore

  • Milestone changed from 5.x to Unscheduled
Note: See TracTickets for help on using tickets. You may also have a look at Agilo extensions to the ticket.

1.3.13-PRO © 2008-2011 Agilo Software all rights reserved (this page was served in: 0.241838 sec.)

We're Hiring!