<div dir="ltr">Hi all,<div><br></div><div>We're using the API to query the OMERO server (currently running 5.1.4) and have run into a situation where this can crash the server or at least get the server into a state where it becomes unresponsive. A hopefully useful chunk from the OMEROweb.log is enclosed. I did not see anything in the other logs that appeared related to the activity that caused the crash or the crash itself. An excerpt of the code that causes the crash is here:</div><div><br></div><div><div style="font-family:Calibri;font-size:16px">const std::string orphanedImagesQueryString =</div><div style="font-family:Calibri;font-size:16px">    "select img from Image as img "</div><div style="font-family:Calibri;font-size:16px">    "left outer join fetch img.datasetLinks as idl "</div><div style="font-family:Calibri;font-size:16px">    "left outer join fetch idl.parent as dst "</div><div style="font-family:Calibri;font-size:16px">    "left outer join fetch img.fileset as fs "</div><div style="font-family:Calibri;font-size:16px">    "join fetch fs.usedFiles as uf "</div><div style="font-family:Calibri;font-size:16px">    "join fetch uf.originalFile as of "</div><div style="font-family:Calibri;font-size:16px">    "join fetch img.pixels as pxl "</div><div style="font-family:Calibri;font-size:16px">    "join fetch pxl.pixelsType as pxt ";</div><div style="font-family:Calibri;font-size:16px">//  "where <a href="http://dst.id/" target="_blank">dst.id</a> is null";</div><div style="font-family:Calibri;font-size:16px"><br></div><div style="font-family:Calibri;font-size:16px"><span style="font-size:12pt">omero::sys::ParametersIPtr dsParams = new omero::sys::ParametersI();</span></div><div style="font-family:Calibri;font-size:16px">dsParams->addLong("id", omero::rtypes::rlong(803));</div><div style="font-family:Calibri;font-size:16px">auto imageObjects = query->findAllByQuery(orphanedImagesQueryString, dsParams);</div><div style="font-family:Calibri;font-size:16px">for (auto image : omero::cast<omero::model::ImagePtr>(imageObjects)) {</div><div style="font-family:Calibri;font-size:16px">    std::cout << "i: "  << image->getId()->getValue() << " " << image->getName()->getValue() << "\n";</div><div style="font-family:Calibri;font-size:16px">}</div><div style="font-family:Calibri;font-size:16px"><br></div><div style="font-family:Calibri;font-size:16px">I'm not sure, but as I understand, the crash occured when I commented "where <a href="http://dst.id/" target="_blank">dst.id</a> is null" condition. The query with "where <a href="http://dst.id/" target="_blank">dst.id</a> is null" didn't return result and I tried to remove the  "is null" condition - to see what would happen. And the server crashed.</div></div><div style="font-family:Calibri;font-size:16px"><br></div><div style="font-size:13px"><div class="gmail_extra"><div class="gmail_quote"><div style="word-wrap:break-word">It appears that the server crashed when we tried to query images without parent dataset ("orphaned images”). I.e. something related to handling a situation where a parent pointer is NULL.</div><div style="word-wrap:break-word"><br></div></div></div></div><div style="font-size:13px">- Damir</div><div><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr">Damir Sudar - Staff Scientist<br>Lawrence Berkeley National Laboratory<br>One Cyclotron Road, MS 977, Berkeley, CA 94720, USA<br>T: 510/486-5346 - F: 510/486-5586 - E: <a href="mailto:DSudar@lbl.gov" target="_blank">DSudar@lbl.gov</a><br><br></div></div><div>Visiting Scientist, Oregon Health and Science University</div></div></div></div></div></div></div>
</div></div>