Skip to content

Cross-Entity Search gets 404 from TS when an empty string passed as a query #1751

@sentry-dev-app

Description

@sentry-dev-app

It looks like we pass a Cross-Entity Search query to Jena with an empty text:query filtering. That causes Jena to fail.

Example query:

PREFIX renku: <https://swissdatasciencecenter.github.io/renku-ontology#>
PREFIX text: <http://jena.apache.org/text#>
PREFIX prov: <http://www.w3.org/ns/prov#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX schema: <http://schema.org/>

SELECT ?workflowTypes ?entityType ?maybeDateModified ?keywords ?projectIdVisibilities ?sameAs ?dateModified ?date ?maybeDatePublished ?visibility ?maybeCreatorName ?name ?matchingScore ?slug ?creatorsNames ?images ?maybeDescription ?idsSlugsVisibilities ?wkId ?maybeDateCreatedWHERE {{SELECT ?entityType ?matchingScore ?name ?slug ?visibility(MIN(?someDateCreated) AS ?maybeDateCreated)(MAX(?someDateModified) AS ?dateModified)(MAX(?someDateModified) AS ?date)(SAMPLE(?someCreatorName) AS ?maybeCreatorName)?maybeDescription(GROUP_CONCAT(DISTINCT ?keyword; separator=',') AS ?keywords)(GROUP_CONCAT(?encodedImageUrl; separator=',') AS ?images)WHERE {BIND ('project' AS ?entityType)
      # textQuery
      {SELECT ?projectId (MAX(?score) AS ?matchingScore)WHERE {{(?id ?score) text:query (schema:name schema:keywords schema:description renku:projectNamespaces '')} {
            GRAPH <http://schema.org/Project> {?id a renku:DiscoverableProject}BIND (?id AS ?projectId)} 
          UNION {
            GRAPH <http://schema.org/Project> {?projectId schema:creator ?id;a renku:DiscoverableProject}}}GROUP BY ?projectId} GRAPH <http://schema.org/Project> {?projectId a renku:DiscoverableProject;schema:name ?name;renku:projectPath ?slug;schema:dateModified ?someDateModified;schema:dateCreated ?someDateCreated.?projectId renku:projectVisibility ?visibility .Graph <https://swissdatasciencecenter.github.io/renku-ontology#ProjectAuth> {?projectId a schema:Project.{?projectId renku:visibility 'private';renku:memberId 45130.} 
          UNION {  ?projectId renku:visibility 'public'.  } UNION 
          {  ?projectId renku:visibility 'internal'.  }}GRAPH ?projectId {?projectId renku:projectNamespace ?namespace.}OPTIONAL {?projectId schema:creator ?creatorId.GRAPH <http://schema.org/Person> {?creatorId schema:name ?someCreatorName}}OPTIONAL { ?projectId schema:description ?maybeDescription }OPTIONAL { ?projectId schema:keywords ?keyword }OPTIONAL {?projectId schema:image ?imageId.?imageId schema:position ?imagePosition;schema:contentUrl ?imageUrl.BIND (CONCAT(STR(?imagePosition), STR(':'), STR(?imageUrl)) AS ?encodedImageUrl)}}}GROUP BY ?entityType ?matchingScore ?name ?slug ?visibility ?maybeDescription}}ORDER BY DESC(?matchingScore) DESC(xsd:dateTime(?date))
LIMIT 24
OFFSET 0

Sentry Issue: RENKU-GRAPH-E5

RestClientError$BadRequestException: POST http://renku-jena-master:3030/projects/sparql returned 400 Bad Request; body: Query parse error:PREFIX renku: <https://swissdatasciencecenter.github.io/renku-ontology#>PREFIX text: <http://jena.apache.org/text#>PREFIX prov: <http://www.w3.org/ns/prov#>PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>PREFIX schema: <http://schema.org/>SELECT ?workflowTypes ?entityType ?maybeDateModified ?keywords ?projectIdVisibilities ?sameAs ?dateModified ?date ?maybeDatePublished ?visibility ?maybeCreatorName ?name ?matchingScore ?slug ?creatorsNames ?images ?maybeDescription ?idsSlugsVisibilities ?wkId ?maybeDateCreatedWHERE {{SELECT ?entityType ?matchingScore ?name ?slug ?visibility(MIN(?someDateCreated) AS ?maybeDateCreated)(MAX(?someDateModified) AS ?dateModified)(MAX(?someDateModified) AS ?date)(SAMPLE(?someCreatorName) AS ?maybeCreatorName)?maybeDescription(GROUP_CONCAT(DISTINCT ?keyword; separator=',') AS ?keywords)(GROUP_CONCAT(?encodedImageUrl; separator=',') AS ?images)WHERE {BIND ('project' AS ?entityType)# textQuery{SELECT ?projectId (MAX(?score) AS ?matchingScore)WHERE {{(?id ?score) text:query (schema:name schema:keywords schema:description renku:projectNamespaces '')} {GRAPH <http://schema.org/Project> {?id a renku:DiscoverableProject}BIND (?id AS ?projectId)} UNION {GRAPH <http://schema.org/Project> {?projectId schema:creator ?id;a renku:DiscoverableProject}}}GROUP BY ?projectId}GRAPH <http://schema.org/Project> {?projectId a renku:DiscoverableProject;schema:name ?name;renku:projectPath ?slug;schema:dateModified ?someDateModified;schema:dateCreated ?someDateCreated.?projectId renku:projectVisibility ?visibility .Graph <https://swissdatasciencecenter.github.io/renku-ontology#ProjectAuth> {?projectId a schema:Project.{?projectId renku:visibility 'private';renku:memberId 45130.} UNION {  ?projectId renku:visibility 'public'.  } UNION {  ?projectId renku:visibility 'internal'.  }}GRAPH ?projectId {?projectId renku:projectNamespace ?namespace.}OPTIONAL {?projectId schema:creator ?creatorId.GRAPH <http://schema.org/Person> {?creatorId schema:name ?someCreatorName}}OPTIONAL { ?projectId schema:description ?maybeDescription }OPTIONAL { ?projectId schema:keywords ?keyword }OPTIONAL {?projectId schema:image ?imageId.?imageId schema:position ?imagePosition;schema:contentUrl ?imageUrl.BIND (CONCAT(STR(?imagePosition), STR(':'), STR(?imageUrl)) AS ?encodedImageUrl)}}}GROUP BY ?entityType ?matchingScore ?name ?slug ?visibility ?maybeDescription}}ORDER BY DESC(?matchingScore) DESC(xsd:dateTime(?date))LIMIT 24OFFSET 0Text search parse error:Cannot parse 'name: keywords: description: projectNamespaces: ': Encountered " ":" ": "" at line 1, column 14.Was expecting one of:<EOF><AND> ...<OR> ...<NOT> ..."+" ..."-" ...<BAREOPER> ..."(" ..."*" ..."^" ...<QUOTED> ...<TERM> ...<FUZZY_SLOP> ...<PREFIXTERM> ...<WILDTERM> ...<REGEXPTERM> ..."[" ..."{" ...<NUMBER> ...
    at io.renku.http.client.RestClient$$anonfun$raiseBadRequest$1.$anonfun$applyOrElse$1(RestClient.scala:155)
    at flatMap @ fs2.Compiler$Target.flatMap(Compiler.scala:163)
    at flatMap @ fs2.Compiler$Target.flatMap(Compiler.scala:163)
    at flatMap @ fs2.Compiler$Target.flatMap(Compiler.scala:163)
    at flatMap @ fs2.Compiler$Target.flatMap(Compiler.scala:163)
...
(12 additional frame(s) were not displayed)

Cross-entity search failed

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Ready

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions